資源描述:
《數(shù)值分析1-列主元&全主元消去法.docx》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、作業(yè)二:分別編寫用列主元消去法和全主元消去法求解線性方程組的標(biāo)準(zhǔn)程序,求下列方程的解。0.8320.4480.1930.7840.4210.2070.784-0.4210.293x1x2x3=100高斯全主元消去法:流程圖開始判斷有沒有解,并輸出尋找絕對值最大的項(xiàng)并記錄位置換主行,換主列并記錄求解,并換回交換的列位子結(jié)束解題思路首先尋找絕對值最大的項(xiàng)并記錄位置,然后換主行,換主列并記錄,最后再求解,并換回之前交換的矩陣的列位。程序function[x,qa]=gaussq(a,b)%輸出想x為解,qa為全主元變換后的a矩陣a=[0.8320.4480.
2、193;0.7840.4210.207;0.784-0.4210.293];b=[1,0,0]';d=[ab];RA=rank(a);RD=rank(d);L=length(b);n=size(a);pos=1:n(1);ifRA~=RDfprintf('無解')elseifRA~=Lfprintf('有無數(shù)多個解')elsefprintf('有唯一解')forq=1:nbig=max(max(abs(a(q:n,q:n))));forr=q:nfort=q:nifbig==abs(a(r,t))zhuh=r;zhul=t;endendendp=a(q
3、,:);%換主行a(q,:)=a(zhuh,:);a(zhuh,:)=p;bb=b(q);b(q)=b(zhuh);b(zhuh)=bb;p=a(:,q);%換主列a(:,q)=a(:,zhul);a(:,zhul)=p;p=pos(q);%記錄由于換主列而造成的解的位置的變化pos(q)=pos(zhul);pos(zhul)=p;endc=[ab];forj=1:L-1%化為上三角陣fori=(j+1):Lm=c(i,j)/c(j,j);c(i,:)=c(i,:)-c(j,:)*m;endendx(L,1)=c(L,L+1)/c(L,L);fork
4、=L-1:-1:1%求解xx(k,1)=(c(k,L+1)-c(k,k+1:L)*x(k+1:L))/c(k,k);endy=[1:n(1)]';%交換被列調(diào)換時打亂的解的位置forw=1:nforv=1:nif(pos(v)==w)y(w)=x(v);endendendx=y;endendqa=a程序結(jié)果高斯列主元消去法:流程圖開始判斷有沒有解,并輸出尋找當(dāng)前列中絕對值最大的項(xiàng)換主行求解結(jié)束程序%function[x,qa]=gaussq(a,b)a=[0.8320.4480.193;0.7840.4210.207;0.784-0.4210.293]
5、;b=[1,0,0]';d=[ab];L=length(b);n=size(a);forq=1:nbig=max(max(abs(a(q:n,q:n))));forr=q:nifbig==abs(a(r,q))zhuh=r;endendp=a(q,:);%換主行a(q,:)=a(zhuh,:);a(zhuh,:)=p;bb=b(q);b(q)=b(zhuh);b(zhuh)=bb;endc=[ab];forj=1:L-1%化為上三角矩陣fori=(j+1):Lm=c(i,j)/c(j,j);c(i,:)=c(i,:)-c(j,:)*m;endendx(
6、L,1)=c(L,L+1)/c(L,L);fork=L-1:-1:1%求解x(k,1)=(c(k,L+1)-c(k,k+1:L)*x(k+1:L))/c(k,k);end程序結(jié)果