Я пытаюсь использовать SymPy для построения правильного пятиугольника, а затем вычислить отношение диагонали к ребру.Известно, что это золотое сечение, (1 + sqrt(5)) / 2
, но SymPy неправильно его вычисляет.Ответ SymPy, после упрощения вручную, является произведением Золотого сечения и -i (отрицательная мнимая постоянная), -i * (1 + sqrt(5)) / 2
from sympy import simplify
from sympy.geometry import RegularPolygon, Point
sides = 5
polygon = RegularPolygon(Point(0, 0), 1, sides)
diagonal = polygon.vertices[0].distance(polygon.vertices[2])
print("Ratio:", simplify(diagonal/polygon.length))
Ratio: sqrt(sqrt(5) + 5)/sqrt(-sqrt(5) + 5)
Я использую SymPyпотому что мне нужно иметь точные значения и использовать пятиугольник в качестве контрольного примера, прежде чем переходить к другим полигонам.Есть ли способ убедиться, что SymPy избегает предлагать сложные решения?