Я думаю, вам действительно понадобится:
import sympy as sp
from sympy import pi, log, sqrt
R0, Hb, P_, y, m, xhi_, x = sp.symbols("R0 Hb P_ y m xhi_ x")
P = P_/2
eq1 = x - sp.sqrt((P - (m*(y*y)/2*pi)*log(R0/x))/(pi*xhi_*Hb))
a = sp.solve_linear(eq1, x)
sp.pprint(a)
⎛ ____________________ ⎞
⎜ ╱ 2 ⎛R₀⎞ ⎟
⎜ ╱ π⋅m⋅y ⋅log⎜──⎟ ⎟
⎜ ╱ P ⎝x ⎠ ⎟
⎜ ╱ ─ - ────────────── ⎟
⎜ ╱ 2 2 ⎟
⎜- ╱ ────────────────── , √π⎟
⎝ ╲╱ Hb⋅xhi ⎠
Тогда вы могли бы сделать :
import numpy as np
a[0].subs({R0:0.003, Hb:5e8, P_:1000, y:2500, m:4*np.pi*10e-7, xhi_:1, pi:np.pi})
-4.47213595499958e-5*sqrt(-123.370055013617*log(0.003/x) + 500)
Но это не то, что вы изначально имели в виду, еслиЯ правильно поняла;вы на самом деле хотите значение для x
, поэтому solve
будет уместным:
a = sp.solve(eq1, x)
Это не с
NotImplementedError: несколько генераторов [x, sqrt (P_ /(2 * Hb xhi_) - pi m * y ** 2 * log (R0 / x) / (2 * Hb * xhi_))]
Не реализованы алгоритмы для решения уравненияx - sqrt ((P_ / 2 - pi m y ** 2 * log (R0 / x) / 2) / (Hb * xhi _)) / sqrt (pi)
, что , по-видимому, означает , что это уравнение не может быть решено аналитически.
Вы можете попробовать численно решить, как показано, например, здесь .