一道三元二次方程组

刷刷数学题,避免老年痴呆。

在youtube上看到这么一道题,觉得有点意思,就记了下来。

方程组如下:

x2 - yz = 2
y2 - xz = 3
z2 - xy = 5

x, y, z的值

视频里面也说了有很多解法,但大多比较ugly,推荐了一个:

不失一般性,令
x2 - yz = a ...... (1)
y2 - xz = b ...... (2)
z2 - xy = c ...... (3)

(1)式左右各乘y,(2)式左右各乘z,(3)式左右各乘x
x2y - y2z = ay
y2z - xz2 = bz
z2x - x2y = cx

3个方程加起来,左边均抵消为0
得:
0 = ay + bz + cx

又
(1)式左右各乘z,(2)式左右各乘x,(3)式左右各乘y
相加抵消后得到:
0 = az + bx + cy

两方程可以换成向量点积的表达:
<x, y, z> * <c, a, b> = 0
<x, y, z> * <b, c, a> = 0

如a, b, c均不为零
则<x, y, z> 为与 <c, a, b>和<b, c, a>所在平面垂直的向量

令z = 1,
cx + ay = -b
bx + cy = -a
求得
x = (a2 - bc)/(c2 - ab)
y = (b2 - ac)/(c2 - ab)

因此
x = k(a2 - bc)
y = k(b2 - ac)
z = k(c2 - ab)

代入原方程(1)中求k
k2(a2 - bc)2 - k2(b2 - ac)(c2 - ab) = a

k = 1 /(a3 + b3 + c3 - 3abc)1/2
因此
x = (a2 - bc)/(a3 + b3 + c3 - 3abc)1/2
y = (b2 - ac)/(a3 + b3 + c3 - 3abc)1/2
z = (c2 - ab)/(a3 + b3 + c3 - 3abc)1/2

将2, 3, 5分别代入即可
x = -11 / 701/2
y = -1 / 701/2
z = 19 / 701/2

这道题本身有特殊性,只是向量点积的方式会比较优雅。