SymPy - 查詢



SymPy 包中的 assumptions 模組包含用於提取表示式資訊的工具。該模組為此目的定義了 ask() 函式。

sympy.assumptions.ask(property)

以下屬性提供關於表示式的有用資訊:

algebraic(x)

要成為代數的,一個數必須是非零多項式方程的根,且具有有理係數。√2 是代數的,因為√2 是 x² − 2 = 0 的解。

complex(x)

複數謂詞。當且僅當 x 屬於複數集時,它為真。

composite(x)

由 ask(Q.composite(x)) 返回的合數謂詞當且僅當 x 是正整數且至少有一個正除數(除了 1 和它本身)時為真。

even, odd

如果 x 分別屬於偶數集和奇數集,則 ask() 返回 true。

imaginary

此屬性表示虛數謂詞。如果 x 可以寫成實數乘以虛數單位 I,則為真。

integer

Q.integer(x) 返回的此屬性如果 x 屬於偶數集則返回 true。(此處原文有誤,應為整數集)

rational, irrational

Q.irrational(x) 當且僅當 x 是任何不能表示為整數比率的實數時為真。例如,π 是一個無理數。

positive, negative

用於檢查數字是正數還是負數的謂詞

zero, nonzero

用於檢查數字是否為零的謂詞

>>> from sympy import * 
>>> x=Symbol('x') 
>>> x=10 
>>> ask(Q.algebraic(pi))
False
>>> ask(Q.complex(5-4*I)), ask( Q.complex(100))
(True, True)
>>> x,y=symbols("x y") 
>>> x,y=5,10 
>>> ask(Q.composite(x)), ask(Q.composite(y))
(False, True)
>>> ask(Q.even(x)), ask(Q.even(y))
(False, True)
>>> x,y= 2*I, 4+5*I 
>>> ask(Q.imaginary(x)), ask(Q.imaginary(y))
(True, False)
>>> x,y=5,10 
>>> ask(Q.even(x)), ask(Q.even(y)), ask(Q.odd(x)), ask(Q.odd(y))
(False, True, True, False)
>>> x,y=5,-5 
>>> ask(Q.positive(x)), ask(Q.negative(y)), ask(Q.positive(x)), ask(Q.negative(y))
(True, True, True, True)
>>> ask(Q.rational(pi)), ask(Q.irrational(S(2)/3))
(False, False)
>>> ask(Q.zero(oo)), ask(Q.nonzero(I))
(False, False)
廣告
© . All rights reserved.