迭代数学实验

发布时间 : 星期三 文章迭代数学实验更新完毕开始阅读

北京建筑工程学院

理学院 实验报告

课程名称 数学实验 实验名称 迭代(一)—方程求解 实验地点 基c425 日期 2015-7-1 姓名 周盈海 班级 信131 学号 201307010137 指导教师 高雁飞 成 绩

【实验目的】 (1).利用迭代法求解方程 (2).线性方程组的迭代求解

【实验要求】

1.(1).在同一直角坐标系中画出y?2sinx及y?x的图像。从图上观察,方程x?2sinx的解的个数。 (2).利用迭代法,对x?2sinx作迭代,取xn极限,得到方程的解。 2. 利用迭代法,即xn?1?0.20?nx?M是n阶矩阵,f是n维列向量,对M??作迭代,取?Mx?f,?00.5???n极限,得到线性方程组的解。

【实验内容】(主要包含问题分析、计算过程、实验结果等,按课程要求完成)

问题的分析

1.(1).在同一直角坐标系中画出y?2sinx及y?x的图像。由理论可知,方程x?2sinx有3个解。 (2). 取初值为x0?0.5,对x?2sinx作迭代,迭代序列应当收敛于0。但对初值取不同的点,对

x?2sinx作迭代,迭代序列会出现不收敛的现象。

2. 给定实数域上光滑的实值函数f(x)以及初值x0定义数列

xn?1?f(xn),n?0,1,?, xn,n?0,1,? 称为f(x)的一个迭代序列.

给定迭代函数f(x)以及一个初值x0利用上式迭代得到数列 xn,n?0,1,? 如果数列xn收敛于某个x,则有 x*?f(x*).即x是方程x=f(x)的解.由此启发我们用如下的方法求方程g(x)=0的近似解. 将方程g(x)=0改写为等价的方程 x=f(x),然后选取一初值利用上式做迭代.迭代数列xn收敛的极限就是方程g(x)=0的解.

**?a11x1???a1nxn?b1?给定一个n元线形方程组???或写成矩阵的形式 Ax=b, 其中A=(aij)是n阶方

?ax???ax?bnnxn?n11阵,x=(x1,?,xn)均为n维列向量.任意给定初值向量x,由迭代x第 页 共 页

T0n?1?Mxn?f确定向量序列xn收敛

到向量x,则有x*?Mx*?f即x是方程组的解。

**计算过程

1、 (1)

f[x_]:=2Sin[x] y[x_]:=x

Plot[{f[t],y[t]},{t,-Pi,Pi}] (2)

Iterate[f_, x0_, n_Integer] := Module[{t = {}, i, temp = x0}, AppendTo[t, temp];

For[i = 1, i <= n, i++, temp = f[temp]; AppendTo[t, temp]];t] f[x_] := 2Sin[x] - x; Iterate[f, 0.5, 10]

Iterate[f_, x0_, n_Integer] := Module[{t = {}, i, temp = x0}, AppendTo[t, temp];

For[i = 1, i <= n, i++, temp = f[temp]; AppendTo[t, temp]];t] f[x_] := 2Sin[x] - x; Iterate[f, 10., 10] 2、

LSIterate[m_,f_List,f0_List,n_Integer]:= Module[

{ i,var=f0,t=Table[{},{i,n}]},

For[i=1,i<=n,i++,t[[i]]=var;var=m.var+f];t] m={{0.1,0},{0,0.2}};f={1,1};f0={0,0}; LSIterate[m,f,f0,20]

LSIterate[m_,f_List,f0_List,n_Integer]:= Module[

{ i,var=f0,t=Table[{},{i,n}]},

For[i=1,i<=n,i++,t[[i]]=var;var=m.var+f];t] m={{0.1,0},{0,0.2}};f={2,2};f0={0,0}; LSIterate[m,f,f0,20]

LSIterate[m_,f_List,f0_List,n_Integer]:= Module[

{ i,var=f0,t=Table[{},{i,n}]},

For[i=1,i<=n,i++,t[[i]]=var;var=m.var+f];t] m={{0.1,0},{0,0.2}};f={1,1};f0={2,2};

第页 共 页

LSIterate[m,f,f0,20]

LSIterate[m_,f_List,f0_List,n_Integer]:= Module[

{ i,var=f0,t=Table[{},{i,n}]},

For[i=1,i<=n,i++,t[[i]]=var;var=m.var+f];t] m={{0.2,0},{0,0.4}};f={1,1};f0={0,0}; LSIterate[m,f,f0,20]

LSIterate[m_,f_List,f0_List,n_Integer]:= Module[

{ i,var=f0,t=Table[{},{i,n}]},

For[i=1,i<=n,i++,t[[i]]=var;var=m.var+f];t] m={{1,0},{0,2}};f={1,1};f0={0,0}; LSIterate[m,f,f0,20]

问题求解结果的分析与结论

321-3-2-1-1-2-312 1、(1)由图可知,y?2sinx及y?x的图像有3个交点,说明方程x?2sinx有3个解。

(2)初值为0.5

{0.5, 0.458851, 0.426986, 0.401272, 0.379907, 0.361762, 0.346083, 0.332348, 0.320179, 0.309294, 0.299479}

初值为10

{10., -11.088, 13.0795, -12.0977, 13.0011, -12.1588, 12.9516, -12.2001, 12.9164, -12.2305, 12.8896}

由此可知,当初值为x0?0.5时,迭代序列逐渐收敛,收敛于方程x=0的解。当初值为x0?10时,迭代序列不收敛。 (3)

对初值取值,在一定区间内收敛,在其他区间内不收敛。迭代序列是否收敛,与初值是否在收敛区间内有关,初值越接近于哪一个解,就收敛于哪一个解。

2.、{{0,0},{1.,1.},{1.2,1.5},{1.24,1.75},{1.248,1.875}…{1.25,1.99999},{1.25,2.},{1.25,2.},{1.25,2.},{1.25,2.}}

{{0,0},{1,1},{3,2},{7,3},{15,4},{31,5},{63,6}…{4194303,22}}

{{0,0},{2.,2.},{2.4,3.},{2.48,3.5},{2.496,3.75}…{2.5,3.99999},{2.5,4.},{2.5,4.},{2.5,4.}} {{2,2},{1.4,2.}…{1.25024,2.},{1.25005,2.},{1.25001,2.},{1.25,2.},{1.25,2.}} {{0,0},{1.,1.},{1.2,1.1}…{1.24998,1.11111},{1.25,1.11111},{1.25,1.11111}}

第 页 共 页

当mii?1时,向量列x收敛。影响收敛性及收敛速度的主要量是初值和系数矩阵。mii越小,收敛速度越快。常数向量f对收敛性无影响。初值越接近于根,收敛越快。

n【实验小结】(主要包含实验心得等)

通过对实验九的学习,我初步了解了利用迭代法求解方程的方法和过程,在计算机辅助下,用迭代法求解方程非常迅速,而且可以求出方程解的精确值,体现出了数值计算相对于理论分析法的优势。从入手时就有些困难,在理解与运用上都有一些问题,但通过于老师和同学额讨论研究之后,我还是顺利完成了本次实验。

第 页 共页

联系合同范文客服:xxxxx#qq.com(#替换为@)