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

如何用matlab计算微分方程的初值问题求解析解和数值解要求不用matlab的内部函数用欧拉法欧拉改进法梯形叠代法高手们给出程序软件实习要用谢谢方程如下y'=-2*x*y... 如何用matlab计算微分方程的初值问题
求解析解和数值解
要求不用matlab的内部函数
用欧拉法 欧拉改进法 梯形叠代法
高手们给出程序
软件实习要用
谢谢

方程如下
y'=-2*x*y
y(0)=1
展开
 我来答
Sue_Fantasy
2008-06-30 · TA获得超过1138个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:0
展开全部
我只有欧拉法可以吗。我有前欧拉法和后欧拉法。你要哪个呢?

先给你前欧拉法

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是初值
苏素芹倪婷
2019-10-12 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.4万
采纳率:32%
帮助的人:1019万
展开全部
常微分方程的初值问题一般可以ode45()函数命令求解,其计算精度比其他ode()函数要高。
实现代码:
y0=[1,0];
[x,y]=ode45(@odefun,[0,20],y0)
自定义函数
function
[dydx]=
odefun(x,y)
dydx=zeros(2,1);
dydx(1)=y(2);

dydx(2)=1+3*y(2)-2*y(1);

end
运行结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式