求解n线性方程

时间:2013-10-06 21:32:41

标签: c algorithm math linear-equation

我试图用 n 变量求解 n 线性方程。我使用了Cramer的规则,但是当行列式等于零时它就失败了。如何解决这个问题?

我使用 c 语言。

我的线性方程也是这样的形式:

代表n = 3

- x + y + z = a
  x - y + z = b
  x + y - z = c

代表n = 2

- x + y = a
  x - y = b

我无法继续下去。

3 个答案:

答案 0 :(得分:1)

当使用cramer解决时,如果行列式为零,则有两种情况:

  • 至少有一个变量具有非零行列式:没有解决方案
  • 所有变量的决定因素为零:那么您有无数的解决方案。

    在最后一种情况下,您可以根据其中一个变量找到答案。

答案 1 :(得分:0)

Ax = b中,当A的行列式等于零时,没有唯一解。特别是,如果b为0,则存在无限多个解。也有可能没有解决方案。

您的选择是:

  • 将此标记为错误
  • 返回最小化xAx之间差异的b

答案 2 :(得分:0)

如果行列式等于零,则系统退化,这意味着没有解决方案或无限数量的解决方案。考虑你的第二个例子:

-x+y=a
x-y=b

我们可以将其重写为

x-y=-a
x-y=b

所以要么b=-a,在这种情况下任何一对(x,x-b)都是解决方案,否则b!=-a就是没有解决方案。