不动点迭代法matlab程序

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

实验四

姓名:木拉丁。尼则木丁班级:信计08-2

学号:20080803405 实验地点:新大机房

实验目的:通过本实验学习利用MATLAB不动点迭代法,抛物线法,斯特芬森迭代法解非线性方程组,及其编程实现,培养编程与上机调试能力。

实验要求:①上机前充分准备,复习有关内容,写出计算步骤,查对程序;

②完成实验后写出完整的实验报告,内容应该包括:所用的算法语言,

算法步骤陈述,变量说明,程序清单,输出计算结果,结果分析等等;

③用编好的程序在Matlab环境中执行。

迭代法

MATLAB程序:

function pwxff(f,x0,x1,x2,d,n)

f=inline(f);

x(1)=x0;

x(2)=x1;

x(3)=x2;

w1=(f(x(2))-f(x(3)))/(x(2)-x(3));

t1=(f(x(1))-f(x(3)))/(x(1)-x(3));

t2=(f(x(1))-f(x(2)))/(x(1)-x(2));

w2=1/(x(1)-x(2))*(t1-t2);

w=w1+w2*(x(3)-x(2));

for k=3:n

x(k+1)=x(k)-2*f(x(k))/(w+sqrt(w^2-4*f(x(k))*w2));

if abs(x(k+1)-x(k))

break

end

disp(sprintf('%d %f',k,x(k+1)))

end

x=x(k+1)

计算例题: 求f(x)=x3-x-1在[1,1.5]的零点. 取x0=1.5,

取x0=1.5,迭代公式为x n+1=(1+x n)1/3,计算结果如下表:

数值结果:ddfa('(x+1)^(1/3)',1.5,0.0001,100)

k x

1 1.500000

2 1.357209

3 1.330861

4 1.325884

5 1.324939

抛物线法

MATLAB程序:

function pwxf(f,x0,x1,x2,e,m)

f=inline(f);

x(1)=x0;

x(2)=x1;

x(3)=x2;

w1=(f(x(2))-f(x(3)))/(x(2)-x(3));

t1=(f(x(1))-f(x(3)))/(x(1)-x(3));

t2=(f(x(1))-f(x(2)))/(x(1)-x(2));

w2=(1/(x(1)-x(2)))*(t1-t2);

w=w1+w2*(x(3)-x(2));

for k=3:m

x(k+1)=x(k)-2*f(x(k))/(w+sqrt(w^2-4*f(x(k))*w2));

if abs(x(k+1)-x(k))

break

end

disp(sprintf('%d %f %f',k,x(k+1),f(x(k+1))))

end

x=x(k+1)

计算例题: 用抛物线法求解方程 :

56532.0,6.0,5.00

1)(210====-=x x x xe x f x

数值结果:

pwxf('x*exp(x)-1',0.5,0.6,0.56532,0.001,100)

3 0.567111 -0.000090

x = 0.5671

实验总结:从计算过程中得知迭代法的收敛性跟初始值和迭代公式有关,如果取初始值不妥当,迭代法会发散的。

2012-5-18

相关文档
最新文档