我想使用sympy在eq1中求解x。当我尝试使用sp.solve()求解方程式时,出现错误。当我使用sp.solve_linear()时,它似乎可以工作,但是我无法估算解决方案的数值。除x外,所有我的变量都已定义,我想求解x。我可以使用另一个求解器吗?我的代码如下:
import sympy as sp
from sympy import pi, log
R0, Hb, P_, y, m, xhi_ = sp.symbols("0.003 5e8, 1000 2500 4*pi*10e-7 1")
P = P_/2
x, y = sp.symbols('x y')
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)
sp.pprint(sp.N(a))
答案 0 :(得分:0)
我认为您实际上需要:
import plotly.graph_objs as go
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
data_t = []
for mac, dico_data in dict_info.items():
data_t.append(go.Scatter( x= dico_data['asn'], y= dico_data["time"], name=mac ))
print (data_t)
data = data_t
iplot(data_t)
然后您could do:
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
那失败了
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)
不能seems to imply表示无法解析地求解该方程式。
您可以尝试如下所示的数值求解器here。