要用matlab解微分方程x‘=-x^3,我就先定义函数,为什么一直出错
functionexer=yfun(t,x)exer=-x^3报错:Errorusingyfun(line2)Notenoughinputarguments.请问具体哪儿...
function exer=yfun(t,x)
exer = -x^3
报错 :Error using yfun (line 2) Not enough input arguments.
请问具体哪儿错了,
f=@(x) -x^3
>> [t,x]=ode23(@f,[0 1],1) 我这样解为什么错误 展开
exer = -x^3
报错 :Error using yfun (line 2) Not enough input arguments.
请问具体哪儿错了,
f=@(x) -x^3
>> [t,x]=ode23(@f,[0 1],1) 我这样解为什么错误 展开
展开全部
function exer=yfun(t,x)
exer = -x^3
exer为返回值;yfun为函数名称;(t,x)是函数的两个变量,t在函数内部没有使用,是个空变量。这个函数本身没有问题,可以作为一个子函数使用,换句话说:要想让其起作用,要有另外一个主程序或函数调用它。还有,如果想解微分方程,可以这样:sysm x,solve('diff(x)+x^3')试试
exer = -x^3
exer为返回值;yfun为函数名称;(t,x)是函数的两个变量,t在函数内部没有使用,是个空变量。这个函数本身没有问题,可以作为一个子函数使用,换句话说:要想让其起作用,要有另外一个主程序或函数调用它。还有,如果想解微分方程,可以这样:sysm x,solve('diff(x)+x^3')试试
追问
你说的问题我知道,,关键是我在创建函数M文件的时候为什么出错。。Error using yfun (line 2) Not enough input arguments. 请问具体哪儿错了?
展开全部
函数定义只能在m文件中
像你这样简单的函数,用匿名函数就可以了
f=@(x) -x^3;
[t,x]=ode23(f,[0 1],1);
就这两句就可以了,前面的function....都删掉
像你这样简单的函数,用匿名函数就可以了
f=@(x) -x^3;
[t,x]=ode23(f,[0 1],1);
就这两句就可以了,前面的function....都删掉
追问
f=@(x) -x^3;
[t,x]=ode23(f,[0 1],1);
Error using @(x)-x^3 Too many input arguments.
Error in odearguments (line 88) f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
我输入你说的语句,,还是错误
追答
f=@(t,x) -x.^3;
[t,x]=ode23(f,[0 1],1);
ode解微分方程,要求t,x两个输入,尽管t没有用
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询