Ошибка, которую вы описали, на самом деле не совпадает с кодом, который вы дали, поэтому, скорее всего, некоторые переменные определены по-разному.
Код, который вы дали, не запускается, потому что вы не определили phi
. Вам нужно сделать
phi = Symbol('phi')
Вам также нужно упростить выражение, чтобы заставить его работать над ним. Обратите внимание, что у него есть только сложные решения
>>> phi = Symbol('phi')
>>> expr = 2.5*L*m*g*(sp.sin(phi)) + m*g*(sp.cos(phi))*(0.5*L+(L/(sp.tan(phi))))
>>> solve(simplify(expr), phi)
[-0.160875277198321 - 0.71616371255285*I, -0.160875277198321 + 0.71616371255285*I, 2.98071737639147 - 0.71616371255285*I, 2.98071737639147 + 0.71616371255285*I]
Насколько я могу судить, у него нет реального решения. сюжет в Wolfram Alpha, кажется, подтверждает это. Если вы ожидаете реального решения, вы должны дважды проверить свое выражение.