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,我设法看到我有一些零行。
我正在尝试求解 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,我设法看到我有一些零行。