Matlab:ODE15s矩阵是单数,接近单数或非常规。结果可能不准确。 RCOND = NaN

时间:2015-06-02 16:51:57

标签: matlab matrix ode

我试图解决DAE系统(ODE和代数Eq的混合)。所以,我的系统看起来像这样

M dy / dt = F(t,y)

矩阵M基本上是对角线上的恒定质量矩阵1,在最后几行和最后一列上都是全零。

所以对于一个示例质量矩阵看起来像这样

M = [1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0]

如果我们采用矩阵示例,我的向量Fx在维度(4x1)中。

如果出现此错误,该如何处理?

  

矩阵是单数,接近单数或非常规。结果可能不准确。 RCOND = NaN

我的系统解析代码:

Mass = Mass_Matrix( Nc,NT );

opt = odeset('RelTol', 10.0^(-3), 'AbsTol' , 10.0^(-3), 'Mass', Mass ,'MassSingular', 'yes', 'OutputFcn',@odeprint);

[T,Y] = ode15s(@(t,y)Function_Fx( t, y, Resolution, y01),[0 1],y0,opt);

我的矢量Fx由Function_Fx

创建
function Fx = Function_Fx( t, y, Resolution, y01)

分辨率是结构变量,y01是存储值。

我的问题是问题出在哪里,是F(t,y)还是M?给定M是恒定质量矩阵。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。这是因为我的F(t,y)错了。我只检查了jacobian然后我设法看到我有一些零行。