c语言编程:三元一次方程(最好有注释)

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:46:48
5x+2y+3z=18
x+y+2z=9
2x+4y+4z=22

次数这么低,直接套用Crammer法则就可以了,最简单。

首先,三阶行列式的定义是
|a11 a12 a13|
|a21 a22 a23|
|a31 a32 a33|
= a11*a22*a33 + a12*a23*a31 + a21*a32*a13 - a31*a22*a13 - a21*a12*a33 - a32*a23*a11

记方程为
a11 * x + a12 * y + a13 * z = b1
a21 * x + a22 * y + a23 * z = b2
a31 * x + a32 * y + a33 * z = b3
并记
D =
|a11 a12 a13|
|a21 a22 a23|
|a31 a32 a33|
Dx =
|b1 a12 a13|
|b2 a22 a23|
|b3 a32 a33|
Dy =
|a11 b1 a13|
|a21 b2 a23|
|a31 b3 a33|
Dz =
|a11 a12 b1|
|a21 a22 b2|
|a31 a32 b3|

当D不为0时,方程组有唯一解:
x = Dx / D
y = Dy / D
z = Dz / D