栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python微积分:轻松使用Sympy(1)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python微积分:轻松使用Sympy(1)

(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
#两集合的笛卡尔积

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/488473.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号