课题一 迭代格式的比较.docx

上传人:b****6 文档编号:6267397 上传时间:2023-01-05 格式:DOCX 页数:13 大小:74.59KB
下载 相关 举报
课题一 迭代格式的比较.docx_第1页
第1页 / 共13页
课题一 迭代格式的比较.docx_第2页
第2页 / 共13页
课题一 迭代格式的比较.docx_第3页
第3页 / 共13页
课题一 迭代格式的比较.docx_第4页
第4页 / 共13页
课题一 迭代格式的比较.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

课题一 迭代格式的比较.docx

《课题一 迭代格式的比较.docx》由会员分享,可在线阅读,更多相关《课题一 迭代格式的比较.docx(13页珍藏版)》请在冰豆网上搜索。

课题一 迭代格式的比较.docx

课题一迭代格式的比较

课题一迭代格式的比较

要求:

1、编制一个程序进行运算,最后打印出每种迭代格式的敛散情况;

、建立迭代程序的M文件:

function[k,piancha,xk]=diedail(x0,k)

x

(1)=x0

fori=1:

k

x(i+1)=funl(x(i))%用所用的格式迭代

piancha=abs(x(i+1)-x(i));%偏差

i=i+1;

xk=x(i);%第k次迭代的结果

[(i-1)pianchaxk]

end

p=[(i-1)pianchaxk];%输出迭代次数、偏差和第k次迭代的结果

、对于不同的迭代式子建立不同的funl.m文件

(1)

建立迭代式子

(1)的M文件:

functiony1=funl(x)

y1=(3*x+1)/x^2;

在matlab命令窗口中运行以下命令

>>[k,piancha,xk]=diedail(0.5,5)%初值是0.5,迭代5次

x=

0.5000

x=

0.500010.0000

ans=

1.00009.500010.0000

x=

0.500010.00000.3100

ans=

2.00009.69000.3100

x=

0.500010.00000.310020.0832

ans=

3.000019.773220.0832

x=

0.500010.00000.310020.08320.1519

ans=

4.000019.93140.1519

x=

0.500010.00000.310020.08320.151963.1191

ans=

5.000062.967363.1191

k=

5

piancha=

62.9673

xk=

63.1191

由以上结果可知迭代式

(1)是发散的。

(2)

建立迭代式子

(2)的M文件:

functiony1=funl(x)

y1=(x^3-1)/3;

在matlab命令窗口中运行以下命令

>>[k,piancha,xk]=diedail(0.5,7)

x=

0.5000

x=

0.5000-0.2917

ans=

1.00000.7917-0.2917

x=

0.5000-0.2917-0.3416

ans=

2.00000.0499-0.3416

x=

0.5000-0.2917-0.3416-0.3466

ans=

3.00000.0050-0.3466

x=

0.5000-0.2917-0.3416-0.3466-0.3472

ans=

4.00000.0006-0.3472

x=

0.5000-0.2917-0.3416-0.3466-0.3472-0.3473

ans=

5.00000.0001-0.3473

x=

0.5000-0.2917-0.3416-0.3466-0.3472-0.3473-0.3473

ans=

6.00000.0000-0.3473

x=

0.5000-0.2917-0.3416-0.3466-0.3472-0.3473-0.3473-0.3473

ans=

7.00000.0000-0.3473

k=

7

piancha=

1.0399e-006

xk=

-0.3473由以上结果可知迭代式

(2)是收敛的。

(3)

建立迭代式子(3)的M文件:

functiony1=funl(x)

y1=(3*x+1)^(1/3);

在matlab命令窗口中运行以下命令:

>>[k,piancha,xk]=diedail(0.5,10)

x=

0.5000

x=

0.50001.3572

ans=

1.00000.85721.3572

x=

0.50001.35721.7181

ans=

2.00000.36091.7181

x=

0.50001.35721.71811.8326

ans=

3.00000.11451.8326

x=

0.50001.35721.71811.83261.8660

ans=

4.00000.03351.8660

x=

0.50001.35721.71811.83261.86601.8756

ans=

5.00000.00961.8756

x=

0.50001.35721.71811.83261.86601.87561.8783

ans=

6.00000.00271.8783

x=

0.50001.35721.71811.83261.86601.87561.87831.8791

ans=

7.00000.00081.8791

x=

0.50001.35721.71811.83261.86601.87561.87831.87911.8793

ans=

8.00000.00021.8793

x=

0.50001.35721.71811.83261.86601.87561.87831.87911.87931.8794

ans=

9.00000.00011.8794

x=

0.50001.35721.71811.83261.86601.87561.87831.87911.87931.87941.8794

ans=

10.00000.00001.8794

k=

10

piancha=

1.7458e-005

xk=

1.8794

由以上结果可知迭代式(3)是收敛的。

(4)

建立迭代式子(4)的M文件:

functiony1=funl(x)

y1=1/(x^2-3);

在matlab命令窗口中运行以下命令:

>>[k,piancha,xk]=diedail(0.5,5)

x=

0.5000

x=

0.5000-0.3636

ans=

1.00000.8636-0.3636

x=

0.5000-0.3636-0.3487

ans=

2.00000.0149-0.3487

x=

0.5000-0.3636-0.3487-0.3474

ans=

3.00000.0013-0.3474

x=

0.5000-0.3636-0.3487-0.3474-0.3473

ans=

4.00000.0001-0.3473

x=

0.5000-0.3636-0.3487-0.3474-0.3473-0.3473

ans=

5.00000.0000-0.3473

k=

5

piancha=

9.0701e-006

xk=

-0.3473

由以上结果可知迭代式(4)是收敛的。

(5)

建立迭代式子(5)的M文件:

functiony1=funl(x)

y1=(3+1/x)^(1/2);

在matlab命令窗口中运行以下命令:

>>[k,piancha,xk]=diedail(0.5,8)

x=

0.5000

x=

0.50002.2361

ans=

1.00001.73612.2361

x=

0.50002.23611.8567

ans=

2.00000.37941.8567

x=

0.50002.23611.85671.8811

ans=

3.00000.02441.8811

x=

0.50002.23611.85671.88111.8793

ans=

4.00000.00191.8793

x=

0.50002.23611.85671.88111.87931.8794

ans=

5.00000.00011.8794

x=

0.50002.23611.85671.88111.87931.87941.8794

ans=

6.00000.00001.8794

x=

0.50002.23611.85671.88111.87931.87941.87941.8794

ans=

7.00000.00001.8794

x=

0.50002.23611.85671.88111.87931.87941.87941.87941.8794

ans=

8.00000.00001.8794

k=

8

piancha=

5.9875e-008

xk=

1.8794

由以上结果可知迭代式(5)是收敛的。

(6)

建立迭代式子(6)的M文件:

functiony1=funl(x)

y1=x-(1/3)*((x^3-3*x-1)/(x^2-1));

在matlab命令窗口中运行以下命令:

>>[k,piancha,xk]=diedail(0.5,5)

x=

0.5000

x=

0.5000-0.5556

ans=

1.00001.0556-0.5556

x=

0.5000-0.5556-0.3168

ans=

2.00000.2388-0.3168

x=

0.5000-0.5556-0.3168-0.3470

ans=

3.00000.0302-0.3470

x=

0.5000-0.5556-0.3168-0.3470-0.3473

ans=

4.00000.0003-0.3473

x=

0.5000-0.5556-0.3168-0.3470-0.3473-0.3473

ans=

5.00000.0000-0.3473

k=

5

piancha=

4.5086e-008

xk=

-0.3473

由以上结果可知迭代式(6)是收敛的。

2、用事后误差估计

来控制迭代次数,并且打印出迭代的次数;

建立diedail.m文件程序如下:

function[k,piancha,xk]=diedail(x0)

x

(1)=x0

fori=1:

100

x(i+1)=funl(x(i))

piancha=abs(x(i+1)-x(i));

[(i-1)pianchax(i)]

if(piancha<0.0000000005)%误差小于0.0000000005

k=i,xk=x(i)

break

end

i=i+1;

end

[kpianchaxk]

对于不同的收敛迭代式运行命令[k,piancha,xk]=diedail(0.5),有以下结果:

(2)

k=

11

piancha=

2.2008e-010

xk=

-0.3473

(3)

k=

19

piancha=

2.0403e-010

xk=

1.8794

(4)

k=

9

piancha=

4.4683e-010

xk=

-0.3473

(5)

k=

10

piancha=

3.3969e-010

xk=

1.8794

(6)

k=

6

piancha=

8.3267e-016

xk=

-0.3473

3、初始值的选取对迭代收敛有何影响;

对于f(x),如果其迭代式满足不动点存在的两个条件,则在其要求的区间内存在不动点,那么对于其所要求的区间上的所有点此迭代式都收敛。

也就是说,此时初值的选取对于迭代收敛没有影响。

又称全局收敛性。

以上四个收敛式都有全局收敛性。

初值的不同对于迭代式的敛散性和收敛阶没有影响,只是对于达到所要求误差的达到次数有一定的影响。

4、分析迭代收敛和发散的原因。

f(x)=0分解为x=

若其迭代后趋近于一点,称该点为不动点。

迭代法是一种逐次逼近法,其基本思想是将隐式方程

归结为一组显式的计算公式,就是说迭代工程实质上是一个逐步显化的过程。

发散迭代式的迭代过程可表示为图1

收敛迭代式的迭代过程可表示为图2

不动点的存在性:

x=

满足以下条件:

1.对于任意的在f(x)的定义域[a,b]上的

2.存在正常数L<1,对于任意的x,y∈[a,b]都有

,则

在[a,b]上存在唯一的不动点,又可表述为

迭代法的收敛性:

只要

满足以上条件,则对任意的

,其迭代计算都收敛到不动点。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1