C 求解n个线性方程组
我试图用n个变量解n个线性方程组。我使用了克拉默法则,但在行列式等于零的情况下,它失败了。如何处理这个问题 我正在使用c语言 此外,我的线性方程的形式如下: 对于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=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,则存在无限解;我没在想。