
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呢? 展开
初值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呢? 展开
展开全部
因为你x=0时2/x是无穷大呀,然后y'又是0,然后(2/x)y'就是nan了,所以后面算的全是nan了。
展开全部
我忘记公式了,数值分析书也不在,我试着给你写下,
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里边不能有中文的符号的。
你先试一试 看对不对,明天记得的话给你写。我要看阿根廷和巴西比赛了。
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里边不能有中文的符号的。
你先试一试 看对不对,明天记得的话给你写。我要看阿根廷和巴西比赛了。
本回答被网友采纳

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