The problem is in section Auxiliary Elements in How to Solve It:
Construct a triangle, being given one angle, the altitude drawn from the vertex of the given angle, and the perimeter of the triangle.
The equations are:
Replace with and (u and v are geometric and arithmetic mean of y and z), then the equations can be simplified to:
The solutions are:
Here let , then can be constructed by Intercept Theorem, and can be constructed by Geometric Mean Theorem. Finally, we have:
Here we use SymPy to verify our result:
from sympy import *
h, p, A = symbols('h, p, A')
u = sqrt(h*p**2/2/(h + h*cos(A) + p*sin(A)))
v = (p - u**2*sin(A)/h)/2
y = v + sqrt(v**2 - u**2)
z = v - sqrt(v**2 - u**2)
x = y*z*sin(A)/h
print("x + y + z =", simplify(x + y + z))
x = sqrt(y**2 + z**2 - 2*y*z*cos(A))
print("x + y + z =", simplify(x + y + z))
We get:
x + y + z = p
x + y + z = (-p**2*sin(A)/2 + (4*p + 2*sqrt(p**4*sin(A)**2/(h*cos(A) + h + p*sin(A))**2))*(h*cos(A) + h + p*sin(A))/4)/(h*cos(A) + h + p*sin(A))
The verification of looks well.
However, the verification of looks a bit complicated. So we should continue simplifying it:
from sympy import *
h, p, A = symbols('h, p, A', positive=True)
xyz = (-p**2*sin(A)/2 + (4*p + 2*sqrt(p**4*sin(A)**2/(h*cos(A) + h + p*sin(A))**2))*(h*cos(A) + h + p*sin(A))/4)/(h*cos(A) + h + p*sin(A))
xyz = refine(xyz, Q.positive(sin(A)))
xyz = refine(xyz, Q.positive(h + h*cos(A) + p*sin(A)))
print("x + y + z =", simplify(xyz))
Finally we get x + y + z = p
.