Predicates#
普通#
- class sympy.assumptions.predicates.common.IsTruePredicate(*args, **kwargs)[源代码]#
泛型谓词。
解释
ask(Q.is_true(x))
is true iffx
is true. This only makes sense ifx
is a boolean object.实例
>>> from sympy import ask, Q >>> from sympy.abc import x, y >>> ask(Q.is_true(True)) True
Wrapping another applied predicate just returns the applied predicate.
>>> Q.is_true(Q.even(x)) Q.even(x)
Wrapping binary relation classes in SymPy core returns applied binary relational predicates.
>>> from sympy import Eq, Gt >>> Q.is_true(Eq(x, y)) Q.eq(x, y) >>> Q.is_true(Gt(x, y)) Q.gt(x, y)
笔记
This class is designed to wrap the boolean objects so that they can behave as if they are applied predicates. Consequently, wrapping another applied predicate is unnecessary and thus it just returns the argument. Also, binary relation classes in SymPy core have binary predicates to represent themselves and thus wrapping them with
Q.is_true
converts them to these applied predicates.Handler
Multiply dispatched method: IsTrueHandler
允许查询布尔表达式的真值的包装器。
- handler = <dispatched IsTrueHandler>#
微积分#
- class sympy.assumptions.predicates.calculus.FinitePredicate(*args, **kwargs)[源代码]#
Finite number predicate.
解释
Q.finite(x)
is true ifx
is a number but neither an infinity nor aNaN
. In other words,ask(Q.finite(x))
is true for all numericalx
having a bounded absolute value.实例
>>> from sympy import Q, ask, S, oo, I, zoo >>> from sympy.abc import x >>> ask(Q.finite(oo)) False >>> ask(Q.finite(-oo)) False >>> ask(Q.finite(zoo)) False >>> ask(Q.finite(1)) True >>> ask(Q.finite(2 + 3*I)) True >>> ask(Q.finite(x), Q.positive(x)) True >>> print(ask(Q.finite(S.NaN))) None
Handler
Multiply dispatched method: FiniteHandler
Handler for Q.finite. Test that an expression is bounded respect to all its variables.
工具书类
- handler = <dispatched FiniteHandler>#
矩阵#
- class sympy.assumptions.predicates.matrices.SymmetricPredicate(*args, **kwargs)[源代码]#
对称矩阵谓词。
解释
Q.symmetric(x)
是真的吗x
是一个方阵,等于它的转置。每一个正方形对角矩阵都是一个对称矩阵。实例
>>> from sympy import Q, ask, MatrixSymbol >>> X = MatrixSymbol('X', 2, 2) >>> Y = MatrixSymbol('Y', 2, 3) >>> Z = MatrixSymbol('Z', 2, 2) >>> ask(Q.symmetric(X*Z), Q.symmetric(X) & Q.symmetric(Z)) True >>> ask(Q.symmetric(X + Z), Q.symmetric(X) & Q.symmetric(Z)) True >>> ask(Q.symmetric(Y)) False
Handler
Multiply dispatched method: SymmetricHandler
Handler for Q.symmetric.
工具书类
- handler = <dispatched SymmetricHandler>#
- class sympy.assumptions.predicates.matrices.InvertiblePredicate(*args, **kwargs)[源代码]#
可逆矩阵谓词。
解释
Q.invertible(x)
是真的吗x
是可逆矩阵。方阵只有行列式为0时才称为可逆矩阵。实例
>>> from sympy import Q, ask, MatrixSymbol >>> X = MatrixSymbol('X', 2, 2) >>> Y = MatrixSymbol('Y', 2, 3) >>> Z = MatrixSymbol('Z', 2, 2) >>> ask(Q.invertible(X*Y), Q.invertible(X)) False >>> ask(Q.invertible(X*Z), Q.invertible(X) & Q.invertible(Z)) True >>> ask(Q.invertible(X), Q.fullrank(X) & Q.square(X)) True
Handler
Multiply dispatched method: InvertibleHandler
Handler for Q.invertible.
工具书类
- handler = <dispatched InvertibleHandler>#
- class sympy.assumptions.predicates.matrices.OrthogonalPredicate(*args, **kwargs)[源代码]#
正交矩阵谓词。
解释
Q.orthogonal(x)
是真的吗x
是一个正交矩阵。方阵M
是一个正交矩阵,如果它满足M^TM = MM^T = I
在哪里?M^T
是的转置矩阵M
和I
是一个单位矩阵。注意一个正交矩阵必然是可逆的。实例
>>> from sympy import Q, ask, MatrixSymbol, Identity >>> X = MatrixSymbol('X', 2, 2) >>> Y = MatrixSymbol('Y', 2, 3) >>> Z = MatrixSymbol('Z', 2, 2) >>> ask(Q.orthogonal(Y)) False >>> ask(Q.orthogonal(X*Z*X), Q.orthogonal(X) & Q.orthogonal(Z)) True >>> ask(Q.orthogonal(Identity(3))) True >>> ask(Q.invertible(X), Q.orthogonal(X)) True
Handler
Multiply dispatched method: OrthogonalHandler
Handler for key 'orthogonal'.
工具书类
- handler = <dispatched OrthogonalHandler>#
- class sympy.assumptions.predicates.matrices.UnitaryPredicate(*args, **kwargs)[源代码]#
酉矩阵谓词。
解释
Q.unitary(x)
是真的吗x
是酉矩阵。酉矩阵是正交矩阵的一个类似物。方阵M
复元素是酉的如果 :math:M^TM = MM^T= I` `在哪里 :math:``M^T` `是的共轭转置矩阵 ``M
.实例
>>> from sympy import Q, ask, MatrixSymbol, Identity >>> X = MatrixSymbol('X', 2, 2) >>> Y = MatrixSymbol('Y', 2, 3) >>> Z = MatrixSymbol('Z', 2, 2) >>> ask(Q.unitary(Y)) False >>> ask(Q.unitary(X*Z*X), Q.unitary(X) & Q.unitary(Z)) True >>> ask(Q.unitary(Identity(3))) True
Handler
Multiply dispatched method: UnitaryHandler
Handler for key 'unitary'.
工具书类
- handler = <dispatched UnitaryHandler>#
- class sympy.assumptions.predicates.matrices.PositiveDefinitePredicate(*args, **kwargs)[源代码]#
正定矩阵谓词。
解释
If \(M\) is a \(n \times n\) symmetric real matrix, it is said to be positive definite if \(Z^TMZ\) is positive for every non-zero column vector \(Z\) of \(n\) real numbers.
实例
>>> from sympy import Q, ask, MatrixSymbol, Identity >>> X = MatrixSymbol('X', 2, 2) >>> Y = MatrixSymbol('Y', 2, 3) >>> Z = MatrixSymbol('Z', 2, 2) >>> ask(Q.positive_definite(Y)) False >>> ask(Q.positive_definite(Identity(3))) True >>> ask(Q.positive_definite(X + Z), Q.positive_definite(X) & ... Q.positive_definite(Z)) True
Handler
Multiply dispatched method: PositiveDefiniteHandler
Handler for key 'positive_definite'.
工具书类
- handler = <dispatched PositiveDefiniteHandler>#
- class sympy.assumptions.predicates.matrices.UpperTriangularPredicate(*args, **kwargs)[源代码]#
上三角矩阵谓词。
解释
A matrix \(M\) is called upper triangular matrix if \(M_{ij}=0\) for \(i<j\).
实例
>>> from sympy import Q, ask, ZeroMatrix, Identity >>> ask(Q.upper_triangular(Identity(3))) True >>> ask(Q.upper_triangular(ZeroMatrix(3, 3))) True
Handler
Multiply dispatched method: UpperTriangularHandler
Handler for key 'upper_triangular'.
工具书类
- handler = <dispatched UpperTriangularHandler>#
- class sympy.assumptions.predicates.matrices.LowerTriangularPredicate(*args, **kwargs)[源代码]#
下三角矩阵谓词。
解释
A matrix \(M\) is called lower triangular matrix if \(M_{ij}=0\) for \(i>j\).
实例
>>> from sympy import Q, ask, ZeroMatrix, Identity >>> ask(Q.lower_triangular(Identity(3))) True >>> ask(Q.lower_triangular(ZeroMatrix(3, 3))) True
Handler
Multiply dispatched method: LowerTriangularHandler
Handler for key 'lower_triangular'.
工具书类
- handler = <dispatched LowerTriangularHandler>#
- class sympy.assumptions.predicates.matrices.DiagonalPredicate(*args, **kwargs)[源代码]#
对角矩阵谓词。
解释
Q.diagonal(x)
是真的吗x
是一个对角矩阵。对角线矩阵是主对角线之外的项都为零的矩阵。实例
>>> from sympy import Q, ask, MatrixSymbol, ZeroMatrix >>> X = MatrixSymbol('X', 2, 2) >>> ask(Q.diagonal(ZeroMatrix(3, 3))) True >>> ask(Q.diagonal(X), Q.lower_triangular(X) & ... Q.upper_triangular(X)) True
Handler
Multiply dispatched method: DiagonalHandler
Handler for key 'diagonal'.
工具书类
- handler = <dispatched DiagonalHandler>#
- class sympy.assumptions.predicates.matrices.FullRankPredicate(*args, **kwargs)[源代码]#
全秩矩阵谓词。
解释
Q.fullrank(x)
是真的吗x
是一个满秩矩阵。如果矩阵的所有行都是线性的且秩是独立的。方阵的行列式非零时为满秩矩阵。实例
>>> from sympy import Q, ask, MatrixSymbol, ZeroMatrix, Identity >>> X = MatrixSymbol('X', 2, 2) >>> ask(Q.fullrank(X.T), Q.fullrank(X)) True >>> ask(Q.fullrank(ZeroMatrix(3, 3))) False >>> ask(Q.fullrank(Identity(3))) True
Handler
Multiply dispatched method: FullRankHandler
Handler for key 'fullrank'.
- handler = <dispatched FullRankHandler>#
- class sympy.assumptions.predicates.matrices.SquarePredicate(*args, **kwargs)[源代码]#
方阵谓词。
解释
Q.square(x)
是真的吗x
是一个方阵。方阵是具有相同行数和列数的矩阵。实例
>>> from sympy import Q, ask, MatrixSymbol, ZeroMatrix, Identity >>> X = MatrixSymbol('X', 2, 2) >>> Y = MatrixSymbol('X', 2, 3) >>> ask(Q.square(X)) True >>> ask(Q.square(Y)) False >>> ask(Q.square(ZeroMatrix(3, 3))) True >>> ask(Q.square(Identity(3))) True
Handler
Multiply dispatched method: SquareHandler
Handler for Q.square.
工具书类
- handler = <dispatched SquareHandler>#
- class sympy.assumptions.predicates.matrices.IntegerElementsPredicate(*args, **kwargs)[源代码]#
整数元素矩阵谓词。
解释
Q.integer_elements(x)
如果所有的元素x
是整数。实例
>>> from sympy import Q, ask, MatrixSymbol >>> X = MatrixSymbol('X', 4, 4) >>> ask(Q.integer(X[1, 2]), Q.integer_elements(X)) True
Handler
Multiply dispatched method: IntegerElementsHandler
Handler for key 'integer_elements'.
- handler = <dispatched IntegerElementsHandler>#
- class sympy.assumptions.predicates.matrices.RealElementsPredicate(*args, **kwargs)[源代码]#
实元素矩阵谓词。
解释
Q.real_elements(x)
如果所有的元素x
都是实数。实例
>>> from sympy import Q, ask, MatrixSymbol >>> X = MatrixSymbol('X', 4, 4) >>> ask(Q.real(X[1, 2]), Q.real_elements(X)) True
Handler
Multiply dispatched method: RealElementsHandler
Handler for key 'real_elements'.
- handler = <dispatched RealElementsHandler>#
- class sympy.assumptions.predicates.matrices.ComplexElementsPredicate(*args, **kwargs)[源代码]#
复数元素矩阵谓词。
解释
Q.complex_elements(x)
如果所有的元素x
是复数。实例
>>> from sympy import Q, ask, MatrixSymbol >>> X = MatrixSymbol('X', 4, 4) >>> ask(Q.complex(X[1, 2]), Q.complex_elements(X)) True >>> ask(Q.complex_elements(X), Q.integer_elements(X)) True
Handler
Multiply dispatched method: ComplexElementsHandler
Handler for key 'complex_elements'.
- handler = <dispatched ComplexElementsHandler>#
- class sympy.assumptions.predicates.matrices.SingularPredicate(*args, **kwargs)[源代码]#
单数矩阵谓词。
当行列式的值为0时,矩阵是奇异的。
实例
>>> from sympy import Q, ask, MatrixSymbol >>> X = MatrixSymbol('X', 4, 4) >>> ask(Q.singular(X), Q.invertible(X)) False >>> ask(Q.singular(X), ~Q.invertible(X)) True
Handler
Multiply dispatched method: SingularHandler
Predicate fore key 'singular'.
工具书类
- handler = <dispatched SingularHandler>#
- class sympy.assumptions.predicates.matrices.NormalPredicate(*args, **kwargs)[源代码]#
正规矩阵谓词。
如果它是一个正规的转置矩阵。
实例
>>> from sympy import Q, ask, MatrixSymbol >>> X = MatrixSymbol('X', 4, 4) >>> ask(Q.normal(X), Q.unitary(X)) True
Handler
Multiply dispatched method: NormalHandler
Predicate fore key 'normal'.
工具书类
- handler = <dispatched NormalHandler>#
- class sympy.assumptions.predicates.matrices.TriangularPredicate(*args, **kwargs)[源代码]#
三角矩阵谓词。
解释
Q.triangular(X)
如果是真的X
是下三角或上三角的。实例
>>> from sympy import Q, ask, MatrixSymbol >>> X = MatrixSymbol('X', 4, 4) >>> ask(Q.triangular(X), Q.upper_triangular(X)) True >>> ask(Q.triangular(X), Q.lower_triangular(X)) True
Handler
Multiply dispatched method: TriangularHandler
Predicate fore key 'triangular'.
工具书类
- handler = <dispatched TriangularHandler>#
- class sympy.assumptions.predicates.matrices.UnitTriangularPredicate(*args, **kwargs)[源代码]#
单位三角矩阵谓词。
解释
单位三角形矩阵是对角线上有1的三角形矩阵。
实例
>>> from sympy import Q, ask, MatrixSymbol >>> X = MatrixSymbol('X', 4, 4) >>> ask(Q.triangular(X), Q.unit_triangular(X)) True
Handler
Multiply dispatched method: UnitTriangularHandler
Predicate fore key 'unit_triangular'.
- handler = <dispatched UnitTriangularHandler>#
数论#
- class sympy.assumptions.predicates.ntheory.EvenPredicate(*args, **kwargs)[源代码]#
偶数谓词。
解释
ask(Q.even(x))
是真的吗x
属于偶数整数集。实例
>>> from sympy import Q, ask, pi >>> ask(Q.even(0)) True >>> ask(Q.even(2)) True >>> ask(Q.even(3)) False >>> ask(Q.even(pi)) False
Handler
Multiply dispatched method: EvenHandler
Handler for key 'even'.
- handler = <dispatched EvenHandler>#
- class sympy.assumptions.predicates.ntheory.OddPredicate(*args, **kwargs)[源代码]#
奇数谓词。
解释
ask(Q.odd(x))
是真的吗x
属于奇数集合。实例
>>> from sympy import Q, ask, pi >>> ask(Q.odd(0)) False >>> ask(Q.odd(2)) False >>> ask(Q.odd(3)) True >>> ask(Q.odd(pi)) False
Handler
Multiply dispatched method: OddHandler
Handler for key 'odd'. Test that an expression represents an odd number.
- handler = <dispatched OddHandler>#
- class sympy.assumptions.predicates.ntheory.PrimePredicate(*args, **kwargs)[源代码]#
质数谓词。
解释
ask(Q.prime(x))
是真的吗x
是一个大于1的自然数,它除了1
以及数字本身。实例
>>> from sympy import Q, ask >>> ask(Q.prime(0)) False >>> ask(Q.prime(1)) False >>> ask(Q.prime(2)) True >>> ask(Q.prime(20)) False >>> ask(Q.prime(-3)) False
Handler
Multiply dispatched method: PrimeHandler
Handler for key 'prime'. Test that an expression represents a prime number. When the expression is an exact number, the result (when True) is subject to the limitations of isprime() which is used to return the result.
- handler = <dispatched PrimeHandler>#
- class sympy.assumptions.predicates.ntheory.CompositePredicate(*args, **kwargs)[源代码]#
复合数字谓词。
解释
ask(Q.composite(x))
是真的吗x
是一个正整数,并且至少有一个除1
以及数字本身。实例
>>> from sympy import Q, ask >>> ask(Q.composite(0)) False >>> ask(Q.composite(1)) False >>> ask(Q.composite(2)) False >>> ask(Q.composite(20)) True
Handler
Multiply dispatched method: CompositeHandler
Handler for key 'composite'.
- handler = <dispatched CompositeHandler>#
秩序#
- class sympy.assumptions.predicates.order.PositivePredicate(*args, **kwargs)[源代码]#
正实数谓词。
解释
Q.positive(x)
是真的吗x
是真实的而且 \(x > 0\) ,如果x
在间隔时间内 \((0, \infty)\) . 特别是,无限不是正的。关于正数的几个重要事实:
- Note that
Q.nonpositive
and~Q.positive
are not the same thing.
~Q.positive(x)
simply means thatx
is not positive, whereasQ.nonpositive(x)
means thatx
is real and not positive, i.e.,Q.nonpositive(x)
is logically equivalent to \(Q.negative(x) | Q.zero(x)`\). So for example,~Q.positive(I)
is true, whereasQ.nonpositive(I)
is false.
- Note that
- See the documentation of
Q.real
for more information about related facts.
- See the documentation of
实例
>>> from sympy import Q, ask, symbols, I >>> x = symbols('x') >>> ask(Q.positive(x), Q.real(x) & ~Q.negative(x) & ~Q.zero(x)) True >>> ask(Q.positive(1)) True >>> ask(Q.nonpositive(I)) False >>> ask(~Q.positive(I)) True
Handler
Multiply dispatched method: PositiveHandler
Handler for key 'positive'. Test that an expression is strictly greater than zero.
- handler = <dispatched PositiveHandler>#
- class sympy.assumptions.predicates.order.NegativePredicate(*args, **kwargs)[源代码]#
负数谓词。
解释
Q.negative(x)
是真的吗x
是一个实数 \(x < 0\) ,也就是说,它在间隔时间内 \((-\infty, 0)\) . 特别要注意的是,负无穷不是负的。关于负数的几个重要事实:
- Note that
Q.nonnegative
and~Q.negative
are not the same thing.
~Q.negative(x)
simply means thatx
is not negative, whereasQ.nonnegative(x)
means thatx
is real and not negative, i.e.,Q.nonnegative(x)
is logically equivalent toQ.zero(x) | Q.positive(x)
. So for example,~Q.negative(I)
is true, whereasQ.nonnegative(I)
is false.
- Note that
- See the documentation of
Q.real
for more information about related facts.
- See the documentation of
实例
>>> from sympy import Q, ask, symbols, I >>> x = symbols('x') >>> ask(Q.negative(x), Q.real(x) & ~Q.positive(x) & ~Q.zero(x)) True >>> ask(Q.negative(-1)) True >>> ask(Q.nonnegative(I)) False >>> ask(~Q.negative(I)) True
Handler
Multiply dispatched method: NegativeHandler
Handler for Q.negative. Test that an expression is strictly less than zero.
- handler = <dispatched NegativeHandler>#
- class sympy.assumptions.predicates.order.ZeroPredicate(*args, **kwargs)[源代码]#
零数谓词。
解释
ask(Q.zero(x))
如果x
是零。实例
>>> from sympy import ask, Q, oo, symbols >>> x, y = symbols('x, y') >>> ask(Q.zero(0)) True >>> ask(Q.zero(1/oo)) True >>> print(ask(Q.zero(0*oo))) None >>> ask(Q.zero(1)) False >>> ask(Q.zero(x*y), Q.zero(x) | Q.zero(y)) True
Handler
Multiply dispatched method: ZeroHandler
Handler for key 'zero'.
- handler = <dispatched ZeroHandler>#
- class sympy.assumptions.predicates.order.NonZeroPredicate(*args, **kwargs)[源代码]#
非零实数谓词。
解释
ask(Q.nonzero(x))
是真的吗x
是真实的而且x
不是零。请特别注意Q.nonzero(x)
如果x
不是真的。使用~Q.zero(x)
如果你想在没有任何实际假设的情况下否定为零。关于非零数的几个重要事实:
Q.nonzero
逻辑上等价于Q.positive | Q.negative
.- See the documentation of
Q.real
for more information about related facts.
- See the documentation of
实例
>>> from sympy import Q, ask, symbols, I, oo >>> x = symbols('x') >>> print(ask(Q.nonzero(x), ~Q.zero(x))) None >>> ask(Q.nonzero(x), Q.positive(x)) True >>> ask(Q.nonzero(x), Q.zero(x)) False >>> ask(Q.nonzero(0)) False >>> ask(Q.nonzero(I)) False >>> ask(~Q.zero(I)) True >>> ask(Q.nonzero(oo)) False
Handler
Multiply dispatched method: NonZeroHandler
Handler for key 'nonzero'. Test that an expression is not identically zero.
- handler = <dispatched NonZeroHandler>#
- class sympy.assumptions.predicates.order.NonPositivePredicate(*args, **kwargs)[源代码]#
非正实数谓词。
解释
ask(Q.nonpositive(x))
是真的吗x
属于包含零的负数集合。- Note that
Q.nonpositive
and~Q.positive
are not the same thing.
~Q.positive(x)
simply means thatx
is not positive, whereasQ.nonpositive(x)
means thatx
is real and not positive, i.e.,Q.nonpositive(x)
is logically equivalent to \(Q.negative(x) | Q.zero(x)`\). So for example,~Q.positive(I)
is true, whereasQ.nonpositive(I)
is false.
- Note that
实例
>>> from sympy import Q, ask, I
>>> ask(Q.nonpositive(-1)) True >>> ask(Q.nonpositive(0)) True >>> ask(Q.nonpositive(1)) False >>> ask(Q.nonpositive(I)) False >>> ask(Q.nonpositive(-I)) False
Handler
Multiply dispatched method: NonPositiveHandler
Handler for key 'nonpositive'.
- handler = <dispatched NonPositiveHandler>#
- class sympy.assumptions.predicates.order.NonNegativePredicate(*args, **kwargs)[源代码]#
非负实数谓词。
解释
ask(Q.nonnegative(x))
是真的吗x
属于包含零的正数集合。- Note that
Q.nonnegative
and~Q.negative
are not the same thing.
~Q.negative(x)
simply means thatx
is not negative, whereasQ.nonnegative(x)
means thatx
is real and not negative, i.e.,Q.nonnegative(x)
is logically equivalent toQ.zero(x) | Q.positive(x)
. So for example,~Q.negative(I)
is true, whereasQ.nonnegative(I)
is false.
- Note that
实例
>>> from sympy import Q, ask, I >>> ask(Q.nonnegative(1)) True >>> ask(Q.nonnegative(0)) True >>> ask(Q.nonnegative(-1)) False >>> ask(Q.nonnegative(I)) False >>> ask(Q.nonnegative(-I)) False
Handler
Multiply dispatched method: NonNegativeHandler
Handler for Q.nonnegative.
- handler = <dispatched NonNegativeHandler>#
集合#
- class sympy.assumptions.predicates.sets.IntegerPredicate(*args, **kwargs)[源代码]#
整数谓词。
解释
Q.integer(x)
是真的吗x
属于整数集。实例
>>> from sympy import Q, ask, S >>> ask(Q.integer(5)) True >>> ask(Q.integer(S(1)/2)) False
Handler
Multiply dispatched method: IntegerHandler
Handler for Q.integer.
Test that an expression belongs to the field of integer numbers.
工具书类
- handler = <dispatched IntegerHandler>#
- class sympy.assumptions.predicates.sets.RationalPredicate(*args, **kwargs)[源代码]#
有理数谓词。
解释
Q.rational(x)
是真的吗x
属于有理数集合。实例
>>> from sympy import ask, Q, pi, S >>> ask(Q.rational(0)) True >>> ask(Q.rational(S(1)/2)) True >>> ask(Q.rational(pi)) False
Handler
Multiply dispatched method: RationalHandler
Handler for Q.rational.
Test that an expression belongs to the field of rational numbers.
工具书类
- handler = <dispatched RationalHandler>#
- class sympy.assumptions.predicates.sets.IrrationalPredicate(*args, **kwargs)[源代码]#
无理数谓词。
解释
Q.irrational(x)
是真的吗x
不能用整数比率表示的任何实数。实例
>>> from sympy import ask, Q, pi, S, I >>> ask(Q.irrational(0)) False >>> ask(Q.irrational(S(1)/2)) False >>> ask(Q.irrational(pi)) True >>> ask(Q.irrational(I)) False
Handler
Multiply dispatched method: IrrationalHandler
Handler for Q.irrational.
Test that an expression is irrational numbers.
工具书类
- handler = <dispatched IrrationalHandler>#
- class sympy.assumptions.predicates.sets.RealPredicate(*args, **kwargs)[源代码]#
实数谓词。
解释
Q.real(x)
是真的吗x
是一个实数,也就是说,它在区间内 \((-\infty, \infty)\) . 请注意,尤其是无穷大不是真的。使用Q.extended_real
如果你还想考虑这些。关于reals的几个重要事实:
- Every real number is positive, negative, or zero. Furthermore,
because these sets are pairwise disjoint, each real number is exactly one of those three.
每个实数也是复杂的。
每个实数都是有限的。
每个实数要么有理,要么无理。
每个实数要么是代数的,要么是超越的。
- The facts
Q.negative
,Q.zero
,Q.positive
, Q.nonnegative
,Q.nonpositive
,Q.nonzero
,Q.integer
,Q.rational
, andQ.irrational
all implyQ.real
, as do all facts that imply those facts.
- The facts
- The facts
Q.algebraic
, andQ.transcendental
do not imply Q.real
; they implyQ.complex
. An algebraic or transcendental number may or may not be real.
- The facts
- The "non" facts (i.e.,
Q.nonnegative
,Q.nonzero
, Q.nonpositive
andQ.noninteger
) are not equivalent to not the fact, but rather, not the fact andQ.real
. For example,Q.nonnegative
means~Q.negative & Q.real
. So for example,I
is not nonnegative, nonzero, or nonpositive.
- The "non" facts (i.e.,
实例
>>> from sympy import Q, ask, symbols >>> x = symbols('x') >>> ask(Q.real(x), Q.positive(x)) True >>> ask(Q.real(0)) True
Handler
Multiply dispatched method: RealHandler
Handler for Q.real.
Test that an expression belongs to the field of real numbers.
工具书类
- handler = <dispatched RealHandler>#
- class sympy.assumptions.predicates.sets.ExtendedRealPredicate(*args, **kwargs)[源代码]#
扩展实谓词。
解释
Q.extended_real(x)
是真的吗x
是实数还是 \(\{{-\infty, \infty\}}\) .参见文档
Q.real
有关相关事实的更多信息。实例
>>> from sympy import ask, Q, oo, I >>> ask(Q.extended_real(1)) True >>> ask(Q.extended_real(I)) False >>> ask(Q.extended_real(oo)) True
Handler
Multiply dispatched method: ExtendedRealHandler
Handler for Q.extended_real.
Test that an expression belongs to the field of extended real
numbers, that is real numbers union {Infinity, -Infinity}.
- handler = <dispatched ExtendedRealHandler>#
- class sympy.assumptions.predicates.sets.HermitianPredicate(*args, **kwargs)[源代码]#
厄米谓词。
解释
ask(Q.hermitian(x))
是真的吗x
属于Hermitian运算符集。Handler
Multiply dispatched method: HermitianHandler
Handler for Q.hermitian.
Test that an expression belongs to the field of Hermitian operators.
工具书类
- handler = <dispatched HermitianHandler>#
- class sympy.assumptions.predicates.sets.ComplexPredicate(*args, **kwargs)[源代码]#
复数谓词。
解释
Q.complex(x)
是真的吗x
属于复数集合。注意每个复数都是有限的。实例
>>> from sympy import Q, Symbol, ask, I, oo >>> x = Symbol('x') >>> ask(Q.complex(0)) True >>> ask(Q.complex(2 + 3*I)) True >>> ask(Q.complex(oo)) False
Handler
Multiply dispatched method: ComplexHandler
Handler for Q.complex.
Test that an expression belongs to the field of complex numbers.
工具书类
- handler = <dispatched ComplexHandler>#
- class sympy.assumptions.predicates.sets.ImaginaryPredicate(*args, **kwargs)[源代码]#
虚数谓词。
解释
Q.imaginary(x)
是真的吗x
可以写成实数乘以虚数单位I
. 请注意0
不被认为是虚数。实例
>>> from sympy import Q, ask, I >>> ask(Q.imaginary(3*I)) True >>> ask(Q.imaginary(2 + 3*I)) False >>> ask(Q.imaginary(0)) False
Handler
Multiply dispatched method: ImaginaryHandler
Handler for Q.imaginary.
Test that an expression belongs to the field of imaginary numbers,
that is, numbers in the form x*I, where x is real.
工具书类
- handler = <dispatched ImaginaryHandler>#
- class sympy.assumptions.predicates.sets.AntihermitianPredicate(*args, **kwargs)[源代码]#
反热谓词。
解释
Q.antihermitian(x)
是真的吗x
属于反热算符领域,即形式上的算符x*I
在哪里x
是赫米特人。Handler
Multiply dispatched method: AntiHermitianHandler
Handler for Q.antihermitian.
Test that an expression belongs to the field of anti-Hermitian
operators, that is, operators in the form x*I, where x is Hermitian.
工具书类
- handler = <dispatched AntiHermitianHandler>#
- class sympy.assumptions.predicates.sets.AlgebraicPredicate(*args, **kwargs)[源代码]#
代数数谓词。
解释
Q.algebraic(x)
是真的吗x
属于代数数的集合。x
是代数的如果在p(x)\in \mathbb\{{Q\}}[x]
这样的话p(x) = 0
.实例
>>> from sympy import ask, Q, sqrt, I, pi >>> ask(Q.algebraic(sqrt(2))) True >>> ask(Q.algebraic(I)) True >>> ask(Q.algebraic(pi)) False
Handler
Multiply dispatched method: AskAlgebraicpredicateHandler
Handler for key AskAlgebraicpredicateHandler
工具书类
- AlgebraicHandler = <dispatched AlgebraicHandler>#
- handler = <dispatched AskAlgebraicpredicateHandler>#