要用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) 我这样解为什么错误
展开
huyuewei2010
推荐于2016-03-11 · TA获得超过852个赞
知道答主
回答量:59
采纳率:100%
帮助的人:42.8万
展开全部
function exer=yfun(t,x)
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. 请问具体哪儿错了?
追答

函数本身没有问题,但是不用直接运行。要运行的时候必须,必须明确每个函数的值。把工作空间设置在函数存放目录里,运行,如:yfun(1,2),结果会显示:exer=-8

dukinkin
2014-10-28 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2443
采纳率:90%
帮助的人:1084万
展开全部
函数定义只能在m文件中
像你这样简单的函数,用匿名函数就可以了

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没有用
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式