数值实验(word2003版)教材
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2.3 迭代的加速方法
实验目的:
对线性方法(或不收敛的方法)进行加速,考察Steffensen 迭代法、Aitken 迭代法的加速效果。
实验内容:
求解方程
,适当选取初值,采用如下迭代格式:
(1) 8.03
1-=+k k x x .
(2) .
(3) 由格式(2)得到的Steffensen 迭代法。 (4) 牛顿迭代法。
实验要求:
(1) 对4种迭代格式编程计算,并比较计算的结果(包括收敛速度)。 (2) 对前两种迭代格式产生的迭代数列,分别用Aitken 迭代法进行
加速,并与原来的结果进行比较。
算法:
(一) 功能:用迭代公式
求方程
的根;
形参:迭代函数g ,初值,精度e; 条件:对初值迭代收敛.
结果:返回方程的根,相邻两次近似值相差不超过e. 说明:①函数abs表示,即
②若迭代对某范围内任一初值都收敛,则可取消形参,而由程序选取。若对初值迭代格式未必收敛,则有下面算法。
迭代结果:
x=fun1(inline('sqrt(x.^2-0.8)'),0.5,1e-5)
Warning: 已达迭代次数上限
In fun1 at 15
k=500
x = 0 +19.9937i
(二)功能:用迭代公式求方程的根;
形参:迭代函数g,初值,精度e,最大迭代次数m;
说明:①用逻辑变量L表示迭代成功或失败,若迭代成功,则x为根的近似值,否则x没有意义。
②迭代的最大次数可为形参,也可由算法选定。
③迭代失败并不说明迭代发散,只表示迭代制定次数未达到精
度要求。
④若迭代格式收敛较慢,精度要求高,则因适当取较大的m。
迭代结果:
x=fun1(inline('(x.^2-0.8).^(1/3.0)'),0.5,1e-5)
k=22
x =0.8442 + 0.6705i
(三)S teffensen迭代
功能:用Steffensen迭代法求方程的根;
条件:迭代每一步,公式中的分母非零,迭代收敛;
形参:迭代函数g,初值,精度e;
结果:返回方程的根,相邻两次近似值相差不超过e. 说明:①x^2表示;
②迭代初值可由程序确定或由形参传入;
③若迭代可能发散,则可对此算法做适当修改。
迭代结果:
(2)x=XCSteffensen(inline('(x.^2-0.8).^(1/3.0)'),0.
5,1e-5,500)
k=3
Warning: Imaginary parts of complex X and/or Y arguments ignored.
> In XCaitken at 22
x = 0.8442 + 0.6705i
(四)Newton迭代
功能:用Newton迭代求解方程的根;
形参:函数,倒数,初值,根x,精度e,最大迭代次数m 结果:返回迭代是否成功,若迭代成功,则x返回方程的一个根。
说明:①形参f和f1可和为一个形g,;
形参可合并为一个形参。
format long
fun=inline('x.^3-x.^2-0.8');
dfun=inline('3*x.^2-2*x');
x=XCnewton(fun,dfun,1.0,1e-5,500)
k=5
x = 1.40516702210213
(五)Aitken迭代
功能:用Aitken迭代法求方程的根;
条件:迭代每一步,公式中的分母非零,迭代收敛;
形参:迭代函数g,初值,精度e;
结果:返回方程的根,相邻两次近似值相差不超过e.
(1)x=XCaitken(inline('sqrt(x.^2-0.8)'),0.5,1e-5,500) Warning: Divide by zero.
> In XCAitken at 14
Warning: 已达迭代次数上限
> In XCAitken at 20
k=500
Warning: Imaginary parts of complex X and/or Y arguments ignored.
> In XCAitken at 22
x = NaN + NaNi
(2)
x=XCaitken(inline('(x.^2-0.8).^(1/3.0)'),0.5,1e-15,500) k=20
x=1.40516702210234
1.3
1.32
1.34
1.36
1.38
1.4
1.42
实验3.2 方程组的性态和条件数实验
实验目的;
理解条件数的意义和方程组的性态对解向量的影响。
实验内容:
已知两个方程组和,其中
, ,
实验要求:
对,取下面均用Matlab函数“”计算方程组的解。
(1)取n=4,6,8,分别求出的条件数,判别它们是否是病态
阵?岁n的增大,矩阵的性态变化如何?
(2)取n=5,分别求出两个方程组的解向量.
(3)取n=5,b不变,对的元素分别加一个扰动,分别求出第一个方程组的解向量;若不变,对b的元
素加一个扰动,求出
(4)取n=6,b不变,对的元素分别加一个扰动,分