(1)变量定义
数学中常用x,y,z代表变量。
#!/usr/bin/python3
import sympy
x = sympy.Symbol("x")
(2)函数
函数的定义:一个变量的每个值通过某种变化关系后分别对应另一个变量的值,那么称后一个变量为前一个变量的函数,或称两变量之间有映射关系。
这里设“前一个变量”为x,“后一个变量”为y,则可记为
sympy中这样定义:
import sympy
x = sympy.Symbol('x')
fx = x**2+4 #()是python符号,不可使用在变量名中
gx = (sympy.sin(x))/(2**x+sympy.E**sympy.pi)
两个函数的真是面目是这样的:
(3)集合
函数的自变量和因变量的取值限于它们的域集内。
一般情况下,Python自带的集合只能有有限个元素,不能满足需要。
#Python集合函数
a = set() #空集合
b = set(1,3,5,1.2) #带数字的集合
c = set("a",0.12,False,51+3j,0x45568d5fa) #带有多种类型的集合,数学中一般不用
# ^ ^ ^ ^ ^
# 字符串 浮点数 布尔值 复数 十六进制数
#
常见的集合有实数集R,自然数集N,整数集Z等。这些在Sympy中自带。
from sympy import Naturals,Naturals0,Integers,Interval,Reals,pprint #pprint表示漂亮打印 pprint(Naturals) #自然数集 pprint(Naturals0) #正整数集 pprint(Integers) #整数集 pprint(Reals) #实数集 pprint(Naturals.contains(0)) #contains方法用于检测某集合是否包含某元素 pprint(Naturals0.contains(0)) #这里正整数集不包含0,所以输出False #结果 ℕ ℕ₀ ℤ ℝ False True
定义在实数上的区间一般用大写字母表示。但PEP要求我们变量要全小写。
from sympy import Interval,pprint set0 = Interval(-5,3) #闭区间,相当于[-5,3]. set1 = Interval(-5,3, left_open=True) #左开右闭区间,相当于(-5,3]. set2 = Interval(-5,3, right_open=True) #左闭右开区间,相当于[-5,3). set3 = Interval(-5,3, left_open=True,right_open=True) #开区间,相当于(-5,3). pprint(set0) pprint(set1) pprint(set2) pprint(set3)
输出结果:
[-5,3] (-5,3] [-5,3) (-5,3)
集合有很多种运算。
import sympy as s
A = s.FiniteSet(1,2) #FiniteSet生成有限个元素的集合
B = s.FiniteSet(2,3)
C = s.Union(A,B) #A∪B=C,并运算:两集之和,并集为两集中的元素,重复的不计.这时C=(1,3)
#另外的方法:C = A + B;C = A.union(B)
D = s.Intersection(A,B) #A∩B=D,交运算:两集的交集为两集中共有的元素。
#这时D={2}(只有一个元素)。
E = s.Complement(FiniteSet(1,2,3,4,5,6,7) , FiniteSet(2,3,5))
#补运算:一个集合减去另一个集合。如果减集合里有被减集合没有的元素,那么该元素对被减集合无影响。
#这时E = {1,4,6,7}
F = s.Powerset(FiniteSet(1,2))
#幂运算,即集合的所有子集构成的集族
G = A * B
#两集合的笛卡尔积



