迭代格式的比较.docx
- 文档编号:8020526
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:8
- 大小:94.90KB
迭代格式的比较.docx
《迭代格式的比较.docx》由会员分享,可在线阅读,更多相关《迭代格式的比较.docx(8页珍藏版)》请在冰豆网上搜索。
迭代格式的比较
课题一迭代格式的比较
一、问题提出
设方程f(x)=x-3x–1=0有三个实根x*1=,x*2=,x*3=
现采用下面六种不同计算格式,求f(x)=0的根x*1或x*2
1.
2.
3.
4.
5.
6.
二、要求
1、编制一个程序进行运算,最后打印出每种迭代格式的敛散情况;
2、用事后误差估计
来控制迭代次数,并且打印出迭代的次数;
3、初始值的选取对迭代收敛有何影响;
4、分析迭代收敛和发散的原因。
三、目的和意义
1、通过实验进一步了解方程求根的算法;
2、认识选择计算格式的重要性;
3、掌握迭代算法和精度控制;
4、明确迭代收敛性与初值选取的关系。
1.六种不同计算格式运行程序及运算结果
运行程序
(1)
functioniteration_1
x0=input('输入初始值x0=');
k=input('输入迭代次数k=');
x
(1)=x0;
i=1;
whilei<=k
x(i+1)=fun(x(i))
i=i+1;
xk=x(i);
end
functiony=fun(x)
y=(3*x+1)/x^2;
(2)
functioniteration_2
x0=input('输入初始值x0=');
k=input('输入迭代次数k=');
x
(1)=x0;
i=1;
whilei<=k
x(i+1)=fun(x(i))
i=i+1;
xk=x(i);
end
functiony=fun(x)
y=(x^3-1)/3;
(3)
functioniteration_3
x0=input('输入初始值x0=');
k=input('输入迭代次数k=');
x
(1)=x0;
i=1;
whilei<=k
x(i+1)=fun(x(i))
i=i+1;
xk=x(i);
end
functiony=fun(x)
y=(3*x+1)^(1/3);
(4)
functioniteration_4
x0=input('输入初始值x0=');
k=input('输入迭代次数k=');
x
(1)=x0;
i=1;
whilei<=k
x(i+1)=fun(x(i))
i=i+1;
xk=x(i);
end
functiony=fun(x)
y=1/(x^2-3);
(5)
functioniteration_5
x0=input('输入初始值x0=');
k=input('输入迭代次数k=');
x
(1)=x0;
i=1;
whilei<=k
x(i+1)=fun(x(i))
i=i+1;
xk=x(i);
end
functiony=fun(x)
y=(3+1/x)^(1/2);
(6)
functioniteration_6
x0=input('输入初始值x0=');
k=input('输入迭代次数k=');
x
(1)=x0;
i=1;
whilei<=k
x(i+1)=fun(x(i))
i=i+1;
xk=x(i);
end
functiony=fun(x)
y=x-(1/3)*((x^3-3*x-1)/(x^2-1));
运行结果
在matlab的commandwindow中调用写好的m文件,运行方式如下
>>iteration
输入初始值x0=
输入迭代次数k=
(1)
>>iteration_1
输入初始值x0=1
输入迭代次数k=5
计算格式
(1)最终运行结果如下:
x=
由此知,计算格式
(1)发散。
(2)
>>iteration_2
输入初始值x0=1
输入迭代次数k=5
计算格式
(2)最终运行结果如下:
x=0
由此知,计算格式
(2)收敛。
(3)
>>iteration_3
输入初始值x0=1
输入迭代次数k=8
计算格式
(2)最终运行结果如下:
x=
由此知,计算格式(3)收敛。
(4)
>>iteration_4
输入初始值x0=1
输入迭代次数k=5
计算格式
(2)最终运行结果如下:
x=
由此知,计算格式(4)收敛。
(5)
>>iteration_5
输入初始值x0=1
输入迭代次数k=8
计算格式(5)最终运行结果如下:
x=
由此知,计算格式(5)收敛。
(6)
>>iteration_6
输入初始值x0=2
输入迭代次数k=5
计算格式(6)最终运行结果如下:
x=
事后误差估计控制迭代次数,程序如下
(①注:
此程序只能够在迭代式收敛的情况下有意义;
②如果要采用不同的计算格式,只要将matlab程序的子函数中的迭代式修改即可。
)
function[k,control,xk]=iteration
%k为输出的迭代次数
%control为控制条件,使循环结束
%xk为迭代方程的一个根
%此函数只能够在迭代式收敛的情况下有意义
N=input('输入最大迭代次数N=');
x
(1)=input('输入初始值x0=');
m=input('输入控制误差m=');
fori=1:
N
x(i+1)=fun(x(i))
control=abs(x(i+1)-x(i));
[(i-1)controlx(i)]
if(control k=i; xk=x(i); break end i=i+1; end functiony=fun(x) y=(3*x+1)^(1/3); 将程序存为m文件,并且进行调用,有如下运行方式(程序以计算格式(3)为例) >>[kcontrolxk]=iteration 输入最大迭代次数N=30 输入初始值x0=1 输入控制误差m= 运行输出结果为: x= k=13 control= xk= 有输出结果可以看出,方程的一个根为,迭代了13次,并且最后一次的偏差为。 3.初始值的选取对迭代收敛有何影响 如果函数在C[a,b]满足不动点的两个条件,那么对于任意的x0∈[a,b],得到的迭代序列{xk}收敛到函数的不动点。 在此情况下,初始值的选取对迭代收敛没有任何影响,只是影响迭代收敛的速度和到达误差的精度要求的次数。 4.分析迭代收敛和发散的原因。 f(x)=0改写成等价的形式x= (x),迭代法是一种逐次逼近法,其基本思想是将隐式方程= (x)归结为一组显式的计算公式,就是说迭代工程实质上是一个逐步显化的过程。 当迭代下去不能趋于某个极值,这种现象成为发散。 如图所示,图1为收敛的情况,图2为发散的情况。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 格式 比较