天天看點

matlab中 經典r k法,實驗六常微分方程性态和R-K法的穩定性

數值分析實驗六 常微分方程性态和R-K 法的穩定性

班級:11級數本 姓名 :宋夢琪 學号:20110501055

一、實驗名稱:

常微分方程性态和R-K 法的穩定性

二、實驗目的:

考察下面微分方程右端項中函數y 前面的參數對方程性态的影響(它可使方程為好條件的或壞條件的)和研究計算步長對R-K 法計算穩定性的影響。

三、實驗内容及要求:

實驗題目:常微分方程初值問題

'1,01,

(0)1,

y ay ax x y ?=-+<

=? 其中,5050a -≤≤。其精确解為()ax y x e x =+。

四、實驗要求:本實驗題都用4階經典R-K 法計算

(1)對參數a 分别取4個不同的數值:一個大的正值,一個小的正值,一個絕對值小的負值和一個絕對值大的負值。取步長h=0.01,分别用經典的R-K 法計算,将四組計算結果畫在同一張圖上,進行比較并說明相應初值問題的性态。 (2)取參數a 為一個絕對值不大的負值和兩個計算步長,一個步長使參數ah 在經典R-K 法的穩定域内,另一個步長在經典R-K 法的穩定域外。分别用經典R-K 法計算并比較計算結果。取全域等距的10個點上的計算值,清單說明。

五、實驗代碼

Matlab 程式如下:

function charp5_1

%數值試驗5.1:常微分方程性态和R-K 法穩定性試驗 %輸入:參數a ,步長h

%輸出:精确解和數值解圖形對比 %clf;

result=inputdlg({'請輸入[-50,50]間的參數a:'},'實驗5.1',1,{'-40'}); a=str2num(char(result));

if (a50) errordlg('請輸入正确的參數a!'); return;end

result=inputdlg({'請輸入(0 1)之間的步長:'},'實驗5.1',1,{'0.01'}); h=str2num(char(result));

if (h<=0|h>=1) errordlg('請輸入正确的(0 1)間的步長!'); return;end