MATLAB矩阵问题

时间:2011-05-16 14:15:30

标签: matlab matrix-multiplication

我有一个方程组(总共5个),有5个未知数。我已将这些设置为矩阵以尝试解决,但我不确定这是否正确。基本上,设置为AX = B,其中AXB是矩阵。 A是5x5,X是1x5,B是5x1。

当我使用MATLAB使用公式X求解X = A\B时,它会给我一个警告:

Matrix is singular to working precision.

并且对于所有5个X未知数给出0,但如果我说X = B\A它没有,并且给出了5 X个未知数的值。

任何人都知道我做错了什么?如果这很重要,这就是我的X矩阵的样子:

X= [1/C3; 1/P1; 1/P2; 1/P3; 1/P4]

C3P1P2P3P4是我的未知数。

2 个答案:

答案 0 :(得分:3)

你的矩阵是单数,这意味着它的行列式是0.这样的方程组没有给你足够的信息来找到一个独特的解。我在你的问题中看到的一件奇怪的事情是 X 是1x5而 B 是5x1。这是解决问题的正确方法。 X B 都必须为5x1。如果你想知道,这是不是一个Matlab的东西 - 这是一个线性代数的东西。这[5x5]*[1x5]是非法的。此[5x5]*[5x1]会产生[5x1]结果。此[1x5]*[5x5]会产生[1x5]结果。首先检查代数,然后检查行列式(Matlab中的det函数)是否为0。

答案 1 :(得分:0)

所以,接下来要弄清楚为什么A是单数的。 (请注意,您可能想要解决

A x = b

在使用正方形和单数A的情况下,但它们仅适用于b位于A范围内的情况。)

也许你可以写出你的矩阵A和向量b(因为它只有5x5)?或者解释一下如何创建它。这可能会提供一个线索,说明为什么A不是满级,或者为什么b不在A的范围空间中。