matlab数值解法求解二阶微分方程 ODE45函数

y‘’+(2/x)y'+y^(3/2)=0初值x=0时y=1y'=0解的区间随意就取【0,20】吧说下具体怎么用这个函数求解...谢谢或者帮忙看下错误吧:m文件funct... y‘’+(2/x)y'+y^(3/2)=0
初值x=0时 y=1 y'=0
解的区间随意 就取【0,20】吧
说下具体怎么用这个函数求解...谢谢
或者帮忙看下错误吧:
m文件
function dydt = eq1(t,y)
dydt(1)=y(2);
dydt(2)=-y(1)^(3/2)-(2/t)*y(2);
dydt=dydt';
end
命令窗口:
[t,y]=ode45('eq1',[0 15],[1 0]);
为什么y的值全部是NaN呢?
展开
 我来答
greatdju
2010-11-18 · TA获得超过2.2万个赞
知道大有可为答主
回答量:2486
采纳率:50%
帮助的人:4451万
展开全部
因为你x=0时2/x是无穷大呀,然后y'又是0,然后(2/x)y'就是nan了,所以后面算的全是nan了。
jjx1984
2010-11-18 · TA获得超过176个赞
知道答主
回答量:35
采纳率:0%
帮助的人:44万
展开全部
我忘记公式了,数值分析书也不在,我试着给你写下,
function z=ef1(x,y)
z={-所给函数的左边-} %定义一个函数名为ef1的函数
function [x,y]=ode45(ef1,[0,20],x0,y0);
i=0:0.1:20; %定义步长
x0=0;
y0=1;
y0'=0;初值
for n=1:length(i)-1
y(n+1)=y(n)+h*feval(ef1,x(n),y(n));
end
x=x',y=y'
注意matlab里边不能有中文的符号的。
你先试一试 看对不对,明天记得的话给你写。我要看阿根廷和巴西比赛了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式