0

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

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

矩阵对于工作精度来说是奇异的。

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

有人知道我在做什么错吗?如果这很重要,这就是我的X矩阵的样子:

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

哪里C3, P1, P2, P3,P4是我的未知数。

4

2 回答 2

3

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

于 2011-05-16T14:24:44.343 回答
0

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

A x = b

在 square 和 single 的情况下A,但它们只会出现在b的范围空间中A。)

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

于 2011-05-16T16:40:33.140 回答