Эй, я новичок в использовании sympy, и у меня проблема с возвращаемым значением решения (), потому что он всегда возвращает список вместо симпатичного выражения. Я хочу подставить значения в мое решение с использованием sol.subs(), которое работает только для выражений sympy. Кто-нибудь может сказать мне, как это сделать?
eq1 = sp.Eq(sp.sqrt(2 * m * E) / h_bar, n * pi) E_n = sp.solve (eq1, E)
type(E_n) теперь является списком. Я хочу использовать продолжать использовать его как выражение. Например:
E_1 = E_n.subs(n, 1) E_2 = E_n.subs(n, 2)
Спасибо.
Вы можете получить элемент из списка с помощью [0]
, т.е.:
In [19]: import sympy as sp
In [20]: m, E, h_bar, n = sp.symbols('m, E, h_bar, n', positive=True)
In [21]: eq1 = sp.Eq(sp.sqrt(2 * m * E) / h_bar, n * pi)
In [22]: E_n = solve(eq1, E)[0]
In [23]: E_n
Out[23]:
2 2 2
π ⋅h_bar ⋅n
────────────
2⋅m
In [24]: E_n.subs(n, 1)
Out[24]:
2 2
π ⋅h_bar
─────────
2⋅m