畢業(yè)設(shè)計(jì)(論文)文獻(xiàn)譯文:一種用LU分解求解n階線性方程組的MATLAB新編碼方法_第1頁
畢業(yè)設(shè)計(jì)(論文)文獻(xiàn)譯文:一種用LU分解求解n階線性方程組的MATLAB新編碼方法_第2頁
畢業(yè)設(shè)計(jì)(論文)文獻(xiàn)譯文:一種用LU分解求解n階線性方程組的MATLAB新編碼方法_第3頁
畢業(yè)設(shè)計(jì)(論文)文獻(xiàn)譯文:一種用LU分解求解n階線性方程組的MATLAB新編碼方法_第4頁
畢業(yè)設(shè)計(jì)(論文)文獻(xiàn)譯文:一種用LU分解求解n階線性方程組的MATLAB新編碼方法_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

畢業(yè)設(shè)計(jì)(論文)--文獻(xiàn)翻譯原文題目AnewCodingmethodinMATLABusedforsolvingaSystemofnLinearEquationsbyLUDecomposition譯文題目一種用LU分解求解n階線性方程組的MATLAB新編碼方法專業(yè)信息與計(jì)算科學(xué)姓名學(xué)號(hào)指導(dǎo)教師

一種用LU分解求解n階線性方程組的MATLAB新編碼方法DigvijaySingh,DrL.N.Das著DepartmentofAppliedMathematics,DelhiTechnologicalUniversity,ShahabadDaulatpur,Delhi,INDIAIndas@dce.ac.in錢竹兵譯13信息=1\*GB3①班)摘要在編碼中,除了能實(shí)現(xiàn)分解之外,也可用于實(shí)現(xiàn)矩陣運(yùn)算的操作如分解法等。在現(xiàn)有的編碼中,求解一個(gè)階線性方程組使用LU分解,旋轉(zhuǎn)矩陣是每列的最大元素在主對(duì)角線上的矩陣。而我們?cè)诰幋a中則不需要。在本文中,我們已經(jīng)編寫了一個(gè)使用分解求解階線性方程組的編碼。關(guān)鍵詞:LU分解1.1簡介是一個(gè)功能非常豐富和有用的工具,在工程、科學(xué)和數(shù)學(xué)領(lǐng)域中被廣泛使用,能夠創(chuàng)建模型,模擬和解決許多問題。尤其是處理數(shù)組和矩陣特別容易。其中有許多內(nèi)置功能,使計(jì)算更加容易。在本文中,我們已經(jīng)編寫了一個(gè)求解階線性方程組編碼。在文獻(xiàn)[1]中,我們發(fā)現(xiàn),一個(gè)矩陣稱為旋轉(zhuǎn)矩陣是用來獲得相應(yīng)的解決方案。在旋轉(zhuǎn)矩陣乘法中,主要目的是重新排列系數(shù)矩陣的列元素,使每列的最大元素落在主對(duì)角線上。這種旋轉(zhuǎn)化需要花費(fèi)更多的時(shí)間。所以我們建議使用一個(gè)新的方法來克服這些困難。本文給出了線性方程組系數(shù)矩陣LU分解的簡要定義和MATLAB編碼,并利用該分解求出方程組的解。1.2所需的概念2.1秩:矩陣A的秩是線性無關(guān)列最大集合的大小。2.2系數(shù)矩陣:系數(shù)矩陣是指在一組線性方程組中由變量系數(shù)構(gòu)成的矩陣。2.3增廣矩陣:增廣矩陣是將常數(shù)矩陣附加在系數(shù)矩陣最后一列所形成的矩陣,其目的是為了在給定的矩陣上執(zhí)行相同的初等行運(yùn)算。2.4矩陣的逆:一個(gè)方形矩陣,逆記為。其中乘以的結(jié)果是單位矩陣,非方陣沒有逆,不是所有的方形矩陣都有逆。2.5零矩陣:零矩陣是所有元素絕對(duì)值相加對(duì)于0的矩陣。2.6單位矩陣:是一個(gè)主對(duì)角線上所有元素都為1和其他所有元素都為0的方形矩陣。其中一個(gè)給定矩陣乘以一個(gè)單位矩陣的結(jié)果是保持不變的。2.7正定矩陣:一個(gè)對(duì)稱實(shí)數(shù)矩陣,如果對(duì)于個(gè)實(shí)數(shù)的非0列向量都有大于0,則稱為正定矩陣。其中為的轉(zhuǎn)置。2.8矩陣乘法:與這兩個(gè)矩陣的元素表示為,,其中因此,它們兩的矩陣乘積為,2.9階線性方程組:線性方程組是一組集合或方程集合,它們是在一起處理的。其中個(gè)變量的個(gè)方程被定義為,其中,是實(shí)數(shù),是變量,。矩陣形式表示為,該方程組的三種解情況:唯一解無窮多個(gè)解無解從該方程組解的唯一性可以看出,通過使用矩陣代數(shù)比較系數(shù)矩陣A和增廣矩陣k的秩如下(其中n是變量/未知數(shù))如果,則存在唯一解。如果,則有無窮多個(gè)解。其中有多種方法可以求解該方程組,如替代,交叉乘法,矩陣代數(shù)方法等,但是在這里我們集中介紹的是LU分解方法。1.3分解方法在分解中,每個(gè)方陣都可以分解為下三角矩陣和上三角矩陣的乘積。矩陣可以分解的充要條件是為正定矩陣。現(xiàn)在,對(duì)于具有唯一解的可解方程組,上或下三角矩陣中的一個(gè)對(duì)角線元素應(yīng)該為1。如果上三角矩陣的對(duì)角線元素為1,則這是所謂的方法。如果下三角矩陣L的對(duì)角線元素為1,則這是所謂的方法。由于:則:設(shè):則:得:在這里,是系數(shù)矩陣,是常數(shù)矩陣,是變量矩陣(其元素要被確定),是下三角矩陣(其元素要被確定),是上三角矩陣(其元素要被確定)。2.1函數(shù)下面的函數(shù)已用于下面定義的編碼當(dāng)中::返回矩陣的行和列大小。:定義了一個(gè)階的零矩陣。:定義了一個(gè)階的單位矩陣。用于求解解變量的方程。2.2編碼下面提供的是(版)為方法編寫的代碼。1function[L,U,X]=LU_Crout(A,b)23%FunctiontofindsolutionofAX=bbyCrout's4%LUDecompositionmethod.5%Input=A,b6%Output=L,U,X78n=size(A);910flag=1;1112if(n(1)~=n(2))13fprintf('\nNotsquarematrix\n');14flag=0;15return;16end1718if(flag==1)19K=[Ab];20end2122if(flag==1)23if(rank(A)~=rank(K))24fprintf('\nNosolution');25return;26elseif(rank(A)==rank(K)&&rank(A)<n(1))27fprintf('\nInfinitesolutions')28return;29end30end31end323334symstemp;3536L=sym(zeros(n(1)));37U=sym(eye(n(1)));3839T=sym(zeros(n(1)));4041fori=1:n(1)42forj=1:n(1)43if(i>=j)44L(i,j)=temp;45elseU(i,j)=temp;46end47fork=1:n(1)48T(i,j)=T(i,j)+L(i,k)*U(k,j);49end50eq_ans=solve(T(i,j)==A(i,j),temp);51T(i,j)=eq_ans;52if(i>=j)53L(i,j)=T(i,j);54elseU(i,j)=T(i,j);55end56end57end5859Z=L\b;%Z=inv(L)*b6061X=U\Z;%X=inv(U)*Z6263end2.3代碼說明第1行定義了一個(gè)參數(shù)為A(系數(shù)矩陣)和B(常數(shù)列向量)的函數(shù)LU_Crout,并給出了分解之后的上、下三角矩陣(分別為L和U),以及求解方程AX=b的結(jié)果X。第8-31行檢查系數(shù)矩陣A是否是一個(gè)方陣。如果不是,那么將不能進(jìn)行LU分解。同時(shí)也通過比較系數(shù)矩陣與增廣矩陣秩的大小,檢測了該方程組的解是否具有唯一性。LU分解以及求解方程組解的主要代碼是在第34-63行。在第36和37行中,我們初步設(shè)定零值未知元素,從而得到零矩陣和單位矩陣分別為L和U,階數(shù)都為n。這樣做是因?yàn)橐阎木仃嘗是下三角矩陣,矩陣U是對(duì)角線為1的上三角矩陣。如果我們需要使用Doolittle的方法求解,我們將設(shè)置L為單位矩陣和U為零矩陣。我們?cè)诘?4行中聲明一個(gè)臨時(shí)變量用來表示當(dāng)前迭代中L或U的未知元素。現(xiàn)在,我們使用2.8提供的算法執(zhí)行矩陣乘法運(yùn)算,并將所得到的結(jié)果賦值給一個(gè)臨時(shí)零矩陣T(在第39行有定義)。整個(gè)算法都依賴于這樣的性質(zhì),當(dāng)我們執(zhí)行矩陣乘法運(yùn)算時(shí),在方程組中只有一個(gè)未知數(shù),其余所有未知量的值都是已知的。通過將當(dāng)前矩陣乘法向量與系數(shù)矩陣對(duì)應(yīng)值相對(duì)應(yīng),得到了該方程的乘積方程,可以用于求解2.11中的函數(shù)(f,x)。在第43-46行中的條件檢查在當(dāng)前的乘法迭代過程中變量是未知的。這個(gè)未知數(shù)在方程中被臨時(shí)代替。當(dāng)x=temp時(shí)求解函數(shù)(f,x),我們將得到未知數(shù)的值。在每步的迭代過程中,未知數(shù)的計(jì)算值被替換在矩陣L或U當(dāng)中。通過最后一步的迭代,L和U的未知元素被替換,并且可以用它們來求出解向量X。在第59行當(dāng)中,我們使用命令Z=L\B可以得到Z=LB。同樣的,我們使用命令X=U\Z也可以得到X=UZ。從而得到了方程組的解。2.4方法的優(yōu)點(diǎn)編寫代碼的主要優(yōu)點(diǎn)是克服了在給定的MATLAB編碼中存在的問題。MATLAB目前還不能處理符號(hào)化的矩陣;相反,編碼是由符號(hào)變量來支持的。我們已經(jīng)聲明的編碼不僅限于LU分解。它可用于其它矩陣運(yùn)算,如Cholesky分解等。在現(xiàn)有的MATLAB編碼當(dāng)中,利用LU分解的方法求解n階線性方程組,并分配了一個(gè)主矩陣來重新分配系數(shù)矩陣的列元素的順序。而在我們的編碼當(dāng)中,主矩陣則是不需要的。3示例我們?cè)谝丫帉懞玫腗ATLAB代碼中驗(yàn)證一下示例。方程組為:方程組為:a+b?2c+d+3e?f=42a?b+c+2d+e?3f=20a+3b?3c?d+2e+f=?155a+2b?c?d+2e+f=?3?3a?b+2c+3d+e+3f=164a+3b+c?6d?3e?2f=?27

參考文獻(xiàn)[1]/wiki/LU_decompositionCreationgaMATLABfunction[2]ErwinKreyszig,AdvancedEngineeringMathematics

溫馨提示

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

評(píng)論

0/150

提交評(píng)論