用直接法雅可比迭代法賽德?tīng)柕ń夥匠蘝第1頁(yè)
用直接法雅可比迭代法賽德?tīng)柕ń夥匠蘝第2頁(yè)
用直接法雅可比迭代法賽德?tīng)柕ń夥匠蘝第3頁(yè)
用直接法雅可比迭代法賽德?tīng)柕ń夥匠蘝第4頁(yè)
用直接法雅可比迭代法賽德?tīng)柕ń夥匠蘝第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 用直接法、雅可比迭代法和高斯賽德?tīng)柕ń夥匠?、 課程設(shè)計(jì)的目的1、 鞏固和加深學(xué)生對(duì)數(shù)值分析課程的基本知識(shí)的理解和掌握;2、 更好的了解各種算法的計(jì)算方法,熟悉并加以掌握;3、 掌握Matlab的編程和程序調(diào)試的基本能力;4、 掌握課題的設(shè)計(jì)方法;5、 提高運(yùn)用計(jì)算機(jī)解決實(shí)際問(wèn)題以及說(shuō)明文檔的能力。2、 課程設(shè)計(jì)的基本要求1、根據(jù)所確定的課程設(shè)計(jì)題目,分析該題目的需求;2、編寫(xiě)程序代碼,要能夠解決所提到的問(wèn)題;3、對(duì)程序進(jìn)行分析,寫(xiě)出詳細(xì)的設(shè)計(jì)說(shuō)明文檔;4、可組隊(duì)完成。3、 課程設(shè)計(jì)的內(nèi)容3.1 矩陣的輸入 此次課程設(shè)計(jì)的題目為用直接法、雅可比迭代法和高斯賽德?tīng)柕ㄈN方法解線性方程組

2、AX=b。 , 首先,我們需要進(jìn)行矩陣的輸入,通過(guò)觀察矩陣,很容易能夠發(fā)現(xiàn),A矩陣的對(duì)角線上的元素都是5。除了第一、二行和倒數(shù)一、二行以外,其他行的元素都有 1,-2,5,-2,1的排列,位置與對(duì)角線的相對(duì)位置一致。因此我們采用for循環(huán)進(jìn)行矩陣的輸入以節(jié)約時(shí)間,并且添加if進(jìn)行邏輯判斷。矩陣輸入代碼如下(完全代碼見(jiàn)附錄):a=1;b=-2;c=5; %在行列式A中僅出現(xiàn)了1、-2、5這三個(gè)元素A=; %先將A矩陣置空,方便進(jìn)行數(shù)據(jù)的填充for i=1:20 %矩陣為20行,所以我們只需要考慮1到20的情況 for j=1:20 %矩陣為20列 if i=j %當(dāng)行數(shù)等列數(shù)時(shí),矩陣中元素值為5

3、 A(i,j)=5; elseif i=j+1 | i=j-1 %當(dāng)行數(shù)i=列數(shù)加1或者減1時(shí),元素值為-2 A(i,j)=-2; elseif i=j+2 | i=j-2 %當(dāng)行數(shù)i=列數(shù)加2或者減2時(shí),元素值為1 A(i,j)=1; end endendA %輸出矩陣A矩陣b的輸入相對(duì)簡(jiǎn)單,如下:b=zeros(20,1); %矩陣b為20行1列的全零矩陣b(1,1)=1; %將矩陣b第一行第一列的元素賦值為13.2 直接法的思想以及編程采用直接法是解線性方程組結(jié)果最精準(zhǔn)的一種方法,人工進(jìn)行運(yùn)算需要更多的時(shí)間,計(jì)算過(guò)程不復(fù)雜,直接就能得出答案,但是當(dāng)數(shù)據(jù)太多的時(shí)候,人工計(jì)算就太浪費(fèi)精力了,

4、而且沒(méi)法保證其正確率,用計(jì)算機(jī)進(jìn)行操作就會(huì)很簡(jiǎn)單,僅僅需要一句編程就可以輸出結(jié)果,如下:x=Ab; %將未知數(shù)x與矩陣A和矩陣b的關(guān)系說(shuō)明清楚3.3 雅可比迭代法的思想以及編程雅可比迭代法將系數(shù)矩陣A分成三部分如下:設(shè),選取為的對(duì)角元素部分,為負(fù)的下三角部分,為負(fù)的上三角部分,從而得到的雅可比迭代法: 其中,稱為解的雅可比迭代法的迭代矩陣。矩陣的代碼如下(完整代碼見(jiàn)附錄代碼):D=diag(diag(A); %D為矩陣A的主對(duì)角線上的元素L=-tril(A,-1); %L為矩陣A的負(fù)的下三角矩陣U=-triu(A,1); %U為矩陣A的負(fù)的上三角矩陣B=D(L+U); %B矩陣的值f=Db;

5、%f矩陣的值x=B*x0+f; %x的迭代表達(dá)式迭代公式為:使用雅可比迭代法計(jì)算公式簡(jiǎn)單,沒(méi)迭代一次只需要計(jì)算一次矩陣和向量的乘法且計(jì)算過(guò)程中原始矩陣始終不變3.4 高斯賽德?tīng)柕ǖ乃枷胍约熬幊谈咚官惖聽(tīng)柕ㄖ芯仃嚭团c雅可比中矩陣和的定義有些許不同,如下,迭代公式為:其中和以及與雅可比迭代法中的一致,由迭代公式可看出高斯賽德?tīng)柕ㄅc雅可比迭代法相比,最大的特點(diǎn)是高斯賽德?tīng)柕ㄊ褂米钚碌男畔⑦M(jìn)行計(jì)算,計(jì)算的第個(gè)分量時(shí),利用了已經(jīng)計(jì)算出的最新分量,同樣高斯賽德?tīng)柕ㄒ仓恍栌?jì)算一次矩陣與向量的乘法。其編程與雅可比類似(具體詳見(jiàn)附錄代碼)。3.5 最終結(jié)果以及三種方法在此題應(yīng)用上的比較通過(guò)計(jì)

6、算機(jī)的計(jì)算,我們得到如下結(jié)果,現(xiàn)截屏如下圖: 三種計(jì)算方法的結(jié)果以及迭代次數(shù) (圖1) 三種計(jì)算方法的結(jié)果以及迭代次數(shù) (圖2) 為使得結(jié)果更容易進(jìn)行比較,我們使用fprintf以及各種格式控制的matlab命令使得結(jié)果的表達(dá)界面更加簡(jiǎn)潔以及清晰。通過(guò)比較我們發(fā)現(xiàn)直接法和高斯賽德?tīng)柕ㄇ蟪鰜?lái)的解幾乎一致,而雅可比迭代法的解精確度卻不高,因此在這個(gè)題中高斯賽德?tīng)柕ㄊ鞘諗康?,而雅可比迭代法是發(fā)散的。并且高斯賽德?tīng)柕ǖ牡螖?shù)遠(yuǎn)遠(yuǎn)小于雅可比迭代法,所以就這個(gè)題而言,高斯賽德?tīng)柕▋?yōu)于雅可比迭代法。4、 課程設(shè)計(jì)的心得和體會(huì) 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)

7、題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程,隨著科學(xué)技術(shù)發(fā)展的日新月異,程序軟件已經(jīng)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活領(lǐng)域中的應(yīng)用可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握簡(jiǎn)單的軟件的開(kāi)發(fā)技術(shù)是十分重要的。 回顧起此次數(shù)值分析的課程設(shè)計(jì),至今我尤感頗多,的確,從選題到定稿,從理論到實(shí)踐,我們學(xué)到了很多東西,不僅鞏固了以前所學(xué)習(xí)的知識(shí),而且學(xué)到了很多書(shū)本上沒(méi)有的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我們懂得了理論與實(shí)踐結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)

8、立思考的能力。課程設(shè)計(jì)中也會(huì)有困難,大家一起思考動(dòng)腦解決。團(tuán)隊(duì)合作最大 的好處是集思廣益,有人隨時(shí)在旁邊更正你的錯(cuò)誤,因此我們能學(xué)到別人了解而自己不是很擅長(zhǎng)的知識(shí),也使每個(gè)人都對(duì)知識(shí)有了更加深刻的理解。附錄:代碼Jacobi函數(shù)文件Jacobi.mfunction x,n=jacobi(A,b,x0,eps,varargin)%A為方程的系數(shù)矩陣,b為方程組的右端項(xiàng)%x為方程組的解%n為迭代次數(shù)if nargin=3 eps=1.0e-6; %eps為精度要求 默認(rèn)值le-5 M=200;elseif nargin<3 error returnelseif nargin=5 M=vara

9、rgin1; %varargin為最大迭代次數(shù),值100endD=diag(diag(A);L=-tril(A,-1);U=-triu(A,1);B=D(L+U);f=Db;x=B*x0+f;n=1;while norm(x-x0)>=eps x0=x; x=B*x0+f; n=n+1; if(n>=M) disp('Warning:迭代次數(shù)太多,可能不收斂!'); return; endend代碼Gauseidel函數(shù)文件Gauseidel.mfunction x,n=gauseidel(A,b,x0,eps,varargin)%A為方程的系數(shù)矩陣,b為方程組的右

10、端項(xiàng)%eps為精度要求 默認(rèn)值le-5%varargin為最大迭代次數(shù),值100%x為方程組的解%n為迭代次數(shù)if nargin=3 eps=1.0e-6; M=200;elseif nargin=4 M=200;elseif nargin<3 error return;endD=diag(diag(A);L=-tril(A,-1);U=-triu(A,1);G=(D-L)U;f=(D-L)b;x=G*x0+f;n=1;while norm(x-x0)>=eps x0=x; x=G*x0+f; n=n+1; if(n>=M) disp('Warning:迭代次數(shù)太多,

11、可能不收斂!'); return; endend代碼直接法和主文件clear;clc;format short ga=1;b=-2;c=5;A=;for i=1:20 for j=1:20 if i=j A(i,j)=5; elseif i=j+1 | i=j-1 A(i,j)=-2; elseif i=j+2 | i=j-2 A(i,j)=1; end endendb=zeros(20,1);b(1,1)=1;x=Ab;x1=x; %直接法求解x0=ones(20,1);x,n=jacobi(A,b,x0); %雅可比迭代法函數(shù)的調(diào)用x2=x,n2=n;x0=zeros(20,1);

12、x,n=gauseidel(A,b,x0); %高斯賽德?tīng)柕ê瘮?shù)的調(diào)用x3=x,n3=n;%以下均為輸出,為了方便查看,使用fprintf以及各種格式控制,使得輸出更美觀%fprintf('%11s%25s%25sn','直接法','雅可比迭代法','賽德?tīng)柕?#39;);for i=1:20fprintf('nx%1d: %9.4f %9.4f %9.4fn',i,x1(i,:),x2(i,:),x3(i,:);%中間空格不能省略endfprintf('n n1=%.0f n2=%.0f n3=%.0fn', n1,n2,n3); %中間空格不能省略三種方法的結(jié)果以及迭代次數(shù): 直接法 雅可比迭代法 賽德?tīng)柕▁1: 0.2421 -26749447448.1336 0.2421x2: 0.0944 45712614410.2875 0.0944x3: -0.0218 -65639269368.5677 -0.0218x4: -0.0314 83632895853.8203 -0.0314x5: -0.0069 -99972951165.9014 -0.0069

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論