代码之家  ›  专栏  ›  技术社区  ›  Bill

Sympy不是在具有指定假设的情况下用值替换符号

  •  0
  • Bill  · 技术社区  · 2 年前

    在求解方程之前,我使用subs方法将表达式中的某些参数替换为值。

    下面的简单示例可以很好地工作:

    from sympy import Symbol
    
    Q = Symbol("Q")
    exp1 = Q + 1
    print(exp1.subs({'Q': 1}))  # prints 2
    

    但是,如果符号有一个假设,例如 real positive 指定此操作不起作用:

    Q = Symbol("Q", positive=True)
    exp1 = Q + 1
    print(exp1.subs({'Q': 1}))  # prints Q + 1
    

    为什么会这样,我做错了什么?

    1 回复  |  直到 2 年前
        1
  •  1
  •   Unmitigated    2 年前

    不要使用字符串键。

    print(exp1.subs({Q: 1}))