作业帮 > 综合 > 作业

如何用matlab计算微分方程的初值问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/07 02:48:38
如何用matlab计算微分方程的初值问题
求解析解和数值解
要求不用matlab的内部函数
用欧拉法 欧拉改进法 梯形叠代法
高手们给出程序
软件实习要用
谢谢
方程如下
y'=-2*x*y
y(0)=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是初值