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 + -
显示快捷键?