5、md=a(l,q);a(l,q)=a(g,q);a(g,q)=d;endd=b(l);b(l)=b(g);b(g)=d;endendendfori=k:mc=a(i,k);forj=k:ma(i,j)=a(i,j)/c;%将每行的对角元素化为1endb(i)=b(i)/c;endfori=k:mforj=k:m-1a(j+1,i)=a(j+1,i)-a(k,i);%将下三角化为0endendfori=k:m-110b(i+1)=b(i+1)-b(k);endendx(m)=b(m);fori=m-1:-1:1
6、%回代求解过程x(i)=b(i);forj=i+1:mx(i)=x(i)-a(i,j)*x(j);endx(i)=x(i)/a(i,i);endfprintf('方程组的计算结果是:')fori=1:mfprintf('x(%d)=%.6ft',i,x(i));endcommandwindows中输入:>>a=[1,1,1;12,-3,3;-18,3,-1];%定义系数,用矩阵表示>>b=[6,15,-15];%定义右侧值,用一维矩阵表示>>gxy(a,b)%求解方程组计算结果是:方程组的计算结果是:x
7、(1)=1.000000x(2)=2.000000x(3)=3.0000003.追赶法求解方程组M文件编辑:zhuigan.mfunctionzhuigan(a,b,c,f)%定义m文件函数n=length(f);fori=2:n%追的过程t=a(i)/b(i-1);a(i)=0;b(i)=b(i)-c(i-1)*tf(i)=f(i)-f(i-1)*t;endx(n)=f(n)/b(n);%赶的过程(也就是回代的过程)fori=n-1:-1:1x(i)=(f(i)-c(i)*x(i+1))/b(i);endf
8、ori=1:nfprintf('x(%d)=%.6f',i,x(i));10endcommandwindows中输入:>>a=[0,-1,-1,-1];%定义第一列函数>>b=[2,2,2,2];%定义第二列函数>>c=[-1,-1,-1,0];%定义第三列函数>>f=[1,0,0,1];%定义右侧系数>>zhuigan(a,b,c,f)%调用函数解方程出现运行结果为:x(1)=1.000000