基础

from sympy import *

数学格式输出:

init_printing()

添加变量:

x, y, z, a, b, c = symbols('x y z a b c')

声明分数:

Rational(1, 3)

\(\displaystyle \frac{1}{3}\)

化简式子:

simplify((x**3 + x**2 - x - 1)/(x**2 + 2*x + 1))

\(\displaystyle x - 1\)

因式分解:

expand((x + 2)*(x - 3))

\(\displaystyle x^{2} - x - 6\)

提取公因式:

factor(x**3 - x**2 + x - 1)

\(\displaystyle \left(x - 1\right) \left(x^{2} + 1\right)\)

约分:

cancel((x**2 + 2*x + 1)/(x**2 + x))

\(\displaystyle \frac{x + 1}{x}\)

裂项:

apart((4*x**3 + 21*x**2 + 10*x + 12)/(x**4 + 5*x**3 + 5*x**2 + 4*x))

\(\displaystyle \frac{2 x - 1}{x^{2} + x + 1} - \frac{1}{x + 4} + \frac{3}{x}\)

变换形式:

tan(x).rewrite(sin)

\(\displaystyle \frac{2 \sin^{2}{\left(x \right)}}{\sin{\left(2 x \right)}}\)

数列求和:

Sum(x ** 2, (x, 1, a)).doit()

\(\displaystyle \frac{a^{3}}{3} + \frac{a^{2}}{2} + \frac{a}{6}\)

数列求积:

Product(x**2,(x, 1, a)).doit()

\(\displaystyle a!^{2}\)

微积分

求导:

diff(cos(x), x)

\(\displaystyle - \sin{\left(x \right)}\)

求高阶导:

diff(x**4, x, 3)

\(\displaystyle 24 x\)

连续求偏导:

diff(exp(x*y*z), x, y, 2, z, 4)

\(\displaystyle x^{3} y^{2} \left(x^{3} y^{3} z^{3} + 14 x^{2} y^{2} z^{2} + 52 x y z + 48\right) e^{x y z}\)

不定积分:

integrate(cos(x), x)

\(\displaystyle \sin{\left(x \right)}\)

定积分:

integrate(exp(-x), (x, 0, oo))

\(\displaystyle 1\)

多重积分:

integrate(exp(-x**2 - y**2), (x, -oo, oo), (y, -oo, oo))

\(\displaystyle \pi\)

极限:

limit(sin(x)/x, x, 0)

\(\displaystyle 1\)

泰勒展开(到第4阶):

sin(x).series(x, 0, 4)

\(\displaystyle x - \frac{x^{3}}{6} + O\left(x^{4}\right)\)

泰勒展开(在x=6处):

exp(x - 6).series(x, 6)

\(\displaystyle -5 + \frac{\left(x - 6\right)^{2}}{2} + \frac{\left(x - 6\right)^{3}}{6} + \frac{\left(x - 6\right)^{4}}{24} + \frac{\left(x - 6\right)^{5}}{120} + x + O\left(\left(x - 6\right)^{6}; x\rightarrow 6\right)\)

矩阵

矩阵求逆:

Matrix([[1, 3], [-2, 3]])**-1

\(\displaystyle \left[\begin{matrix}\frac{1}{3} & - \frac{1}{3}\\\frac{2}{9} & \frac{1}{9}\end{matrix}\right]\)

求转置:

Matrix([[1, 2, 3], [4, 5, 6]]).T

\(\displaystyle \left[\begin{matrix}1 & 4\\2 & 5\\3 & 6\end{matrix}\right]\)

生成单位矩阵:

eye(3)

\(\displaystyle \left[\begin{matrix}1 & 0 & 0\\0 & 1 & 0\\0 & 0 & 1\end{matrix}\right]\)

求行列式:

Matrix([[1, 0, 1], [2, -1, 3], [4, 3, 2]]).det()

\(\displaystyle -1\)

化成行阶梯形矩阵:

Matrix([[1, 0, 1, 3], [2, 3, 4, 7], [-1, -3, -3, -4]]).rref()

\(\displaystyle \left( \left[\begin{matrix}1 & 0 & 1 & 3\\0 & 1 & \frac{2}{3} & \frac{1}{3}\\0 & 0 & 0 & 0\end{matrix}\right], \ \left( 0, \ 1\right)\right)\)

求列向量空间:

Matrix([[1, 1, 2], [2 ,1 , 3], [3 , 1, 4]]).columnspace()

\(\displaystyle \left[ \left[\begin{matrix}1\\2\\3\end{matrix}\right], \ \left[\begin{matrix}1\\1\\1\end{matrix}\right]\right]\)

M = Matrix([[3, -2,  4, -2], [5,  3, -3, -2], [5, -2,  2, -2], [5, -2, -3,  3]])

求特征值:

M.eigenvals()

\(\displaystyle \left\{ -2 : 1, \ 3 : 1, \ 5 : 2\right\}\)

求特征向量:

M.eigenvects()

\(\displaystyle \left[ \left( -2, \ 1, \ \left[ \left[\begin{matrix}0\\1\\1\\1\end{matrix}\right]\right]\right), \ \left( 3, \ 1, \ \left[ \left[\begin{matrix}1\\1\\1\\1\end{matrix}\right]\right]\right), \ \left( 5, \ 2, \ \left[ \left[\begin{matrix}1\\1\\1\\0\end{matrix}\right], \ \left[\begin{matrix}0\\-1\\0\\1\end{matrix}\right]\right]\right)\right]\)

求对角化矩阵,返回两个矩阵P、D满足\(PDP^{-1}=M\):

M.diagonalize()

\(\displaystyle \left( \left[\begin{matrix}0 & 1 & 1 & 0\\1 & 1 & 1 & -1\\1 & 1 & 1 & 0\\1 & 1 & 0 & 1\end{matrix}\right], \ \left[\begin{matrix}-2 & 0 & 0 & 0\\0 & 3 & 0 & 0\\0 & 0 & 5 & 0\\0 & 0 & 0 & 5\end{matrix}\right]\right)\)

解方程

求解集:

solveset(x**2 - x, x)

\(\displaystyle \left\{0, 1\right\}\)

求解集(显示多少个重根):

roots(x**3 - 6*x**2 + 9*x, x)

\(\displaystyle \left\{ 0 : 1, \ 3 : 2\right\}\)

求解集(用Eq构造等式):

solveset(Eq(sin(x), 1), x, domain=S.Reals)

\(\displaystyle \left\{2 n \pi + \frac{\pi}{2}\; |\; n \in \mathbb{Z}\right\}\)

解线性方程组:

linsolve([x + y + z - 1, x + y + 2*z - 3 ], (x, y, z))

\(\displaystyle \left\{\left( - y - 1, \ y, \ 2\right)\right\}\)

解线性方程组(矩阵表示):

linsolve(Matrix(([1, 1, 1, 1], [1, 1, 2, 3])), (x, y, z))

\(\displaystyle \left\{\left( - y - 1, \ y, \ 2\right)\right\}\)

解非线性方程组:

nonlinsolve([exp(x) - sin(y), 1/y - 3], [x, y])

\(\displaystyle \left\{\left( \log{\left(\sin{\left(\frac{1}{3} \right)} \right)}, \ \frac{1}{3}\right), \left( \left\{2 n i \pi + \left(\log{\left(\sin{\left(\frac{1}{3} \right)} \right)}\bmod{2 i \pi}\right)\; |\; n \in \mathbb{Z}\right\}, \ \frac{1}{3}\right)\right\}\)

解微分方程:

f, g = symbols('f g', cls=Function)
dsolve(Eq(f(x).diff(x, x) - 2*f(x).diff(x) + f(x), sin(x)), f(x))

\(\displaystyle f{\left(x \right)} = \left(C_{1} + C_{2} x\right) e^{x} + \frac{\cos{\left(x \right)}}{2}\)

解不等式组:

from sympy.solvers.inequalities import *
reduce_inequalities([x <= x ** 2], [x])

\(\displaystyle \left(1 \leq x \wedge x < \infty\right) \vee \left(x \leq 0 \wedge -\infty < x\right)\)

逻辑代数

from sympy.logic.boolalg import *

合取范式:

to_cnf(~(x | y) | z)

\(\displaystyle \left(z \vee \neg x\right) \wedge \left(z \vee \neg y\right)\)

析取范式:

to_dnf(x & (y | z))

\(\displaystyle \left(x \wedge y\right) \vee \left(x \wedge z\right)\)

化简逻辑函数:

simplify_logic((~x & ~y & ~z) | ( ~x & ~y & z))

\(\displaystyle \neg x \wedge \neg y\)

from sympy.logic import *

化简最小项之和为析取范式

minterms = [0, 7]
SOPform([x, y, z], minterms)

\(\displaystyle \left(x \wedge y \wedge z\right) \vee \left(\neg x \wedge \neg y \wedge \neg z\right)\)

化简最小项之和为合取范式

minterms = [[1, 0, 1], [1, 1, 0], [1, 1, 1]]
POSform([x, y, z], minterms)

\(\displaystyle x \wedge \left(y \vee z\right)\)

化简最小项之和为析取范式(第7项任取)

minterms = [[1, 0, 1], [1, 1, 0]]
dontcares = [7]
SOPform([x, y, z], minterms, dontcares)

\(\displaystyle \left(x \wedge y\right) \vee \left(x \wedge z\right)\)

数论

from sympy.ntheory import *

阶乘:

factorial(10)

\(\displaystyle 3628800\)

分解质因数:

factorint(300)

\(\displaystyle \left\{ 2 : 2, \ 3 : 1, \ 5 : 2\right\}\)

factorint(300, visual=True)

\(\displaystyle 2^{2} \cdot 3^{1} \cdot 5^{2}\)

求欧拉函数:

totient(25)

\(\displaystyle 20\)

判断质数:

isprime(101)
True

莫比乌斯函数:

mobius(13 * 17 * 5)

\(\displaystyle -1\)

乘法逆元(模后者意义):

mod_inverse(3, 5)

\(\displaystyle 2\)

from sympy.ntheory.factor_ import *

求因子:

divisors(36)

\(\displaystyle \left[ 1, \ 2, \ 3, \ 4, \ 6, \ 9, \ 12, \ 18, \ 36\right]\)

from sympy.ntheory.modular import *

中国剩余定理解同余方程(模数需互质,前三个数为模数,后三个数为余数,返回第一个数为结果):

crt([99, 97, 95], [49, 76, 65])

\(\displaystyle \left( 639985, \ 912285\right)\)

解同余方程(模数不需互质但比中国剩余定理慢,每个元组第一个数为余数,第二个数为模数,返回第一个数为结果):

solve_congruence((2, 3), (3, 5), (2, 7))

\(\displaystyle \left( 23, \ 105\right)\)

from sympy.ntheory.residue_ntheory import *

求原根(如下2在模19意义下的所有幂占满了0到18):

primitive_root(19)

\(\displaystyle 2\)

求离散对数(如下\(7^3 mod 15 = 41\)):

discrete_log(41, 15, 7)

\(\displaystyle 3\)

Sympy常用函数总结的更多相关文章

  1. oracle常用函数及示例

    学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函 ...

  2. 总结js常用函数和常用技巧(持续更新)

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  3. [转]SQL 常用函数及示例

    原文地址:http://www.cnblogs.com/canyangfeixue/archive/2013/07/21/3203588.html --SQL 基础-->常用函数 --===== ...

  4. PHP常用函数、数组方法

    常用函数:rand(); 生成随机数rand(0,50); 范围随机数时间:time(); 取当前时间戳date("Y-m-d H:i:s"); Y:年 m:月份 d:天 H:当前 ...

  5. Oracle常用函数

    前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使 ...

  6. Thinkcmf:页面常用函数

    Thinkcmf:页面常用函数 全站seo: 文章列表: {$site_seo_title}        <!--SEO标题--> {$site_seo_keywords}   < ...

  7. matlab进阶:常用功能的实现,常用函数的说明

    常用功能的实现 获取当前脚本所在目录 current_script_dir = fileparts(mfilename('fullpath')); % 结尾不带'/' 常用函数的说明 bsxfun m ...

  8. iOS导航控制器常用函数与navigationBar常用属性

    导航控制器常用函数触发时机 当视图控制器的View将要出现时触发 - (void)viewWillAppear:(BOOL)animated 当视图控制器的View已经出现时触发 - (void)vi ...

  9. 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册

    <zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...

随机推荐

  1. TensorFlow从0到1之常量、变量和占位符详解(6)

    最基本的 TensorFlow 提供了一个库来定义和执行对张量的各种数学运算.张量,可理解为一个 n 维矩阵,所有类型的数据,包括标量.矢量和矩阵等都是特殊类型的张量.   TensorFlow 支持 ...

  2. GestureDetector手势检测

    Android手势检测器GestureDetector,要创建一个GestureDetector需要传入一个监听器GestureDetector.OnGestureListener. 案例(实现手机相 ...

  3. ImportError: cannot import name _remove_dead_weakref

    出现这个错误, 和python环境有关. 电脑有多个版本造成的. python3 有这个_remove_dead_weakref python 2.7.10 并没有_remove_dead_weakr ...

  4. 研为电子6轴运动控制卡win10驱动无法安装问题,解决方法

    研为电子6轴运动控制卡win10驱动无法安装问题,解决方法 研为电子6轴运动控制卡win10驱动无法安装问题,解决方法 iMC3xx2E系列运动控制卡使用手册V1.003 IMCdrv_Ins.exe ...

  5. WeChair项目Beta冲刺(10/10)

    团队项目进行情况 1.昨日进展    Beta冲刺第十天 昨日进展: 项目完工 2.今日安排 对小程序进行测试,同时对项目进行总结,并整理博客材料等 3.燃尽图 4.展示Git当日代码记录    详情 ...

  6. AOP的概念

    1.1 什么是AOP? 软件开发一直在寻求更加高效.更易维护甚至更易扩展的方式.软件开发的目的,最终是为了解决各种需求,包括业务需求和系统需求.使用面向对象方法,我们可以对业务需求等普通关注点进行很好 ...

  7. ora-06502 ORA-06512问题解决

    Plsql报错:ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小  ORA-06512:等 这里网上常见解决方案是加大变量长度,但是我发现加大长度也没什么用,实际问题出在变量赋值上 例 ...

  8. EnvironmentPostProcessor

    概览 SpringBoot支持动态的读取文件,留下的扩展接口 org.springframework.boot.env.EnvironmentPostProcessor,进行配置文件的集中管理,从而避 ...

  9. Python 简明教程 --- 11,Python 元组

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 软件工程的目标是控制复杂度,而不是增加复杂性. -- Dr. Pamela Zave 目录 我们在上 ...

  10. 线性dp 打鼹鼠

    鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个n*n 的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气.你可以控 ...