西交計(jì)算方法A上機(jī)大作業(yè)_第1頁
西交計(jì)算方法A上機(jī)大作業(yè)_第2頁
西交計(jì)算方法A上機(jī)大作業(yè)_第3頁
西交計(jì)算方法A上機(jī)大作業(yè)_第4頁
西交計(jì)算方法A上機(jī)大作業(yè)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 計(jì)算方法A上機(jī)大作業(yè)1. 共軛梯度法求解線性方程組算法原理:由定理3.4.1可知系數(shù)矩陣A是對(duì)稱正定矩陣的線性方程組Ax=b的解與求解二次函數(shù) 極小點(diǎn)具有等價(jià)性,所以可以利用共軛梯度法求解的極小點(diǎn)來達(dá)到求解Ax=b的目的。共軛梯度法在形式上具有迭代法的特征,在給定初始值情況下,根據(jù)迭代公式:產(chǎn)生的迭代序列 在無舍入誤差假定下,最多經(jīng)過n次迭代,就可求得 的最小值,也就是方程Ax=b的解。首先導(dǎo)出最佳步長(zhǎng)的計(jì)算式。假設(shè)迭代點(diǎn)和搜索方向已經(jīng)給定,便可以通過 的極小化來求得,根據(jù)多元復(fù)合函數(shù)的求導(dǎo)法則得:令,得到: ,其中然后確定搜索方向。給定初始向量后,由于負(fù)梯度方向是函數(shù)下降最快的方向,故第一

2、次迭代取搜索方向 。令其中。第二次迭代時(shí),從 出發(fā)的搜索方向不再取,而是選取,使得與是關(guān)于矩陣A的共軛向量,由此可求得參數(shù):然后從出發(fā),沿進(jìn)行搜索得到設(shè)已經(jīng)求出,計(jì)算。令,選取,使得和是關(guān)于A的共軛向量,可得:具體編程計(jì)算過程如下:(1) 給定初始近似向量 以及精度 ;(2) 計(jì)算,取;(3) For k=0 to n-1 do(i);(ii);(iii);(iv)若,則輸出近似解 ,停止;否則,轉(zhuǎn)(v); (v) ;(vi);End do程序框圖:程序使用說明:本共軛梯度法求解線性方程的程序直接打開matlab運(yùn)行,在求解線性方程組Ax=b(A是對(duì)稱正定矩陣)的時(shí)候,直接運(yùn)行程序Gonget

3、idufa,輸入A,b的值,雖然該函數(shù)是通用的,但是對(duì)于矩陣A和向量b的輸入,需要使用者根據(jù)A和b的特點(diǎn)自行輸入。算例3.4.2計(jì)算結(jié)果:對(duì)99頁例題3.4.2,運(yùn)行程序Gongetidufa將矩陣A,b讀入系統(tǒng)程序如下:clear allclcA=input('請(qǐng)輸入A的值'); %輸入n階正定矩陣A的值b=input('請(qǐng)輸入b的值:'); %輸入b的值n=size(A,1); %求出矩陣A的行數(shù)x=zeros(n,1); %給定x的初始值e=10(-12); %給出精度r=b-A*x;d=r;for(i=1:n) a=norm(r,2)2/(d'*

4、A*d); %求最佳步長(zhǎng) x=x+a*d; j=r; r=b-A*x; if(norm(r)<=e|i=n) break; else B=norm(r,2)2/norm(j,2)2; d=r+B*d; end endx %輸出最終的x的結(jié)果計(jì)算結(jié)果:x=1;1;12.三次樣條差值算法原理(三次樣條插值函數(shù)的導(dǎo)出):(i).導(dǎo)出在子區(qū)間 上的S(x)的表達(dá)式由于S(x)的二階導(dǎo)數(shù)連續(xù),設(shè)S(x)再節(jié)點(diǎn)處的二階導(dǎo)數(shù)值S(xi)=Mi,其中Mi為未知的待定參數(shù)。由S(x)是分段的三次多項(xiàng)式知,S(x)是分段線性函數(shù),S(x)在子區(qū)間上可表示為其中hi=xi-x(i-1),對(duì)上式兩次積分得到由插

5、值條件 得到將 代入 可得(ii).建立參數(shù) 的方程組對(duì) S(x)求導(dǎo)可得上式中令 得S(x)在xi處的左導(dǎo)數(shù) ,令得到右導(dǎo)數(shù),因?yàn)镾(x)在內(nèi)節(jié)點(diǎn)xi處一階導(dǎo)數(shù)連續(xù),所以,進(jìn)一步推導(dǎo)可得 其中,上式為三彎矩方程組,因?yàn)槿龔澗胤匠探M只有n-1個(gè)方程,不能確定n+1個(gè)未知量Mi,所以需要再增加兩個(gè)方程,由邊界條件確定。第一種邊界條件:此時(shí)已知 .不妨取,這時(shí)三彎矩方程組化為:以上方程組系數(shù)矩陣式嚴(yán)格三對(duì)角占優(yōu)矩陣,可用追趕法求解。求出 后,代入S(x)可得三次樣條插值函數(shù)的數(shù)學(xué)表達(dá)式。第二種邊界條件:已知。記,則有所以:即其中所以得到第二種邊界條件下的三彎矩方程組:該方程組系數(shù)矩陣是嚴(yán)格三對(duì)角占

6、優(yōu)矩陣,可用追趕法求解,具體追趕法的求解過程見數(shù)值分析教材。第三種邊界條件:周期型邊界條件.已知 是以 為周期的周期函數(shù),則由周期性可知, ,這時(shí),可以將點(diǎn) 看成內(nèi)點(diǎn),則方程組對(duì)i=n也成立,既有 ,也即,其中于是三彎矩方程組化為該方程組可用matlab直接解出。 程序框圖如下:程序使用說明:本程序是求解137頁例題4.6.1的運(yùn)行結(jié)果,通過程序便可求得M,然后根據(jù)便可得到,在 上的三次樣條插值函數(shù),進(jìn)而得到整個(gè)區(qū)間上的三次樣條差值函數(shù)。算例計(jì)算結(jié)果:137頁例題4.6.1的計(jì)算實(shí)習(xí)1、打開matlab運(yùn)行Sanciyangtiao程序2、自行輸入x和y的節(jié)點(diǎn)值3、得出計(jì)算結(jié)果3.龍貝格積分法

7、對(duì)于復(fù)化梯形求積公式,取積分近似值對(duì)復(fù)化辛普森求積公式因?yàn)?,所以上述兩式相除得所以,同理,?duì),和分析可得龍貝格積分算法如下:如果 則取,否則,繼續(xù)計(jì)算直到滿足條件。程序框圖:程序使用說明:運(yùn)行本程序的時(shí)候,直接按照提示輸入所求積分的原函數(shù) (比如 ),然后按提示依次輸入積分下限 ,積分上限和積分精度 ,然后程序便可計(jì)算出原函數(shù)在 之間的積分?jǐn)?shù)值。算例計(jì)算結(jié)果:209頁題6.2第一小題計(jì)算實(shí)習(xí)結(jié)果 4.四階龍格-庫塔法求解常微分方程的初值問題算法原理:用標(biāo)準(zhǔn)4級(jí)4階R-K法求解一階常微分方程的算法公式為:程序框圖:開始定義變量x,y;輸入f(x,y)的函數(shù)表達(dá)式輸入積分區(qū)間、步長(zhǎng)h、初始值y0、計(jì)算循環(huán)次數(shù)nFor循環(huán)計(jì)算yii<=n 是 否結(jié)束,輸出yi程序使用說明:運(yùn)行該程序,該程序是以求解277頁例題9.1.2目的編寫出來的,考慮到通用性,我們可以根據(jù)需要,自行修改代碼中的f=inline('-0.9*y/(1+2*x)','x','y');其中inlin

溫馨提示

  • 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)論