用matlab求微分方程 y’=-y2+x, y(0)=1的数值解,怎么做啊。。。。

宇逸ycl
2012-10-31 · TA获得超过4088个赞
知道大有可为答主
回答量:1589
采纳率:50%
帮助的人:1822万
展开全部
function [x,y]=Classical_RK4(odefun,xspan,y0,h,varargin)
x=xspan(1):h:xspan(2);
y(1)=y0;
for k=1:length(x)-1
K1=feval(odefun,x(k),y(k),varargin{:});
K2=feval(odefun,x(k)+h/2,y(k)+h/2*K1,varargin{:});
K3=feval(odefun,x(k)+h/2,y(k)+h/2*K2,varargin{:});
K4=feval(odefun,x(k)+h,y(k)+h*K3,varargin{:});
y(k+1)=y(k)+h/6*(K1+K2+K3+K4);
end
x=x';y=y';

采用经典4阶龙格库塔方法计算,编写function函数,调用如下:
f=@(x,y)-y^2+x;
[x,y]=Classical_RK4(f,[0,5],1,0.1);
plot(x,y,'--*')
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式