用matlab龙格库塔法解一阶微分方程组,总是显示缺少参数,求大神答疑!!
我写的M文件:functiondx=funt(t,x)dx=zeros(2,1);dx(1)=-3*x(1)/86400;dx(2)=3*x(1)/86400-0.23*...
我写的M文件:function dx=funt(t,x)
dx=zeros(2,1);
dx(1)=-3*x(1)/86400;
dx(2)=3*x(1)/86400-0.23*x(2)/86400;
t0=0;
tf=[];
[t,x]=ode45('funt',[t0,tf],[308.5,1.87]) 展开
dx=zeros(2,1);
dx(1)=-3*x(1)/86400;
dx(2)=3*x(1)/86400-0.23*x(2)/86400;
t0=0;
tf=[];
[t,x]=ode45('funt',[t0,tf],[308.5,1.87]) 展开
展开全部
t0=0;tf=[]; 取值区间的右边不能为空啊!
其他的没有什么问题。
其他的没有什么问题。
追问
别人也这样告诉我,然后我重新又写了一遍程序:
function dx=funt2(t,x)
dx=[-3*x(1)/86400;3*x(1)/86400-0.23*x(2)/86400]
t0=0
tf=86400*5
[t,x]=ode45('funt2',[t0,tf],[308.5,1.87]);
还是不能运行
追答
试试这样:
fun=@(t,x)[-3*x(1)/86400;
3*x(1)/86400-0.23*x(2)/86400];
[t,x]=ode45(fun,[0 86400*5],[308.5,1.87])
或者:
子程序为:
function dx=funt(t,x)
dx=zeros(2,1);
dx(1)=-3*x(1)/86400;
dx(2)=3*x(1)/86400-0.23*x(2)/86400;
主程序为:
[t,x]=ode45(@funt,[0 86400*5],[308.5,1.87])
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询