Ваша симпатичная версия не включает == b
. В sympy вы можете добавить b
как solve(expr - b, t)
или solve(Eq(expr, b), t)
. Кроме того, у вашей версии sympy (h - S / 2)
, а у вашей версии Mathematica (X)
. Я предполагаю, что гамма - это просто переменная, а не гамма-функция.
В примере кода я изменил S
на строчные, чтобы иметь возможность использовать S
sympy для символического преобразования констант, участвующих в делениях.
Подставляя это, результат больше похож на результат Mathematica.
from sympy import Symbol, solve, exp, S
a = Symbol('a')
b = Symbol('b')
t = Symbol('t')
s = Symbol('s')
g = Symbol('g')
h = Symbol('h')
f = solve(Eq(b, exp(t * s / 2) * (1 + (S(3) / 2) * t * g * (h - s / 2)) ** (S(2) / (3 * g))), t)
результат (sympy предлагает 6 из них):
[4*(-s + (2*h - s)*LambertW(-s*exp(3*(2*g*h*log(2**(4/g)*b**3) - g*s*log(2**(4/g)*b**3) + 2*s)/(2*h - s))**(1/6)/(4*(2*h - s))))/(3*g*s*(2*h - s)),
4*(-s + (2*h - s)*LambertW(s*exp(3*(2*g*h*log(2**(4/g)*b**3) - g*s*log(2**(4/g)*b**3) + 2*s)/(2*h - s))**(1/6)/(4*(2*h - s))))/(3*g*s*(2*h - s)),
4*(-s + (2*h - s)*LambertW(-s*(1 - sqrt(3)*I)*exp(3*(2*g*h*log(2**(4/g)*b**3) - g*s*log(2**(4/g)*b**3) + 2*s)/(2*h - s))**(1/6)/(8*(2*h - s))))/(3*g*s*(2*h - s)),
4*(-s + (2*h - s)*LambertW(s*(1 - sqrt(3)*I)*exp(3*(2*g*h*log(2**(4/g)*b**3) - g*s*log(2**(4/g)*b**3) + 2*s)/(2*h - s))**(1/6)/(8*(2*h - s))))/(3*g*s*(2*h - s)),
4*(-s + (2*h - s)*LambertW(-s*(1 + sqrt(3)*I)*exp(3*(2*g*h*log(2**(4/g)*b**3) - g*s*log(2**(4/g)*b**3) + 2*s)/(2*h - s))**(1/6)/(8*(2*h - s))))/(3*g*s*(2*h - s)),
4*(-s + (2*h - s)*LambertW(s*(1 + sqrt(3)*I)*exp(3*(2*g*h*log(2**(4/g)*b**3) - g*s*log(2**(4/g)*b**3) + 2*s)/(2*h - s))**(1/6)/(8*(2*h - s))))/(3*g*s*(2*h - s))]