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;%將每行的對(duì)角元素化為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、%回代求解過(guò)程x(i)=b(i);forj=i+1:mx(i)=x(i)-a(i,j)*x(j);endx(i)=x(i)/a(i,i);endfprintf('方程組的計(jì)算結(jié)果是:')fori=1:mfprintf('x(%d)=%.6ft',i,x(i));endcommandwindows中輸入:>>a=[1,1,1;12,-3,3;-18,3,-1];%定義系數(shù),用矩陣表示>>b=[6,15,-15];%定義右側(cè)值,用一維矩陣表示>>gxy(a,b)%求解方程組計(jì)算結(jié)果是:方程組的計(jì)算結(jié)果是:x
7、(1)=1.000000x(2)=2.000000x(3)=3.0000003.追趕法求解方程組M文件編輯:zhuigan.mfunctionzhuigan(a,b,c,f)%定義m文件函數(shù)n=length(f);fori=2:n%追的過(guò)程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);%趕的過(guò)程(也就是回代的過(guò)程)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];%定義第一列函數(shù)>>b=[2,2,2,2];%定義第二列函數(shù)>>c=[-1,-1,-1,0];%定義第三列函數(shù)>>f=[1,0,0,1];%定義右側(cè)系數(shù)>>zhuigan(a,b,c,f)%調(diào)用函數(shù)解方程出現(xiàn)運(yùn)行結(jié)果為:x(1)=1.000000