?? adams.m
字號(hào):
function [x,y]=Adams(ydot_fun, x0, y0, h, N)
% Adams 預(yù)報(bào)--校正公式,其中
% ydot_fun --- 一階微分方程的函數(shù)
% x0, y0 --- 初始條件
% h --- 區(qū)間步長(zhǎng)
% N --- 區(qū)間的個(gè)數(shù)
% x --- Xn 構(gòu)成的向量
% y --- Yn 構(gòu)成的向量
x=zeros(1,N+1); y=zeros(1,N+1); x(1)=x0; y(1)=y0;
for n=1:N
x(n+1)=x(n)+h;
if n<4
k1=h*feval(ydot_fun, x(n), y(n));
k2=h*feval(ydot_fun, x(n)+1/2*h, y(n)+1/2*k1);
k3=h*feval(ydot_fun, x(n)+1/2*h, y(n)+1/2*k2);
k4=h*feval(ydot_fun, x(n)+h, y(n)+k3);
y(n+1)=y(n)+1/6*(k1+2*k2+2*k3+k4);
else
k1=feval(ydot_fun, x(n), y(n));
k2=feval(ydot_fun, x(n-1), y(n-1));
k3=feval(ydot_fun, x(n-2), y(n-2));
k4=feval(ydot_fun, x(n-3), y(n-3));
ybar=y(n)+h/24*(55*k1-59*k2+37*k3-9*k4);
k0=feval(ydot_fun, x(n+1), ybar);
y(n+1)=y(n)+h/24*(9*k0+19*k1-5*k2+k3);
end
end
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -