1、迭代格式的比较课题一 迭代格式的比较一、问题提出设方程f(x)=x - 3x1=0 有三个实根x*1=, x*2=,x*3 =现采用下面六种不同计算格式,求f(x)=0的根 x*1 或x*21. 2. 3. 4. 5. 6. 二、要求1、编制一个程序进行运算,最后打印出每种迭代格式的敛散情况;2、用事后误差估计来控制迭代次数,并且打印出迭代的次数;3、初始值的选取对迭代收敛有何影响;4、分析迭代收敛和发散的原因。三、目的和意义1、通过实验进一步了解方程求根的算法;2、认识选择计算格式的重要性;3、掌握迭代算法和精度控制;4、明确迭代收敛性与初值选取的关系。1六种不同计算格式运行程序及运算结果
2、运行程序(1)function iteration_1x0=input(输入初始值x0 = );k=input(输入迭代次数k = );x(1)=x0 ;i=1;while i = kx(i+1)=fun(x(i) i=i+1;xk=x(i);end function y =fun(x) y=(3*x+1)/x2;(2)function iteration_2x0=input(输入初始值x0 = );k=input(输入迭代次数k = );x(1)=x0 ;i=1;while i = kx(i+1)=fun(x(i) i=i+1;xk=x(i);end function y =fun(x) y
3、=(x3-1)/3;(3)function iteration_3x0=input(输入初始值x0 = );k=input(输入迭代次数k = );x(1)=x0 ;i=1;while i = kx(i+1)=fun(x(i) i=i+1;xk=x(i);end function y =fun(x) y=(3*x+1)(1/3);(4)function iteration_4x0=input(输入初始值x0 = );k=input(输入迭代次数k = );x(1)=x0 ;i=1;while i = kx(i+1)=fun(x(i) i=i+1;xk=x(i);end function y =
4、fun(x) y=1/(x2-3);(5)function iteration_5x0=input(输入初始值x0 = );k=input(输入迭代次数k = );x(1)=x0 ;i=1;while i = kx(i+1)=fun(x(i) i=i+1;xk=x(i);end function y =fun(x) y=(3+1/x)(1/2);(6)function iteration_6x0=input(输入初始值x0 = );k=input(输入迭代次数k = );x(1)=x0 ;i=1;while i iteration输入初始值x0 = 输入迭代次数k = (1)iteration
5、_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
6、输入迭代次数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
7、(1)=input(输入初始值x0 = );m=input(输入控制误差m = );for i = 1:Nx(i+1)=fun(x(i) control=abs(x(i+1)-x(i); (i-1) control x(i) if (control k control xk=iteration输入最大迭代次数N = 30输入初始值x0 = 1输入控制误差m = 运行输出结果为:x = k = 13control = xk = 有输出结果可以看出,方程的一个根为,迭代了13次,并且最后一次的偏差为。3. 初始值的选取对迭代收敛有何影响如果函数在Ca,b满足不动点的两个条件,那么对于任意的x0a,b,得到的迭代序列xk收敛到函数的不动点。在此情况下,初始值的选取对迭代收敛没有任何影响,只是影响迭代收敛的速度和到达误差的精度要求的次数。4. 分析迭代收敛和发散的原因。f(x)=0改写成等价的形式x= (x),迭代法是一种逐次逼近法,其基本思想是将隐式方程= (x)归结为一组显式的计算公式,就是说迭代工程实质上是一个逐步显化的过程。当迭代下去不能趋于某个极值,这种现象成为发散。如图所示,图1为收敛的情况,图2为发散的情况。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1