C 求解n个线性方程组

C 求解n个线性方程组,c,algorithm,math,linear-equation,C,Algorithm,Math,Linear Equation,我试图用n个变量解n个线性方程组。我使用了克拉默法则,但在行列式等于零的情况下,它失败了。如何处理这个问题 我正在使用c语言 此外,我的线性方程的形式如下: 对于n=3: - x + y + z = a x - y + z = b x + y - z = c 对于n=2: - x + y = a x - y = b 我无法继续。在Ax=b中,当A的行列式等于零时,没有唯一的解。特别是,如果b为0,则存在无穷多个解。也可能不存在解决方案 你的选择是: 将此标记为错误 返回将Ax和

我试图用n个变量解n个线性方程组。我使用了克拉默法则,但在行列式等于零的情况下,它失败了。如何处理这个问题

我正在使用c语言

此外,我的线性方程的形式如下:

对于
n=3

- x + y + z = a
  x - y + z = b
  x + y - z = c
对于
n=2

- x + y = a
  x - y = b

我无法继续。

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

你的选择是:

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

如果行列式等于零,则系统退化,这意味着要么没有解,要么有无穷多个解。考虑你的第二个例子:

-x+y=a
x-y=b
我们可以把它改写为

x-y=-a
x-y=b

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

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

  • 至少有一个变量具有非零行列式:没有解决方案

  • 所有变量的行列式都是零:那么就有无穷多的解

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


    • 事实是
      b=0不保证不存在任何解决方案。例如,在OP的第二个示例中,如果
      a=-b
      .True,则存在无限解;我没在想。