sympy主要用于符号计算

1,基本操作

from sympy import*
#from sympy import pprint
#x=Symbol('x')#也可以这么单个定义
#y=Symbol('y')
x,y,i,n,t,k=symbols('x y i n t k')#注意空格,不是逗号!
z=Symbol('z')
print x+y+x-y
print ((x+y)**2).expand()#展开
print ((x+y)**2).subs(x,1)#subs(old,new)
print ((x+y)**2).subs(x,y)
print apart(1/((x+2)*(x+1)),x)#分离整式
print apart((x+1)/(x-1),x)
print together(1/x+1/y+1/z)#合并
print together(apart((x+1)/(x-1),x),x)

ans:

2*x
x**2 + 2*x*y + y**2
(y + 1)**2
4*y**2
-1/(x + 2) + 1/(x + 1)
1 + 2/(x - 1)
(x*y + x*z + y*z)/(x*y*z)
(x + 1)/(x - 1)

2.极限求解

#求极限limit(func,variable,point)

print limit(sin(x)/x,x,0)
print limit(x,x,oo)#oo表示无穷
print limit(1/x,x,oo)
print limit(x**x,x,0)

remark:oo表示无穷, 这里sin,cos,tan 可以直接这么用

ans:1 ,oo,  0,   1

3.微分

diff(func,variable)

高阶微分:diff(sin(2*x),x,2),2表示阶数

print diff(sin(x),x)
#print y
print diff(sin(2*x),x)
print diff(tan(x),x)
print limit((tan(x+y)-tan(x))/y,y,0)#验证上述微分
##高阶微分
print diff(sin(2*x),x,2) ans:
cos(x)
2*cos(2*x)
tan(x)**2 + 1
tan(x)**2 + 1
-4*sin(2*x)

4.级数展开

func.series(variable,a,b)从第a阶开始展开,10阶取不到!!

print cos(x).series(x,0,10)
print (1/cos(x)).series(x,0,10)
ans:
1 - x**2/2 + x**4/24 - x**6/720 + x**8/40320 + O(x**10)
1 + x**2/2 + 5*x**4/24 + 61*x**6/720 + 277*x**8/8064 + O(x**10)

补充:

#三角函数公式的展开
print sin(x+y).expand(trig=True)

ans:sin(x)*cos(y) + sin(y)*cos(x)

5.积分

#积分
print integrate(6*x**5,x)
print integrate(sin(x),x)
#定积分
print integrate(x**3,(x,-1,1))
print integrate(sin(x),(x,0,pi/2))
ans:
x**6
-cos(x)
0
1

6.求解代数方程 solve

print solve(x**4-1,x)
print solve([x+5*y-2,-3*x+6*y-15],[x,y]) ans:
[-1, 1, -I, I]
{x: -3, y: 1}

7.微分方程

f=Function('f')#注意要定义一下!!!
#f(x).diff(x,x)+f(x)
print dsolve(f(x).diff(x,x)+f(x),f(x))#什么意思??
print dsolve(f(x).diff(x,x)+1,f(x))
print dsolve(f(x).diff(x,x),f(x))
print dsolve(diff(f(x),x)-1,f(x))#这个意思好理解
#为什么与上式不同?
print dsolve(diff(f(x),x)+f(x),f(x))# ans:
Eq(f(x), C1*sin(x) + C2*cos(x))
Eq(f(x), C1 + C2*x - x**2/2)
Eq(f(x), C1 + C2*x)
Eq(f(x), C1 + x)
Eq(f(x), C1*exp(-x))

8.矩阵化简

a11,a12,a13,a22,a23,a33=symbols('a11 a12 a13 a22 a23 a33')
m=Matrix([[x,y,z]])
n=Matrix([[a11,a12,a13],[a12,a22,a23],[a13,a23,a33]])
v=Matrix([[x],[y],[z]])
f=m*n*v#二次型
print f
print f.subs({x:1,y:1,z:1})#其他方式做替换subs((x,y),(u,v))
print f.subs((x,y,z),(1,1,1))#is ok
#print f.subs([x,y,z],[1,1,1])#error!! ans:
Matrix([[x*(a11*x + a12*y + a13*z) + y*(a12*x + a22*y + a23*z) + z*(a13*x + a23*y + a33*z)]])
Matrix([[a11 + 2*a12 + 2*a13 + a22 + 2*a23 + a33]])
Matrix([[x*(a11*x + a12*y + a13*z) + y*(a12*x + a22*y + a23*z) + z*(a13*x + a23*y + a33*z)]])

9.级数求和

summation

print summation(2*i-1,(i,1,3))#1,3都会取到
print summation(1/2**i,(i,0,oo))
print summation(1/log(n)**n,(n,2,oo))#不能计算总和,将打印相应的求和公式
print summation(exp(x),(x,0,4))
print summation(I**t,(t,1,3))
print summation((x*t)**n/factorial(n),(n,0,oo))
print summation(log(n/k-1)*exp(I*t*k),(k,0,n)) ans:
9
2
Sum(log(n)**(-n), (n, 2, oo))
1 + E + exp(2) + exp(3) + exp(4)
-1
exp(t*x)
Sum(exp(I*k*t)*log(-1 + n/k), (k, 0, n))
1

python(7):sympy模块的更多相关文章

  1. python 内建模块与第三方模块

    *)datetime模块 包括时间.时间对象.时间戳.时区.时区的转换 参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/101764878 ...

  2. python的库有多少个?python有多少个模块?

    这里列举了大概500个左右的库: !   Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主 ...

  3. python之platform模块

    python之platform模块 ^_^第三个模块从天而降喽!! 函数列表 platform.system() 获取操作系统类型,windows.linux等 platform.platform() ...

  4. python之OS模块详解

    python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...

  5. python之sys模块详解

    python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...

  6. 学习PYTHON之路, DAY 6 - PYTHON 基础 6 (模块)

    一 安装,导入模块 安装: pip3 install 模块名称 导入: import module from module.xx.xx import xx from module.xx.xx impo ...

  7. linux下python调用c模块

    在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明:   (1)编写C代码,hel ...

  8. Python学习之模块进程函数详解

    今天在看<Beginning Linux Programming>中的进程相关部分,讲到Linux几个进程相关的系统函数: system , exec , fork ,wait . Pyt ...

  9. python基础——第三方模块

    python基础——第三方模块 在Python中,安装第三方模块,是通过包管理工具pip完成的.  如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了.  如果你正在使用Window ...

随机推荐

  1. IIS7配置Gzip压缩

    II7中自带了gzip功能,理论上应该比ii6配置起来应该简单一点,但是容易出的问题比较多.有的II7配置web服务器角色的时候可能没有安装启用动态内容压缩,所以这个钩子是灰色的,需要再次安装. 如图 ...

  2. LOJ #2013「SCOI2016」幸运数字

    时限为什么这么大啊 明摆着放多$ log$的做法过啊$QAQ$ LOJ #2013 题意 有$ Q$次询问,每次询问树上一条链,点有点权,你需要选择一些链上的点使得异或和尽量大 点数$ \leq 2* ...

  3. 【jquery隐藏、显示事件and提示callback】【淡入淡出fadeToggle】【滑入滑出slideToggle】【动画animate】【停止动画stop】

    1.jquery隐藏and显示事件 $("p").hide();      //隐藏事件$("p").hide(1000);  //1秒内缓慢隐藏$(" ...

  4. CF1108F MST Unification

    题目地址:CF1108F MST Unification 最小生成树kruskal算法的应用 只需要在算法上改一点点 当扫描到权值为 \(val\) 的边时,我们将所有权值为 \(val\) 的边分为 ...

  5. [Kubernetes]关于K8s,你应该知道的一些东西

    Kubernetes概述 Kubernetes(也常称K8s,用8代替8个字符"ubernete"而成的缩写),是一个开源的,用于管理云平台中多个主机上的容器化应用. 它的一个核心 ...

  6. k64 datasheet学习笔记12---System Integration Module (SIM)

    1.前言 Features of the SIM include: System clocking configuration(1)System clock divide values(2) Arch ...

  7. 华为QUIDWAY系列路由器的负载均衡配置

    作者:邓聪聪 华为系列路由器的负载均衡NQA联动侦测配置案例: 需求:该局域网,IP地址(末位奇数)走联通,IP地址(末位偶数)走电信当某个运营商不可达时,自动切换.通过NQA来确定运营商是否可达., ...

  8. python3+selenium入门01-环境搭建

    作为一个测试,在最近两年应该有明显的感觉.那就是工作变的难找,要求变的高了,自动化测试,性能测试等.没有自动化测试能力,只会点点点工作难找不说,工资也不高.所以还是要学习一些技术.首先要学习一门编程语 ...

  9. 使用Let's Encrypt为网站加入SSL证书

    一直没有为网站配置过HTTPS,因为怕麻烦.不过这次工作要求,没有办法,只能硬着头皮上了. 老板提供了一个关键字,Let's Encrypt.其实最早看到这句话,我以为是一个动词,让我行动的意思.但是 ...

  10. js 常用的工具函数

    1 类型判断 isString (o) { //是否字符串 return Object.prototype.toString.call(o).slice(8, -1) === 'String' } i ...