一階常微分方程的初值問題求解

2022-10-05 20:57:13 字數 2056 閱讀 5175

1.尤拉方法

尤拉公式:

演算法(尤拉方法)

(1)給定整數n;

(2);

(3)(4)對k=2,3,…n+1做:

(5)返回

基於尤拉方法的matlab程式如下:

function [x,y]=odeeuler(f,y0,a,b,h)

n=(b-a)/h;

x=a:h:b;

y(1)=y0;

for i=1:n

y(i+1)=y(i)+h*feval(f,x(i),y(i));

end2.改進的尤拉公式:

演算法(改進尤拉方法):

(1) 給定整數n;

(2) ;

(3)(4) 對k=2,3,…n+1做:

(5) 返回

基於改進尤拉方法的matlab程式如下:

function [x,y]=odeieuler(f,a,b,y0,h)

n=(b-a)/h;

x=a:h:b;

y(1)=y0;

for i=1:n

k1=h*feval(f,x(i),y(i));

k2=h*feval(f,x(i+1),y(i)+k1);

y(i+1)=y(i)+0.5*(k1+k2);

end3.一類應用廣泛的高精度的顯式單步法-----龍格-庫塔(runge-kutta)方法,簡稱r-k方法

標準四階四段龍格-庫塔公式

演算法(標準四階四段龍格-庫塔方法)

(1)給定整數n;

(2);

(3)(4)對k=2,3,…n+1做:

(5)返回

基於標準四階四段龍格-庫塔方法matlab程式如下:

function [x,y]=oderk4(f,a,b,h,y0)

n=(b-a)/h;

x=a:h:b;

y(1)=y0;

for i=1:n;

k1=h*feval(f,x(i),y(i));

k2=h*feval(f,x(i)+h/2,y(i)+k1/2);

k3=h*feval(f,x(i)+h/2,y(i)+k2/2);

k4=h*feval(f,x(i)+h,y(i)+k3);

y(i+1)=y(i)+1/6*(k1+2*k2+2*k3+k4);

end其中:f為常微分方程的右端項,a,求解區間的左右端點,h為自變數的步長,y0微分方程的初值,x,y分別為計算完成時的自變數取值和對應點上的函式值。

4.標準四階四段龍格-庫塔方法應用例項

function z= f(x,y)

z=y-2x/y;

function [x,y]=oderk4(f,a,b,h,y0)

n=(b-a)/h;

x=a:h:b;

y(1)=y0;

for i=1:n;

k1=h*feval(f,x(i),y(i));

k2=h*feval(f,x(i)+h/2,y(i)+k1/2);

k3=h*feval(f,x(i)+h/2,y(i)+k2/2);

k4=h*feval(f,x(i)+h,y(i)+k3);

y(i+1)=y(i)+1/6*(k1+2*k2+2*k3+k4);

end執行結果:

>>[x,y]=oderk4(『f』,0,1,0.1,1)

x = columns 1 through 9

0 0.1000 0.2000 0.

3000 0.4000 0.5000 0.

6000 0.7000 0.8000

columns 10 through 11

0.9000 1.0000

y = columns 1 through 9

1.0000 1.0954 1.

1832 1.2649 1.3416 1.

4142 1.4832 1.5492 1.

6125

columns 10 through 11

1.6733 1.7321

計算方法實驗八求解常微分方程的初值問題

實驗八求解常微分方程的初值問題 1 尤拉方法 1 實驗程式 實現尤拉方法matlab函式檔案agui euler.m在matlab命令視窗輸入及實驗結果及操作介面 2 改進的尤拉方法 1 實驗程式 實現改進的尤拉方法的matlab函式檔案agui euler1.m在matlab命令視窗輸入及實驗結果...

一階微分方程的初等解法 常微分方程

第二章一階微分方程的初等解法 2 1 已知試求函式的一般表示式。解對方程,兩邊關於求導得,即 分離變數,可求得 代入原方程可得,從而的一般表示式為。評注 本題中常數的確定不能直接通過所給積分方程得到,而是需將通解代回原方程來確定。2 2 求具有性質的函式,已知存在。解由導數的定義可得 顯然可得,故 ...

實驗八常微分方程初值問題數值解法報告

一 基本題 科學計算中經常遇到微分方程 組 初值問題,需要利用euler法,改進euler法,rung kutta方法求其數值解,諸如以下問題 1 分別取h 0.1,0.2,0.4時數值解。初值問題的精確解。2 用r 3的adams顯式和預 校式求解 取步長h 0.1,用四階標準r k方法求值。3 ...