練習數值解

2021-08-02 02:29:29 字數 1017 閱讀 3841

練習一:向前尤拉法解方程y′

(t)y

(0)=

−2y(

t)+t

=1演算法解釋:對於一般的常微分方程 y′

(t)y

(t0)

=f(t

,y)=

y0yi+

1−yi

δt=f

(ti,

yi)⇒

yi+1

=yi+

f(ti

,yi)

δt

clear;

%方程的係數

a=1.;

b=-2.;

c=1.;

%開始結束時間

tinit=0.;

tmax=5.;

%時間步數

maxt=3000;

dt=(tmax-tinit)/maxt;

%初始條件

y(1)=1.;

t(1)=tinit;

%時間迴圈(loop)

forj=1:maxt;

y(j+1)=y(j)+dt*(b*y(j)+c*t(j))/a;

t(j+1)=tinit+j*dt;

end;

%繪圖plot(t,y)

title('尤拉向前差分')

xlabel('t')

ylabel('y(t)')

練習二:中點法(精度比向前向後尤拉高一階) yi

+1=y

i−1+

2f(t

i,yi

)δt

有點疑惑的是:初值需要給在i=

0,1 兩處;可否用向後尤拉法yi

+1=y

i+f(

ti+1

,yi+

1)δt

求出另外乙個?比如y0

=y1−

f(t1

,y1)

δt,但是這樣的話就會有乙個問題,向後尤拉法精度低一階。

解析解與數值解的區別

科學網 這段時間一直在聽數學學院的課,反反覆覆聽到 解析解 和 數值解 始終不明白這兩者的區別。經學長解釋,總算有點眉目 解析解就是給出解的具體函式形式,從解的表示式中就可以算出任何對應值 數值解就是用數值方法求出解,給出一系列對應的自變數和解。e.g.eq x 2 5 solution x sqr...

常微分方程數值解上機

二步顯式 adams 法和gear 法求解,y 0 1,步長分別為h 0.1和h 0.05 1.程式文字 二步顯式 adams法 clc y 1 1 h 0.1 y 2 y 1 2 h y 1 3 h n 1 h fori 2 n y i 1 y i 3 h y i h y i 1 3 h endt...

數值自乘(遞迴與非遞迴解)

如果m和n是正整數,那麼m n就是把m連乘n次,這是乙個很沒效率的方法。其實用分置 遞迴可以更有效地解決該問題!首先來看看我最初寫的程式吧 int r power int m,int n 其中用到的其實是非常樸素的遞迴方式,無法是將m n均分成兩部分,但是可能會存在奇偶等問題的干擾,所以乾脆將兩個遞...