3、'k=',num2str(k)]);四、结果及讨论1、结果(1)迭代法(2)牛顿法2、讨论不动点迭代法是求解非线性方程的主要方法,而牛顿法应用广泛,是著名的非线性方程求根法,两种方法有如下不同:(1)牛顿法求解方程的单根时具有二阶收敛性,从结果可知,牛顿法比不动点迭代法的收敛速度快,能以较少的迭代达到理想的值。(2)由于不动点迭代在区间内的唯一性,所以若要求方程的不同解,则需选择不同的迭代公式;而对于牛顿法,只需选取不同的初值,牛顿法就会收敛于不同的跟。实验二线性方程组的直接解法一、目的和意义线性方程的直接解
4、法是指通过有限步运算后,将方程组加工为某个三角方程组对角方程组来求解,主要分为消元法和矩阵分解两大类。本次实验通过matlab程序的编写,熟悉使用LU分解、追赶法等线性方程组的直接求解方法。巩固课堂和书本上所学的知识、加强实践能力、提高解决实际计算问题的水平、启发创新思想。二、计算公式(1)LU分解LU分解主要是指Doolittle分解,Doolittle分解公式为:Doolittle分解得到矩阵A的LU分解后,求解Ly=b与Ux=y的计算公式为:(2)追赶法追赶法即带状矩阵的LU分解,其分解公式为:求解Ly
5、=d与Ux=y的计算公式为:三、结构程序设计代码(1)LU分解A=[4,2,1,5;8,7,2,10;4,8,3,6;12,6,11,20];b=[-2;-7;-7;-3];L=eye(4);U(1,:)=A(1,:);%将L初始化为单位对角阵,并使u1j=aijn=4;x=zeros(n,1);%将x和y初始化为n×1的零矩阵y=zeros(n,1);fork=2:n%矩阵分解ifU(k-1,k-1)==0%*若对角线元素为0,则计算公式无意义,分解失败*%disp('分解失败');return;endL(
6、k:n,k-1)=A(k:n,k-1)/U(k-1,k-1);U(k,k:n)=A(k,k:n)-L(k,1:k-1)*U(1:k-1,k:n);ifk7、n);forj=n-1:-1:1x(j,1)=(C(j,n+1)-C(j,j+1:n)*x(j+1:n,1))/C(j,j);endx%输出x(2)追赶法n=5;%n=5fori=1:n%*输入a=(a1,a2,…,an),b=(b1,b2,…,bn),c=(c1,c2,…,cn),d=(d1,d2,…,dn),其中,多输入的a1和cn对程序没有影响*%a(i)=1;b(i)=2;c(i)=1;ifi==1d(i)=-7;elsed(i)=-5;endendfori=2:n%矩阵分解ifb(i-1)==0%若
8、对角线元素为零,则算法失效disp('追赶法失败');returnenda(i)=a(i)/b(i-1);b(i)=b(i)-c(i-1)*a(i);d(i)=d(i)-a(i)*d(i-1);endX(n)=d(n)/b(n);%求解Xfori=n-1:-1:1X(i)=(d(i)-c(i)*X(i+1))/b(i);endX%以小数形式输出Xformatrat%以分数形式输出XX改变n的取值为1