網絡數值線性代數_第1頁
網絡數值線性代數_第2頁
網絡數值線性代數_第3頁
網絡數值線性代數_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗四 高斯消去法4.1 實驗目的 掌握高斯消去法的基本思路和迭代步驟; 培養(yǎng)編程與上機調試能力。4.2 算法描述4.2.1 高斯消去法基本思路。設有方程組,設是可逆矩陣。高斯消去法的基本思想就是僵局真的初等行變換作用于方程組的增廣矩陣,將其中的變換成一個上三角矩陣,然后求解這個三角形方程組。4.2.2 列主元高斯消去法計算步驟 將方程組用增廣矩陣表示。步驟1:消元過程,對(1) 選主元,找使得(2) 如果,則矩陣奇異,程序結束;否則執(zhí)行(3)。(3) 如果,則交換第行與第行對應元素位置,。(4) 消元,對,計算對,計算步驟 2:回代過程:(1) 若則矩陣奇異,程序結束;否則執(zhí)行(2)。(2)

2、 對,計算4.3 實驗內容解方程組function X=gaussian(A,B,n)C=A B;for i=2:n r,c=max(abs(C(i-1:n,i-1); VEC=C(i-1,:);C(i-1,:)=C(c+i-2,:);C(c+i-2,:)=VEC; if C(i-1,i-1)=0 return end for k=(i-1):(n-1) C(k+1,:)=C(i-1,:)*-C(k+1,i-1)/C(i-1,i-1)+C(k+1,:); endendD=C;B2=C(:,n+1);D(:,n+1)=;X=zeros(1,n);for i=1:n X(n+1-i)=(B2(n+

3、1-i)-D(n+1-i,:)*X')/C(n+1-i,n+1-i); end=運行:>>A=10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8;>>B=6,25,-11,15'>>gaussian(A,B,4)ans = 1.0000 2.0000 -1.0000 1.0000  14回答者: 雪function RA,RB,n,X=gaus(A,b)B=A b; n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA;if zhica>0,disp(&#

4、39;請注意:因為RA=RB,所以此方程組無解.')returnendif RA=RB if RA=ndisp('請注意:因為RA=RB=n,所以此方程組有唯一解.') X=zeros(n,1); C=zeros(1,n+1); for p= 1:n-1for k=p+1:n m= B(k,p)/ B(p,p); B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1);endend b=B(1:n,n+1);A=B(1:n,1:n); X(n)=b(n)/A(n,n); for q=n-1:-1:1 X(q)=(b(q)-sum(A(q,q+1:n)*

5、X(q+1:n)/A(q,q); endelse disp('請注意:因為RA=RB<n,所以此方程組有無窮多解.')endend例3.3.2 用高斯消元法和MATLAB程序求解下面的非齊次線性方程組,并且用逆矩陣解方程組的方法驗證.解 在MATLAB工作窗口輸入程序>> A=1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -4 1; b=1;0; -1;-1; RA,RB,n,X =gaus (A,b)運行后輸出結果請注意:因為RA=RB=n,所以此方程組有唯一解.X = 0 -0.5000 0.5000 0RA = 4RB = 4n

6、 = 4LU分解法.4.2 直接LU分解法及其MATLAB程序將矩陣進行直接LU分解的MATLAB程序function hl=zhjLU(A)n n =size(A); RA=rank(A); if RA=ndisp('請注意:因為A的n階行列式hl等于零,所以A不能進行LU分解.A的秩RA如下:'), RA,hl=det(A);returnendif RA=n for p=1:nh(p)=det(A(1:p, 1:p);endhl=h(1:n);for i=1:nif h(1,i)=0disp('請注意:因為A的r階主子式等于零,所以A不能進行LU分解.A的秩RA和各

7、階順序主子式值hl依次如下:'), hl;RAreturnendend if h(1,i)=0 disp('請注意:因為A的各階主子式都不等于零,所以A能進行LU分解.A的秩RA和各階順序主子式值hl依次如下:')for j=1:nU(1,j)=A(1,j);endfor k=2:nfor i=2:n for j=2:n L(1,1)=1;L(i,i)=1; if i>jL(1,1)=1;L(2,1)=A(2,1)/U(1,1); L(i,1)=A(i,1)/U(1,1);L(i,k)=(A(i,k)- L(i,1:k-1)*U(1:k-1,k)/U(k,k);elseU(k,j)=A(k,j)-L(k,1:k-1)*U(1:k-1,j);endendendendhl;RA,U,Lendend例3.4.3 用矩陣進行直接LU分解的MATLAB程序分解矩陣.解 在MATLAB工作窗口輸入程序>> A=1 0 2 0;0 1 0 1;1 2 4 3;0 1 0 3; hl=zhjLU(A)運行后輸出結果L = 1 0 0 0 0 1 0 0 1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論