我正在尝试用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
我无法继续进行。
我正在尝试用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
我无法继续进行。
使用 cramer 求解时,如果行列式为零,则有两种情况:
至少一个变量有一个非零行列式:没有解
所有变量的行列式为零:那么您有无限数量的解决方案。
在最后一种情况下,您可以根据其中一个变量找到答案。
如果行列式等于 0,则系统是退化的,这意味着要么没有解,要么有无穷多个解。考虑你的第二个例子:
-x+y=a
x-y=b
我们可以将其重写为
x-y=-a
x-y=b
所以要么b=-a
,在这种情况下任何对(x,x-b)
都是一个解决方案,或者b!=-a
在这种情况下没有解决方案。
在Ax = b
中,当 的行列式A
为零时,没有唯一解。特别是,如果b
为 0,则有无穷多个解。也可能不存在解决方案。
您的选择是:
x
之间的差异Ax
b