四階龍格-庫(kù)塔法求解常微分方程的初值問(wèn)題-matlab通用程序_第1頁(yè)
四階龍格-庫(kù)塔法求解常微分方程的初值問(wèn)題-matlab通用程序_第2頁(yè)
四階龍格-庫(kù)塔法求解常微分方程的初值問(wèn)題-matlab通用程序_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上參考教材數(shù)值分析李乃成.梅立泉clearclcformat longm=input('請(qǐng)輸入常微分方程的階數(shù)m=');a=input('請(qǐng)輸入x下限a=');b=input('請(qǐng)輸入x上限b=');h=input('請(qǐng)輸入步長(zhǎng)h=');ym=input('令y(1,1)=y,y(2,1)=y,y(3,1)=y.請(qǐng)輸入ym=','s');     %輸入的時(shí)候必須按照這個(gè)形式輸入y1=y(1,1);if m=1       &

2、#160;                                       %一階初值問(wèn)題單獨(dú)求解    mm=(b-a)/h;    y(1,1)=input('請(qǐng)輸入在初值點(diǎn)的函數(shù)值f(a)=');    x=a;    y11(1)=y(1,1);    for k1=2:(

3、mm+1)        y1=y(1,1);        K(1,1)=h*(eval(ym);                         %計(jì)算K1        x=x+h/2;        y(1,1)=y1+K(1,1)/2;        y1=y(1,1)

4、;        K(1,2)=h*(eval(ym);                         %計(jì)算K2        x=x;        y(1,1)=y1+K(1,2)/2-K(1,1)/2;        y1=y(1,1);        K(1,3)=h

5、*(eval(ym);                          %計(jì)算K3        x=x+h/2;        y(1,1)=y1+K(1,3)-K(1,2)/2;        y1=y(1,1);        K(1,4)=h*(eval(ym);     

6、60;                    %計(jì)算K4        y11(k1)=y11(k1-1)+(K(1,1)+2*K(1,2)+2*K(1,3)+K(1,4)/6;        y(1,1)=y11(k1);        x=a+(k1-1)*h;           endy11else  

7、;                                               %高階初值問(wèn)題    mm=(b-a)/h;                              

8、       %一共要求解mm個(gè)數(shù)據(jù)點(diǎn)    for k2=1:m                                      %讀取初值條件        fprintf('請(qǐng)輸入%d階導(dǎo)數(shù)的初值f(%d)(a)=n',(k2-1),(k2-1);     

9、   y(k2,1)=input('=');    end    for k2=1:m                                                 y22(1,k2)=y(k2,1);         

10、60;                %先把初值保存在矩陣y22(m,n)中,m表示第幾個(gè)所求點(diǎn),n表示第n階初值    end    x=a;    for k4=2:(mm+1)                                   %求解mm個(gè)數(shù)據(jù)點(diǎn)的循環(huán) 

11、      for k=1:(m-1)                                 %計(jì)算K1,包括每一階的K1            K(k,1)=h*y(k+1,1);                       &

12、#160;%y(k+1,1)中k+1表示第k+1階,1表示第一個(gè)點(diǎn);K(k,1)中k表示階數(shù),1表示K1        end        K(m,1)=h*(eval(ym);        x=x+h/2;                                      %

13、求解K1之前,先重新對(duì)x和y賦值        for k3=1:m                          y(k3,1)=y(k3,1)+K(k3,1)/2;        end        for k=1:(m-1)                

14、                 %計(jì)算K2            K(k,2)=h*y(k+1,1);        end        K(m,2)=h*(eval(ym);        x=x;        for k3=1:m      

15、0;     y(k3,1)=y(k3,1)-K(k3,1)/2+K(k3,2)/2;        end        for k=1:(m-1)                                  %計(jì)算K3            K(k,3)=h*

16、y(k+1,1);        end        K(m,3)=h*(eval(ym);        x=x+h/2;        for k3=1:m            y(k3,1)=y(k3,1)+K(k3,3)-K(k3,2)/2;  %這里容易出錯(cuò)        end    

17、0;   for k=1:(m-1)                                     %計(jì)算K4            K(k,4)=h*y(k+1,1);        end        K(m,4)=h*(eval(ym); 

18、      for k5=1:m            y22(k4,k5)=y22(k4-1,k5)+(K(k5,1)+2*K(k5,2)+2*K(k5,3)+K(k5,4)/6;         %這里,除了要求出下一個(gè)點(diǎn)的數(shù)值,還要求出相應(yīng)的導(dǎo)數(shù)值        end        for k6=1:m                                       %除了對(duì)y(1,1)重新賦值外,還要對(duì)y(2,1)等重新賦值            y(k6,1)=y22(k4,k6);         en

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論