Sympy简单教程(3)

SymPy - 查询

SymPy中包含假设模块用于从表达式中提取信息. 此模块为此目的定义了 ask() 函数.

sympy.assumptions.ask(property)

下述性质对于一个表达式提供了有用的信息 −

代数数 algebraic(x)

所谓代数数, 必须是一个有理系数多项式的非零根. 因为\sqrt2是方程x^2-2=0的一个根, 因此√2 它是代数数.

复数 complex(x)

判断x是否是复数, 当且仅当x输入复平面时返回True.

合数 composite(x)

调用 ask(Q.composite(x)) 判断x是否合数(非素数), 返回 true 当且仅当 x 是一个正整数而且至少有一个不是1和自己之外的因数.

偶数 even, 奇数 odd

函数 ask() 返回True 如果 x 分别在偶数集合或者奇数集合之内.

纯虚数 imaginary

这个性质进行虚数推断. 如果是一个实数和虚数单位I相乘则返回 true.

整数 integer

Q.integer(x) 返回 true 如果 x 属于整数集合.

有理数 rational, 无理数 irrational

Q.irrational(x) 返回 true 当且仅当 x 是实数而且不能表示为两个整数的比值. 例如, \pi 是一个无理数.

正数 positive, 负数 negative

判断一个数是正或者负. 注意0既不是正也不是负.

零 zero, 非零 nonzero

判断一个数是0或者非零

>>> 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))
(T
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值