matlab dae,matlab解DAE遇到的问题

各位同事:

我在解DAE时,用示例1是可以调试出结果的,但是实例2却总是

Error using daeic12 (line 77)

This DAE appears to be of index greater than 1.

Error in ode15s (line 311)

[y,yp,f0,dfdy,nFE,nPD,Jfac] = daeic12(odeFcn,odeArgs,t,ICtype,Mt,y,yp0,f0,...

Error in sunli_Nsolve (line 12)

[t,x]=ode15s(@odefun,[0 10],x0,options);%

各位知道为什么吗?

示例1程序

function dx = rigid(t,x,k,l,m)

dx= zeros(4,1);

dx(1)=-0.2*x(1)+k*x(2)*x(3)+l*0.3*x(1)*x(2);

dx(2)=2*x(1)*x(2)-5*x(2)*x(3)-2*m*x(2)*x(2);

dx(3)=x(1)+x(2)+x(3)-1;

dx(4)=-x(4)-1+x(3);%微分方程组

end

M=[1 0 0 0;0 1 0 0;0 0 0 0;0 0 0 0;];%质量矩阵

options=odeset('mass',M);%对以DAE问题,mass属性必须设置

x0=[0.8;0.1;0.1;0.1];%初值

k=1;l=1;m=1;

[t,x]=ode15s(@rigi

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值