Matlab:ODE15s 矩阵是奇异的、接近奇异的或缩放不当。结果可能不准确。 RCOND = NaN

Matlab : ODE15s Matrix is singular, close to singular or badly scaled. Results may be inaccurate. RCOND = NaN

我正在尝试求解 DAE 系统(ODE 和 Algebraic 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)。

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

Matrix is singular, close to singular or badly scaled. Results may be inaccurate. 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)

Resolution 是一个结构变量,y01 是一个存储值。

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

感谢您的帮助

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