euler.m

来自「Euler方法解 程序」· M 代码 · 共 28 行

M
28
字号
%用 Eu1er 方法求解原微分方程
%Eu1er方法
function [T,U]=eu1er(f,a,b,h,c,varargin)
%计算点的个数
n=round((b-a)/h)+1;
%定义X,Y的维数
t=zeros(n,1);
u=zeros(n,1);
%微分方程的初始条件
t(1)=a;
u(1)=c;
%显示微分方程的初始条件
str=sprintf('t0=%g,  u0=%g\n',t(1),u(1));
disp(str);
%对每个点用Eu1er法计算
for i=1:n-1
    %Eu1er公式
    u(i+1)=u(i)+h*feval(f,t(i),u(i),varargin{:});
    t(i+1)=t(i)+h;
    %显示计算结果与误差
    str=sprintf('%d  t=%g  u=%g  ',i,t(i+1),u(i+1));
    disp(str);
end
%返回计算结果
T=t;
U=u;

    

⌨️ 快捷键说明

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