是否有可能在Python中求解带有单位的符号?

sp8*_*rks 5 python solver units-of-measurement sympy

我想用求解器求解方程,但方程有带单位的数字。我尝试使用 pint 作为单位,使用 sympy 作为求解器

import sympy as sy
import pint
import scipy.constants as cnst

u = pint.UnitRegistry()
Q = u.Quantity

k=cnst.k*u.joule/u.K
T=1100*u.K

x = sy.Symbol('x')

D0 = 0.214*u.cm**2/u.sec
D1=D0*(sy.exp((-3.65*u.eV)/(k*T)))
print(sy.erf(((40e-9*u.m).to('cm')/(2*(D1*60*u.sec)**(1/2))).magnitude))
answer = sy.solve(1-sy.erf(((40e-9*u.m).to('cm')/(2*(D1*x*u.sec)**(1/2))).magnitude - 0.00001),x)
print(answer)
Run Code Online (Sandbox Code Playgroud)

但什么也没有返回。知道我可以尝试什么吗?

smi*_*chr 2

尝试使用 sympy 单位

>>> from sympy import units
>>> from sympy.abc import x
>>> solve(3*units.feet-x*2,x)
[3*foot/2]
Run Code Online (Sandbox Code Playgroud)