二步顯式
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=0:h:1;
f=-0.5*exp(-2*t)+1.5;
r=plot(t,y,
'*');
hold on,
g=plot(t,f);
set(g,
'linewidth'
,1,'color'
,'blue'
);hold
off;
w=abs(f(n+1)-y(n+1));
二步顯式
gear法
clc;
y(1)=1;
h=0.05
;y(2)=y(1)+h*y(1);
n=1/h;
fori=2:n
y(i+1)=(4/3*y(i)-1/3*y(i-1)+2*h)/(1+4/3*h);
endt=0:h:1;
f=-0.5*exp(-2*t)+1.5;
r=plot(t,y,
'*');
hold on,
g=plot(t,f);
set(g,
'linewidth'
,1,'color'
,'blue'
),hold
off;
w=abs(f(n+1)-y(n+1))
;應用顯式中點法和4級4階gill方法求解初值問題
,列出當步長h=0.2和h=0.1時計算到終點t=1的數值解及其誤差,並附演算法的matlab程式。 1.
程式文字
顯式中點法
clc;
y(1)=3;h=0.2;
t=0;
n=1/h;
fori=1:n
t=t+h;
y=(1-0.5*h)*y(i)-0.5*h*t;
y(i+1)=y(i)-h*t-h*y-0.5*h^2;
endt=0:h:1;
f=2*exp(-t)-t+1;
r=plot(t,y,
'r*'
);hold on,
g=plot(t,f);
set(g,
'linewidth'
,1,'color'
,'blue'
),hold
off;
w=abs(f(n+1)-y(n+1))y4
級4階gill方法
clc;
y(1)=3;h=0.05;
t=0;b=0.5^0.5
n=1/h;
fori=1:n
t=t+h;
y1=y(i);
y2=y(i)-0.5*h*t-0.5*h*y1;
y3=y(i)-0.5*h*t-(b-0.5)*h*y1-(1-b)*h*y2-0.5*(1-b)*h^2;
y4=y(i)-h*t+b*h*y2-(1+b)*h*y3-0.5*h^2;
y(i+1)=y(i)-h*t-1/6*h*y1-1/3*(1-b)*h*y2-1/3*(1+b)*h*y3-1/6*h*y4-0.5*h^2;
endt=0:h:1;
f=2*exp(-t)-t+1;
r=plot(t,y,
'r*'
);hold on,
g=plot(t,f);
set(g,
'linewidth'
,1,'color'
,'blue'
),hold
off;
w=abs(f(n+1)-y(n+1))
y
常微分方程的數值解法系列一 常微分方程
在慣性導航以及vio等實際問題中利用imu求解位姿需要對imu測量值進行積分得到需要的位置和姿態,其中主要就是求解微分方程。但之前求解微分方程的解析方法主要是應用於一些簡單和特殊的微分方程求解中,對於一般形式的微分方程,一般很難用解析方法求出精確解,只能用數值方法求解。該系列主要介紹一些常用的常微分...
常微分方程
微分方程這裡,感覺難度明顯上來了。核心思路,消去微分 分離變數法,想方設法分離變數 齊次微分方程 對於無法直接分離變數的方程,如果是y和x的次數一樣,並且不含常數項。可以可以化為齊次,變數代換求解 一階線性微分方程 常數變易法。常數變易法我覺得關鍵是變和易,因為先當作乙個常數0,是比較容易解決的。然...
MATLAB學習筆記 常微分方程的數值解
常微分方程數值求解的命令 求常微分方程的數值解,matlab的命令格式為 t,y solver odefun tspan,y0,options 其中solver選擇ode45等函式名,odefun為根據待解方程或方程組編寫的m檔名,tspan為自變數的區間 t0,tf 即準備在那個區間上求解,y0表...