数值分析实验报告 (2)

  • 格式:doc
  • 大小:1.03 MB
  • 文档页数:34

下载文档原格式

  / 34
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.'
;
subplot(2,2,3),plot(x3(3:x3(2))),title('牛顿割线法'); subplot(2,2,4),plot(x4(3:x4(2))),title('史蒂芬森迭代法'); figure, subplot(2,2,1),plot((x1(4:x1(2)-1)-x1(1))./(x1(3:x1(2)-2)-x1(1))),tit le('二分法'); subplot(2,2,2),plot((x2(4:x2(2)-1)-x2(1))./(x2(3:x2(2)-2)-x2(1))),tit le('牛顿迭代法'); subplot(2,2,3),plot((x3(4:x3(2)-1)-x3(1))./(x3(3:x3(2)-2)-x3(1))),tit le('牛顿割线法'); subplot(2,2,4),plot((x4(4:x4(2)-1)-x4(1))./(x4(3:x4(2)-2)-x4(1))),tit le('史蒂芬森迭代法'); %不同初始值,相同迭代法下的收敛性 x5=dichotomie(-1,1,1e-10); x6=dichotomie(-2,3,1e-10); x7=dichotomie(0,4,1e-10); x8=dichotomie(-4,4,1e-10); x9=NewtonIterative(-2,1e-10); x10=NewtonIterative(-4,1e-10); x11=NewtonIterative(4,1e-10); x12=NewtonIterative(6,1e-10); figure, subplot(1,2,1), plot(1:x1(2)-2,x1(3:x1(2)),1:x5(2)-2,x5(3:x5(2)),1:x6(2)-2,x6(3:x6(2) ),1:x7(2)-2,x7(3:x7(2)),1:x8(2)-2,x8(3:x8(2))),title('二分法'); subplot(1,2,2), plot(1:x2(2)-2,x2(3:x2(2)),1:x9(2)-2,x9(3:x9(2)),1:x10(2)-2,x10(3:x10 (2)),1:x11(2)-2,x11(3:x11(2)),1:x12(2)-2,x12(3:x12(2))),title('牛顿迭 代法'); x13=Secant(-1,1, 1e-10); x14=Secant(-4,5, 1e-10); x15=Secant(0,7, 1e-10); x16=Secant(-8,2, 1e-10); x17=StephensonIterative(-1,1e-10); x18=StephensonIterative(-4,1e-10); x19=StephensonIterative(4,1e-10); x20=StephensonIterative(6,1e-10);
t=(a+b)/2; s1=f(a); s2=f(b); s3=f(t); if s1(1)*s3(1)<=0
b=t; else
a=t; end m(i)=t; i=i+1; end
.'
y=[t,i+1,m]; end 牛顿迭代法: function y=NewtonIterative(x,e) i=2; en=2*e; m(1)=x; while abs(en)>=e
的区间长度仅
为 区间长度的一版。对压缩了的有根区间
重复以上过程,又得到新的
有根区间
,其区间长度为
的一半,如此反复,……,可得一系列有
根区间,区间收敛到一个点即为根。 牛顿迭代法:不动点迭代法的一种特例,具有局部二次收敛的特性。迭代
格式为
割线法:是牛顿法的改进,具有超线性收敛的特性,收敛阶为 1.618. 迭代 格式为
clear all; %相同初始值,不同迭代法下的收敛 x1=dichotomie(0,3,1e-10); x2=NewtonIterative(0,1e-10); x3=Secant(0,2, 1e-10); x4=StephensonIterative(0,1e-10); [x1(2),x2(2),x3(2),x4(2)] figure, subplot(2,2,1),plot(x1(3:x1(2))),title('二分法'); subplot(2,2,2),plot(x2(3:x2(2))),title('牛顿迭代法');
史蒂芬森迭代法:采用不动点迭代进行预估校正。至少是平方收敛的。迭 代格式为
源自文库
.'
;
这里 可采用牛顿迭代法的迭代函数。
实验内容:
1. 写出该问题的 函数 代码如下: function py= f(x) syms k; y=(k^2+1)*(k-1)^5; yy=diff(y,k); py(1)=subs(y,k,x); py(2)=subs(yy,k,x); end 2. 分别写出各个迭代法的迭代函数 代码如下: 二分法: function y=dichotomie(a,b,e) i=2; m(1)=a; while abs(a-b)>e
y=fai(x); z=fai(y); t=x-(y-x)^2/(z-2*y+x); en=t-x; x=t; m(i)=t; i=i+1; end p=[x,i+1,m]; end
3. 因为 经常被使用,故可以写一个 函数。
代码如下: function y=fai(x)
s=f(x); y=x-s(1)/s(2); end 4. 可以绘制不同的图形来比较不同迭代法的收敛性和不同初值下的收敛性。 代码如下:
;
数值分析实验报告
(第二章)
实验题目:
分别用二分法、牛顿迭代法、割线法、史蒂芬森迭代法求方程
的根 ,观察不同初始值下的收敛性,并给出结论。
问题分析:
题目有以下几点要求: 1. 不同的迭代法计算根,并比较收敛性。 2. 选定不同的初始值,比较收敛性。
实验原理:
各个迭代法简述
二分法:取有根区间 的重点 ,确定新的有根区间
t=x2-(x2-x1)*s2(1)/(s2(1)-s1( 1));
x1=x2; x2=t; m(i)=t; i=i+1; end y=[x2,i+1,m]; end 史蒂芬森迭代法:
Function p=StephensonIterative(x,e) i=2; m(2)=x; en=2*e; while abs(en)>=e
s=f(x); t=x-s(1)/s(2); en=t-x; x=t; m(i)=t; i=i+1; end y=[x,i+1,m]; end 牛顿割线法:
;
function y=Secant(x1,x2,e) i=3; m(1)=x1,m(2)=x2; while abs(x2-x1)>=e
s1=f(x1); s2=f(x2);