matlab高斯法實驗題答案_第1頁
matlab高斯法實驗題答案_第2頁
matlab高斯法實驗題答案_第3頁
matlab高斯法實驗題答案_第4頁
matlab高斯法實驗題答案_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、高斯 - 若當(dāng)全主元消去法解線性方程組我們知道對于一個方程組而言, 如果做相應(yīng)的變換使系數(shù)矩陣變?yōu)閱挝魂嚨脑捘敲淳湍艿玫剿慕饬?,高?若當(dāng)法就是這樣的,但是為了減少誤差,使用了全選主元法, 下面是程序。保存為 gauss.m在 matlab 中運行function ans=gauss(a,n,b)indexC=; % 用于紀(jì)錄主元indexR=;ipiv=;m=1;for j=1:nipiv(j)=0;endfor i=1:nbig=0;for j=1:nif(ipiv(j)= 1)for k=1:nif abs(a(j,k)>big %尋找最大的主元big=abs(a(j,k);ir

2、ow=j;icol=k;endendendendipiv(icol)=ipiv(icol)+1;if(irow=icol)% 需要調(diào)換for l=1:ntemp=a(irow,l);a(irow,l)=a(icol,l);a(icol,l)=temp;endfor l=1:mtemp=b(irow,l);b(irow,l)=b(icol,l);b(icol,l)=temp;endendindexR(i)=irow;indexC(i)=icol;if(a(icol,icol)=0)disp('error');endpivinv=1/a(icol,icol);for l=1:na(

3、icol,l)=a(icol,l)*pivinv;endfor l=1:mb(icol,l)=b(icol,l)*pivinv;endfor ll=1:nif(ll=icol)dum=a(ll,icol);a(ll,icol)=0.0;for l=1:na(ll,l)=a(ll,l)-a(icol,l)*dum;endfor l=1:mb(ll,l)=b(ll,l)-b(icol,l)*dum;endendendendfor l=n:-1:1 % 已經(jīng)進(jìn)行過交換,現(xiàn)在交換回來if(indexR(l)=indexC(l)for k=1:ntemp=a(k,indexR(l);a(k,indexR

4、(l)=a(k,indexC(l);a(k,indexC(l)=a(k,indexR(l);endend end ans=b;F面解這個簡單的方程組>> a=1 0 0 0;0 2 0 0 ;0 0 3 0 ;0 0 0 4 a =1000020000300004>> b=10;40;60;80b =10406080>> gauss(a,4,b)ans =10202020昨天才回答過這個問題 .你可以再搜搜的Gauss 消去法的分析。其包括兩個過程:消去過程:把方程組系數(shù)矩陣A 化為同解的上三角矩陣;回代過程:按相反的順序,從xn 至 x1 逐個求解上三角方

5、程組。%高斯消去法的MATLAB 程序function x=gauss(a,b); % 編寫高斯消去法函數(shù)%a 表示方程組的系數(shù)矩陣, b 表示方程組的值%X 表示最終的輸出結(jié)果,即方程組的解n=length(b); % 計算方程組的維數(shù)%下面的程序在不斷的消去,直到變成a 變成上三角矩陣未知for k=1:n-1for i=k+1:na(i,k)=a(i,k)/a(k,k);for j=k+1:na(i,j)=a(i,j)-a(i,k)*a(k,j);endb(i)=b(i)-a(i,k)*b(k);endend%表示高斯消去法的回帶過程x=zeros(n,1);x(n)=b(n)/a(n,

6、n);for k=n-1:-1:1s=b(k);for j=k+1:ns=s-a(k,j)*x(j);endx(k)=s/a(k,k);end實例驗證:調(diào)用編好的消去法函數(shù)A=1,23223;-1,-3,10;B=0,3,2;gauss(A,B) ans =3.0000-1.55170.0345A=1,2,3;2,2,3;-1,-3,10;B=0,3,2;x=gauss(A,B) x =3.0000-1.55170.0345A*x %反代求解進(jìn)行比較ans =0.00003.00002.0000matlab程序報錯意思釋疑(轉(zhuǎn)自他處)1.Subscript indices must eithe

7、r be real positive integers or logicals中文解釋:下標(biāo)索引必須是正整數(shù)類型或者邏輯類型出錯原因:在訪問矩陣(包括向量、二維矩陣、多維數(shù)組,下同)的過程中,下標(biāo)索引要么從0開始,要么出現(xiàn)了負(fù)數(shù)。注: matlab的語法規(guī)定矩陣的索引從1開始,這與 C等編程語言的習(xí)慣不一樣。解決辦法:自己調(diào)試一下程序,把下標(biāo)為0或者負(fù)數(shù)的地方修正。2.Undefined function or variable "a"中文解釋:函數(shù)或變量a沒有定義1.1 nput argument "x" is undefined中文解釋:輸入變量x沒

8、有定義4 .Matrix dimensions must agreeInner matrix dimensions must agree中文解釋:矩陣的維數(shù)必須一致出錯原因:這是由于運算符(=+ - / *等)兩邊的運算對象維數(shù)不匹配造成的,典型的出錯原 因是錯用了矩陣運算符。matlab通過“來區(qū)分矩陣運算和元素運算5 .Function definitions are not permitted at the prompt or in scripts中文解釋:不能在命令窗口或者腳本文件中定義函數(shù)出錯原因:一旦在命令窗口寫function c = myPlus(a,b),此錯誤就會出現(xiàn),因為

9、函數(shù)只能定義在m文件中6.1) X must have one or two columns2.) Vectors must be the same lengths中文解釋:1 . X必須是1或者2列2 .向量長度必須一致7.One or more output arguments not assigned during call to '.'中文解釋:在調(diào)用函數(shù)過程中,一個或多個輸出變量沒有被賦值8 .? Error using => mpowerMatrix must be square中文解釋:錯誤使用mpwoer函數(shù),要求矩陣必須是方陣9 .Explicit integral could not be found.中文解釋:顯式解沒有找到10.Index exceeds matrix dimensions.Attempted to access b(3,2); index out of bounds because size(b)=2,2.中文解釋:索引超出矩陣的范圍附本人遇至 U 的問題:Attempted to access x(3); index out of bounds because numel(x)=2.表示x矩陣元素不夠,導(dǎo)致 x(3)無法索引。11.In an assignment A(I) = B, the

溫馨提示

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

評論

0/150

提交評論