簡體   English   中英

最大值的Sympy簡化

[英]Sympy simplification of maximum

我不明白為什么 Sympy 不會將下面簡化的表達式返回給我(不確定它是我代碼中的錯誤還是 Sympy 的功能)。

import sympy as sp

a = sp.Symbol('a',finite = True, real = True)
b = sp.Symbol('b',finite = True, real = True)
sp.assumptions.assume.global_assumptions.add(sp.Q.positive(b))
sp.assumptions.assume.global_assumptions.add(sp.Q.negative(a))
sp.simplify(sp.Max(a-b,a+b))

我希望輸出為 $a+b$,但 Sympy 仍然給我 $Max(ab,a+b)$。

謝謝; 如您所見,我是 Sympy 的初學者,因此感謝您提供任何提示/幫助。

結果當然應該是a + b ...

您可以通過在符號上設置假設來做到這一點,如下所示:

In [2]: a = Symbol('a', negative=True)                                                                                                         

In [3]: b = Symbol('b', positive=True)                                                                                                         

In [4]: Max(a - b, a + b)                                                                                                                      
Out[4]: a + b

您正在嘗試使用新的假設系統,但該系統仍處於實驗階段,並未在 sympy 中廣泛使用。 新假設不用於核心評估,因此例如 Max 函數不知道您已經在 a 和 b 上聲明了全局假設,除非這些假設是在我上面顯示的符號上聲明的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM