【问题标题】:How to parse list return value into sympy expression which you can substitute values in?如何将列表返回值解析为可以替换值的 sympy 表达式?
【发布时间】:2020-12-13 11:55:43
【问题描述】:

嘿,我是使用 sympy 的新手,我在处理solve() 的返回值时遇到了问题,因为它总是返回一个列表 而不是同情的表达。我想将值替换为 我使用 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)

谢谢。

【问题讨论】:

    标签: parsing return sympy substitution


    【解决方案1】:

    您可以使用[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 
    

    【讨论】:

      猜你喜欢
      • 2021-04-28
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      相关资源
      最近更新 更多