matlab ode45计算出错,请问怎么改

代码如图,ode45按照书上的做法,换了公式,但是不正确,“返回的向量的长度为 3,但初始条件向量的长度为6”,不知道哪里出错了,请教大神

“FUN 返回的向量的长度为 3,但初始条件向量的长度为6”的错误意思是,方程个数只有3个,而变量数有6个。也就是说,方程个数应等于变量数。
解决的办法:再增加3个方程或把变量改为3个
温馨提示:内容为网友见解,仅供参考
无其他回答

matlab ode45计算出错,请问怎么改
解决的办法:再增加3个方程或把变量改为3个

matlab ode45用法报错
改成 [t,C]=ode45(@(t,C)func1(t,C,k),tspan,C0)你原来那句是老用法,新版不支持了,改用@.

为什么matlab r2016a用ode45会报错
为什么matlab r2016a用ode45会报错,其主要原因是ode45函数格式书写错误,应按下列格式修改 [t,x]=ode45(@odefun3,[0,4],[1,0])修改后运行可得到如下结果。

matlab使用ode45函数一直报错,哪位大佬能帮帮忙?
1、将tspan=[0 12000];更改为tspan=[0 1.2];2、for i=[1: (size(y,5))];...end 该循环语句没有作用,可以取消 3、自定义微分方程函数名,可以定义成 dTUdt=TMfunc3(t,y)4、S+R=A0*(1-1\/ (exp(t\/tm)));赋值错误,表达式只能赋值给一个变量,应改为 S=A0*(1-1\/(exp(t\/...

求大神看下MATLAB程序,提示ode45函数出错。
你这个程序出错是因为目标函数写错了,可这样改:function dy = ndd_fun(t,y,C)chi=C(1);lambda=C(2);lambda_s=C(3);chi_s=C(4);Z_s=C(5);mu=C(12);theta=C(6);B=C(7);V=C(8);Delta=C(9);delta=C(10);alpha=C(11);Z = y(1); l = y(2); v = y(3);psi...

matlab使用ode45函数老是报错,求助!解答出来愿意加币!
matlab使用ode45函数老是报错,其错误在func(t,x)返回值不对应,函数要求对应值为 f,而题主返回值却为func。纠正错误即可正常计算【t,x】值。function f=func(t,x)la=0.224676956228413 * exp( -0.06936774465917156 * t );mu=0.005191914574791744 * exp( 0.02411992774086811 * t );f=[(la...

matlab ode45为什么显示错误
dxy=@(t,x)[(-0.0106*x(1)+5400).*(t>=0&t<1)+600.*(t>=2&t<3)+13000.*(t>=5&t<6);-0.0544*x(2)];2、polt(t,xy(:,1),'r*',t,xy(:,2),'gD')这个命令,书写格式也存在问题。应该这样来写 plot(t,xy(:,1),'r*',t,xy(:,2),'g-')更改上述错误后,...

急求各位帮我看看这个ode45()程序为什么出错了?
第一, 要把从 function dy = rigid(t, y) 到 dy(3)=-0.51*y(1)*y(2) 放到另一个档案, 档名 rigid.m. 其余的三行看是要放到另一个档案, 或者是直接放到工作视窗.第二, 在 plot 命令列中, 大写的 T 要全部改成小写的 t, 因为你之前的 ode45 命令的返回值中, 自变数部份是以...

matlab ode45解方程有问题
最简单的方法是你在fun里把a定义为global 变量。然后在command window里给a赋一个值,不要作为fun的参数。楼上的方法应该也可行。

关于matlab中ode45的问题
对于二阶微分方程的数值解,y有两列 第一列是y(1),表示的是一阶微分方程的解,就是y 第二列是y(2),表示的是二阶微分方程的解,就是y的一阶导数,y'=dy\/dt 而dy也有两行,第一行是一阶微分方程,dy(1)\/dt=y(2);第二行是二阶微分方程, dy(2)\/dt=2*y(2)-y(1)...

相似回答