a1*x + b1*y + c1*z +d1 = 0
a2*x + b2*y + c2*z +d2 = 0
a3*x + b3*y + c3*z +d3 = 0
a1,a2,a3,b1,b2,b3,c1,c2,c3 都是已知的
1.
如果d1,d2,d3为已知常量.
用克莱姆法则,其实就是把方程组转换为矩阵,然后求该矩阵的行列式的值来做.
--[a1 b1 c1]
A=[a2 b2 c2] det(A)=a1b2c3+b1c2a3+c1a2b3-(c1b2a3+b1a2c3+a1c2b3)
--[a3 b3 c3]
---[-d1 b1 c1]
A1=[-d2 b2 c2]
---[-d3 b2 c3]
--------------|d1 b1 c1|
det(A1)=(-1)×|d2 b2 c2|=-[d1b2c3+b1c2d3+c1d2b3-(c1b2d3+b1d2c3+d1c2b3)]
--------------|d3 b3 c3|
(用d?代替a?,再乘-1)
依此类推,det(A2),det(A3)
---[a1 -d1 c1]
A2=[a2 -d2 c2]
---[a3 -d3 c3]
---[a1 b1 -d1]
A3=[a2 b2 -d2]
---[a3 b2 -d3]
(1)
如果det(A)!=0,有唯一解.
x1=det(A1)/det(A)
x2=det(A2)/det(A)
x3=det(A3)/det(A)
(2)
如果det(A)=0,有多个解.
2.如果d1,d2,d3为未知,有多个解.
数学公式已给出,定义一下数组,就可写出程序.