一个问题
>>> x = symbols('x') >>> expr = x + 1 >>> x = 2 >>> print(expr) x + 1 #SymPy有自己的变量,通过symbols函数将Python变量名与自己的变量名相关联,因此x = 2只是将Python变量x与2关联,不影响SymPy的内部变量举个例子: >>> a,b = symbols('b a')#将python变量a,b与内部变量b,a相关联 >>> a b >>> b a >>> expr.subs(x, 2) #subs函数对变量进行赋值并计算 3
关于等号
>>> x + 1 == 4 #对这个表达式进行了比较运算 False >>> Eq(x + 1, 4) #Eq函数保留了式子的原型 Eq(x + 1, 4) >>> (x + 1)**2 == x**2 + 2*x + 1 #二者结构并不相等 False >>> a = (x + 1)**2 >>> b = x**2 + 2*x + 1 >>> c = x**2 - 2*x + 1 >>> a.equals(b) #用equals判断相等 True >>> a-c 2 2 - x + 2⋅x + (x + 1) - 1 >>> simplify(a - c) #用simplify进行化简 4*x
^ and /
#与Python一样^进行异或运算 >>> True ^ False True >>> True ^ True False >>> x^y Xor(x, y) >>> Integer(1)/Integer(3) #SymPy内置整数Integer 1/3 >>> x + 1/2 #先对1/2进行了数学计算,再与SymPy变量x相加 x + 0.5 >>> x + Rational(1, 2) #都是SymPy变量 x + 1/2