在Matlab中,由于数值不稳定性的原因,通常不建议使用inv()函数(请参见http://www.mathworks.com/help/matlab/ref/inv.html中的说明部分)。
建议用一种类似于以下表达式的方法来替换它:
(其中A和B都是矩阵),具体为:
当倒置矩阵A接近奇异时,这变得至关重要。
在numpy/scipy中是否有较好的方法编写此内容?(solve()函数是否可行?)
inv(A)*B
(其中A和B都是矩阵),具体为:
A\B
当倒置矩阵A接近奇异时,这变得至关重要。
在numpy/scipy中是否有较好的方法编写此内容?(solve()函数是否可行?)
linalg.solve()
是正确的方法 - 请参见 http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.solve.html#numpy.linalg.solve 。我相信它在数值上比使用LU分解的逆更稳定。 - Floris