⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adams.m

📁 一种数值分析常用的欧拉算法,用matlab实现的
💻 M
字号:
function [x,y]=Adams(ydot_fun, x0, y0, h, N)
% Adams 预报--校正公式,其中
%    ydot_fun ---  一阶微分方程的函数
%    x0, y0   ---  初始条件
%    h        ---  区间步长
%    N        ---  区间的个数
%    x        ---  Xn 构成的向量
%    y        ---  Yn 构成的向量

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -