Sympyで2つの数値が等しいか評価する

SympyのEq関数で2つの数値を比較する

Sympyで値が等しいかどうかEq関数を使い評価します。

import sympy
import math
display(sympy.Eq(1,2))
display(sympy.Eq(1,2,evaluate=False))
display(sympy.Eq(1+1,2))
display(sympy.Eq(1+1,2,evaluate=False))
display(sympy.Eq(math.sqrt(2),2**0.5))
display(sympy.Eq(math.sqrt(2),2**0.5,evaluate=False))
False 
1=2
True
2=2
True
1.4142135623731=1.4142135623731

3行目のようにEq関数で2つの数字を比較し、等しくないとFalseが返されます。これに対し、4行目のようにEq関数でevaluate=Falseとすると、正しいかどうかは判断せず、ありえないことに1=2を返します。5行目のように等しい場合は、Trueが返されます。ルート2については、7行目のように2の0.5乗として計算する方法とmathモジュールのsqrt関数を使う方法がありますが、Eq関数では等しいと判断します。

GreaterThan、LessThanで数値の大小を比較する

display(sympy.GreaterThan(1,2))
display(sympy.GreaterThan(2,1))
display(sympy.LessThan(1,2))
display(sympy.LessThan(2,1))
False 
True
True
False

GreaterThan関数は左側が大きいか、LessThan関数は左側が小さいかを調べます。

この記事を書いた人

目次
閉じる