实验2.1 迭代法、初始值与收敛性实验目的:初步认识非线性问题的迭代法与线性问题的迭代法的差别,探讨迭代法及初始值与迭代收敛性的关系。问题的提出:迭代法是求解非线性方程(组)的基本方法,与线性方程的情况一样,其构造方程多种多样,但关键是怎样才能使迭代收敛且有较快的收敛速度。实验内容:考虑一个简单的代数方程为: 构造多种迭代法,如,012=--x x 121-=+n n x x ,等。在实轴上取初始值,分别用以上迭代法做实验,记n n x x 111+
=+11+=+n n x x 0x 录各算法的迭代过程。
实验要求:(1)取定某个初始值,按如上迭代格式进行计算,它们的收敛性如何?重复选取不同的初始值,反复实验,利用matlab 的图形功能,分析3种迭代法的收敛性与初值选取的关系。 程序:
①初始值=1.0时;0x 1.源程序为:syms x fx gx;
gx=x^2-1;fx=x^2-x-1;disp('k x f(x)');x=1.0;k=0;ffx=subs(fx, 'x', x);while abs(ffx)>0.0001; disp([num2str(k), ' ', num2str(x), ' ', num2str(ffx)]) x=subs(gx, 'x', x);ffx=subs(fx, 'x', x);k=k+1; a(k)=x; pause(1); if k>100 break; end end plot(a,'g-+');title('迭代次数k 与x 的函数关系');xlabel('迭代次数k');ylabel('x');
grid on;
disp([num2str(k), ' ', num2str(x), ' ', num2str(ffx)]);2. 图形: