我们知道,直线的一般方程是Ax+By+C=0
,而平面的一般方程是Ax+By+Cz+D=0
。
对于直线方程,有ABC三个未知数。但我们知道,已知两个点只能求出两个未知数。对于平面方程是同理的。事实上,一般方程里的参数是有冗余的。例如,x+2y+3=0
和2x+4y+6=0
这两个方程事实上描述的是同一条直线。那我们可不可以直接把一个系数约掉呢,例如变成x+By+C=0
。很遗憾这行不通,因为A有可能是0。任何一个参数都有可能是0,无法约掉。
这样的话,在求解的时候,我们就需要分类讨论。先判断某一个参数是否为0,如果是0,则可以去掉该参数。少了一个参数,点数和未知数的数量相同,就可以求解了。如果没有参数是0,那我们可以把一般方程除以该参数,也相当于少了一个参数,同样可以求解。但这样的做法太麻烦了。
下面我们介绍不需要分类讨论的求解方法。
先介绍直线一般方程的求解方法。
已知直线过点P1(x1,y1),P2(x2,y2)。因为过点P1,那么必然有:
M(x-x1)+N(y-y1)=0
把P2点代入上式,有
M(x2-x1)+N(y2-y1)=0
上述两式是两个方程,如果有解,那联立它们系数的行列式应该为0,也就是:
解开行列式,提到:
(y2-y1)x+(x1-x2)y+(x2y1-x1y2)=0
对比一般式的形式,我们得到:
A=y2-y1
B=x1-x2
C=x2y1-x1y2
至此,直线一般方程就求解出来了,无需讨论参数是否为0的情况。
对于平面一般方程的求法,是类似的。
已知平面过点P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3),可列出方程:
M(x-x1)+N(y-y1)+P(z-z1)=0
M(x2-x1)+N(y2-y1)+P(z2-z1)=0
M(x3-x1)+N(y3-y1)+P(z3-z1)=0
联立上述三式,得到行列式:
解开行列式,得:
(y2-y1)(z3-z1)x-(y2-y1)(z3-z1)x1+(z2-z1)(x3-x1)y-(z2-z1)(x3-x1)y1+(x2-x1)(y3-y1)z-(x2-x1)(y3-y1)z1-(y2-y1)(x3-x1)z+(y2-y1)(x3-x1)z1-(x2-x1)(z3-z1)y+(x2-x1)(z3-z1)y1-(z2-z1)(y3-y1)x+(z2-z1)(y3-y1)x1
有点复杂,但可以得到:
A=(y2-y1)(z3-z1)-(z2-z1)(y3-y1)
B=(z2-z1)(x3-x1)-(x2-x1)(z3-z1)
C=(x2-x1)(y3-y1)-(y2-y1)(x3-x1)
要写出D会比较长,可以用上述结果表述D,把P1点代入一般方程,得到
D=-(Ax1+By1+Cz1)
至此,平面一般方程就解出来了。