ul分解與高斯消元法實驗報告_第1頁
ul分解與高斯消元法實驗報告_第2頁
ul分解與高斯消元法實驗報告_第3頁
ul分解與高斯消元法實驗報告_第4頁
ul分解與高斯消元法實驗報告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)值方法實驗報告課程名稱:lu分解法與高斯消元法 學 院:數(shù)學與財經學院 專 業(yè):信息與計算科學(金融軟件) 年 級:2011級 姓 名:鄭 薦 學 號:201102334023 指導教師:李 夢 實驗一【實驗名稱】實現(xiàn)lu算法,并利用該算法求解線性方程組【實驗目的】了解如何用lu三角分解法解線性方程組,利用lu三角分解法解線性方程組【實驗原理】設無行交換變換的高斯消去法可求解一般線性方程組ax=b,則矩陣a可分解為一個下三角矩陣l和一個上三角矩陣u乘積:a=lu而且l的對角線元素為1,u的對角線元素非零。得到l和u后,可通過如下步驟得到x:1. 利用向前替換法對方程組ly=b求解y。2. 利

2、用回帶法對方程組ux=y求解x?!緦嶒灢襟E】1. 輸入矩陣a2. lu分解a,得到l矩陣與u矩陣的值 l u=lu_1(a)3. 輸入矩陣b,利用向前回帶法求出y值 y=upsub(l,b)4. 利用回帶發(fā)求出x值 x=backsub(u,y)【實驗程序】1. lu分解代碼:function l u=lu_1(a) n=length(a(1,:); l=eye(n); u=zeros(n); for j=1:n u(1,j)=a(1,j); end for i=2:n l(i,1)=a(i,1)/u(1,1); end for k=2:n for j=k:n u(k,j)=a(k,j)-l(k

3、,1:k-1)*u(1:k-1,j); end for i=k+1:n l(i,k)=(a(i,k)-l(i,1:k-1)*u(1:k-1,k)/u(k,k); end end結果:2. 向前回帶法代碼:%向前代入法function y=upsub(a,b)n=length(b);y=zeros(n,1);y(1)=b(1)/a(1,1);for k=2:n y(k)=(b(k)-a(k,1:k-1)*y(1:k-1)/a(k,k);end結果:3. 回帶法代碼:%回代法function x=backsub(a,b)n=length(b);x=zeros(n,1); x(n)=b(n)/a(n

4、,n);for k=n-1:(-1):1 x(k)=(b(k)-a(k,k+1:n)*x(k+1:n)/a(k,k);end結果:【實驗分析】lu分解法比較簡便迅速,當解多個系數(shù)矩陣為a的線性方程做時,lu分解法就顯得特別優(yōu)越,只要對系數(shù)矩陣做一次lu分解,以后只要解三角形方程即可。也可以根據(jù)系數(shù)矩陣的形狀來設計算法。實驗二【實驗名稱】高斯消元法解線性方程組【實驗目的】了解如何用高斯消元法解線性方程組,利用高斯消元法解線性方程組【實驗原理】消元過程:設,令乘數(shù),做(消去第i個方程組的)操作×第1個方程+第i個方程(i=2,3,.n)則第i個方程變?yōu)檫@樣消去第2,3,。,n個方程的變元

5、后。原線性方程組變?yōu)椋哼@樣就完成了第1步消元。回代過程:在最后的一方程中解出,得:再將的值代入倒數(shù)第二個方程,解出,依次往上反推,即可求出方程組的解:其通項為【實驗步驟】1、輸入a和b2、判斷是否有解b=a bif ra<rb,無解return,endelse ra=rb 轉33、if ra=rb=n 有唯一解對 k=1:n-1 做a(k,k)=0,breakfor i=k+1:nl(i,k)=a(i,k)/a(k,k)a(i,k)=a(i,j)-l(i,k)*a(i,j)endend4、elseif ra=rb<n時,有無窮解,end5、后向代入法求解【實驗程序】回帶法程序:%回

6、代法function x=backsub(a,b)n=length(b);x=zeros(n,1); x(n)=b(n)/a(n,n);for k=n-1:(-1):1 x(k)=(b(k)-a(k,k+1:n)*x(k+1:n)/a(k,k);end高斯消元法程序:functionra,rb,n=gaus(a,b)b=a b;n=length(b);ra=rank(a);rb=rank(b);rank_dif=rb-ra;if rank_dif>0 disp('rarb,此方程無解'); return;endif ra=rb if ra=n disp('ra=r

7、b=n,次方程組有唯一解'); x=zeros(n,1); for p=1:n-1 for 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); end end x=backsub(b(1:n,1:n),b(1:n,n+1); x else disp('ra=rb<n,次方程組有無窮解。') endend結果:【實驗分析】高斯消元法代碼更為復雜。lu分解的方法,求解方程組的方法使得得出的結果更加精確。高斯消元法能更快判斷出是由有解。lu分解法在lu分解前矩陣a不知道能否可以分解?!緦嶒炐牡谩?#160;本次試驗涉及到了用高斯消元法,lu分解法兩種方法。需要對這些方法的原理都要掌握才能寫出程序,由于理論知識的欠缺,我花了很大一部分時間在看懂實驗的原理上,看懂了實驗原理之后就開始根據(jù)原理

溫馨提示

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

評論

0/150

提交評論