如何用matlab计算微分原方程

2025-05-07 17:08:54
推荐回答(1个)
回答1:

我只有欧拉法可以吗。我有前欧拉法和后欧拉法。你要哪个呢?

先给你前欧拉法

function [tF,yF] = ForwardEuler(f,a,b,h,y0)
N = fix((b - a)/h);
t=a %set initial values
y=y0
tF = zeros(N+1,1); % initialize tF and yF with zero arrays
yF = zeros(N+1,length(y));
tF(1) = t; % store initial values in arrays tF, yF
yF(1,:) = y.'; % Note: y values are stored as ROW of array yF

for i=1:N
y = y + h*feval(f,t,y); % evaluate slope= feval(f,t,y);
t = t + h;
tF(i+1,:) = t; % store new values in arrays tF, yF
yF(i+1,:) = y.'; % Note: y values are stored as ROW of array yF
end

运行之后调入你的函数就ok了。【a,b】是范围,h是步长,y0是初值