5.4Python数据处理篇之Sympy系列(四)---微积分
目录
前言
今天讲的是,有关sympy的微积分部分的知识。
对应官网的知识:Calculus
(一)求导数-diff()
1.一阶求导-diff()
(1)说明:
语法是:diff(expr,x)
(2)源代码:
from sympy import *
# 初始化
x = symbols('x')
# 表达式
expr1 = cos(x)
expr2 = exp(x**2)
# 求导
r1 = diff(expr1, x)
r2 = diff(expr2, x)
print("r1:", r1)
print("r2:", r2)
(3)输出:
\(\cos(x)\) --> \(-\sin(x)\)
\(e^{x^2}\) --> \(2xe^{x^2}\)

2.多阶求导-diff()
(1)说明:
多阶求导同样的使用diff(),其有两种形式
- 带参数中,添加几个x,就是对x的几次求导。diff(expr, x, x,x……)
- 用数字来控制所求的阶数:diff(expr, x, n)
(2)源代码:
from sympy import *
# 初始化
x = symbols('x')
# 表达式
expr1 = x**4
# 第一种形式多阶求导
r1 = diff(expr1, x)
r2 = diff(expr1, x, x)
r3 = diff(expr1, x, x, x)
print("="*30)
print(r1)
print(r2)
print(r3)
# 第二种形式多阶求导
r4 = diff(expr1, x, 1)
r5 = diff(expr1, x, 2)
r6 = diff(expr1, x, 3)
print("="*30)
print(r4)
print(r5)
print(r6)
(3)输出:
\(x^4\) --> \(24x\)

3.求偏导数-diff()
(1)说明:
diff()也可以单独对一个变量求导,这便是偏导数。
(2)源代码:
from sympy import *
# 初始化
x, y, z = symbols('x y z')
# 表达式
expr1 = exp(x*y*z)
# 求导
r1 = diff(expr1, x, y, y, z, z, z, z)
r2 = diff(expr1, x, 1, y, 2, z, 4)
print("r1:", r1)
print("r2:", r2)
print(latex(r1))
print(latex(r2))
(3)输出:
\(e^{xyz}\) --> \(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()
(1)说明:
求积分有三种形式,并且都用的是integrate()方法
- 求不定积分:integrate(expr, var)
- 求定积分:integrate(expr, (var, min, max))
- 求多重积分:integrate(expr, (var1, min, max),(var2,min,max))
(2)源代码:
from sympy import *
# 初始化
x, y = symbols('x y')
# 表达式
expr1 = cos(x)
expr2 = exp(-x)
expr3 = exp(-x**2-y**2)
# 求不定积分
r1 = integrate(expr1, x)
# 求定积分
r2 = integrate(expr2, (x, 0, oo))
# 求多重积分
r3 = integrate(expr3, (x, -oo, oo), (y, -oo, oo))
print("r1:", r1)
print("r2:", r2)
print("r3:", r3)
(3)输出:
\(\cos{\left (x \right )}\)-->\(\sin{\left (x \right )}\)
\(\int_{0}^\infty{e^{- x}dx}\)-->\(1\)
\(\int_{-\infty}^\infty \int_{-\infty}^\infty e^{- x^{2} - y^{2}}dxdy\)-->\(\pi\)

(三)求极限-limit()
(1)说明:
求极限使用limit(),其有下两种使用方法:
- 趋进某个点的极限:limit(expr, var, doit)
- 从侧边趋进某个值的极限:limit(expr, var,doit, "+") (左侧趋进同理)
注:sympy里,不可以使用无穷的趋进。
(2)源代码:
from sympy import *
# 初始化
x = symbols('x')
# 表达式
expr1 = sin(x)/x
expr2 = 1/x
# 求趋于某个值的极限
r1 = limit(expr1, x, 0)
# 正向趋进
r2 = limit(expr2, x, 0, '+')
# 负向趋进
r3 = limit(expr2, x, 0, '-')
print(r1)
print(r2)
print(r3)
(3)输出:
\(\lim_{x \to 0}\sin(x)/x\)-->\(1\)
\(\lim_{x \to 0^+}\)-->\(\infty\)
\(\lim_{x \to 0^-}\)-->\(-\infty\)

(四)级数展开-series()
1.说明:
级数展开请使用:series(expr, x0, xn),使用.removeO()去除尾数。
2.源代码:
from sympy import *
# 初始化
x = symbols('x')
# 表达式
expr1 = exp(sin(x))
# 级数展开
r1 = expr1.series(x, 0, 6)
# 去除尾数
r2 = expr1.series(x, 0, 6).removeO()
print(r1)
print(r2)
3.输出:
\(e^{\sin(x)}\)-->\(1 + x + \frac{x^{2}}{2} - \frac{x^{4}}{8} - \frac{x^{5}}{15} + O\left(x^{6}\right)\)
\(e^{\sin(x)}\)-->\(- \frac{x^{5}}{15} - \frac{x^{4}}{8} + \frac{x^{2}}{2} + x + 1\)

作者:Mark
日期:2019/03/17 周日
5.4Python数据处理篇之Sympy系列(四)---微积分的更多相关文章
- 4.4Python数据处理篇之Matplotlib系列(四)---plt.bar()与plt.barh条形图
目录 目录 前言 (一)竖值条形图 (二)水平条形图 1.使用bar()绘制: 2.使用barh()绘制: (三)复杂的条形图 1.并列条形图: 2.叠加条形图: 3.添加图例于数据标签的条形图: 目 ...
- 3.4Python数据处理篇之Numpy系列(四)---ndarray 数组的运算
目录 目录 (一)数组与标量的运算 1.说明: 2.实例: (二)元素级的运算(一元函数) 1.说明: 2.实例: (三)数组级的运算(二元函数) 1.说明: 2.实例: 目录 1.数组与标量的运算 ...
- 5.6Python数据处理篇之Sympy系列(六)---矩阵的操作
目录 目录 前言 (一)矩阵的创建-Matrix() 1.说明: 2.源代码: 3.输出: (二)常用的构造矩阵 1.说明: 2.源代码: 3.输出: (三)基本操作 1.说明: 2.源代码: 3.输 ...
- 5.5Python数据处理篇之Sympy系列(五)---解方程
目录 目录 前言 (一)求解多元一次方程-solve() 1.说明: 2.源代码: 3.输出: (二)解线性方程组-linsolve() 1.说明: 2.源代码: 3.输出: (三)解非线性方程组-n ...
- 5.3Python数据处理篇之Sympy系列(三)---简化操作
目录 5.3简化操作 目录 前言 (一)有理数与多项式的简化 1.最简化-simplify() 2.展开-expand() 3.提公因式-factor() 4.合并同类项-ceiling() 5.简化 ...
- 5.2Python数据处理篇之Sympy系列(二)---Sympy的基本操作
目录 目录 前言 (一)符号的初始化与输出设置-symbol() symbols() latex() 1.作用: 2.操作: (二)替换符号-subs(old,new) 1.说明: 2.源代码: 3. ...
- 5.1Python数据处理篇之Sympy系列(一)---Sympy的大体认识
目录 目录 前言 目录 前言 sympy是python一个强大的数学符号运算第三方库,具体的功能请看下面操作 官网教程: https://docs.sympy.org/latest/tutorial/ ...
- 4.14Python数据处理篇之Matplotlib系列(十四)---动态图的绘制
目录 目录 前言 (一)需求分析 (二)随机数的动态图 1.思路分析: 2.源代码: 2.输出效果: 目录 前言 学习matplotlib已经到了尾声,没有必要再继续深究下去了,现今只是学了一些基础的 ...
- 4.13Python数据处理篇之Matplotlib系列(十三)---轴的设置
目录 目录 前言 (一)设置轴的范围 1.同时对于x,y轴设置 2.分别对与x,y轴的设置 (二)设置刻度的大小 1.普通的刻度设置 2.添加文本的刻度设置 3.主副刻度的设置 (三)设置轴的数据 1 ...
随机推荐
- java算法(1)---余弦相似度计算字符串相似率
余弦相似度计算字符串相似率 功能需求:最近在做通过爬虫技术去爬取各大相关网站的新闻,储存到公司数据中.这里面就有一个技术点,就是如何保证你已爬取的新闻,再有相似的新闻 或者一样的新闻,那就不存储到数据 ...
- Can't connect to X11 window server using ':1.0' as the value of the DISPLAY variable.
安装oracle数据时需要用到图形界面安装,当我们用root用户登录后切换到oracle用户时运行./runInstaller提示报错: Can't connect to X11 window ser ...
- Jquery.ajax dataType参数
dataType 类型:String 预期服务器返回的数据类型.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML.在 1.4 ...
- Ocelot统一权限验证
Ocelot作为网关,可以用来作统一验证,接上一篇博客,我们继续 前一篇,我们创建了OcelotGateway网关项目,DemoAAPI项目,DemoBAPI项目,为了验证用户并分发Token,现在还 ...
- Python爬虫入门教程 4-100 美空网未登录图片爬取
美空网未登录图片----简介 上一篇写的时间有点长了,接下来继续把美空网的爬虫写完,这套教程中编写的爬虫在实际的工作中可能并不能给你增加多少有价值的技术点,因为它只是一套入门的教程,老鸟你自动绕过就可 ...
- 小技巧,把Markdown文本发布到微信公众号文章
估计很多人都是这样,平常工作在github,等到有成果要发布,又要写微信公众号. github用Markdown,微信公众号,至少截止今天,还是沿用富文本的方式.不是说富文本不好,但每次精心撰写的内容 ...
- HotSpot虚拟机对象相关内容
一.对象的创建 1.类加载检查 普通对象的创建过程:虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载.解析和初始化 ...
- Typora - Markdown 语法说明
Typora 是 Windows 下最好的 Markdown 编辑器!不接受反驳~ 导图 快捷键标题:Ctrl + 数字 Ctrl + 123456 代表 H1-H6 级标题Ctrl + 0 恢复普通 ...
- 【Java资源免费分享,网盘自己拿】
JavaSE: Java马士兵:链接:https://pan.baidu.com/s/1jJRvxGi密码:v3xb Java毕向东:链接:https://pan.baidu.com/s/1ggzHk ...
- leetcode — same-tree
import java.util.Stack; /** * Source : https://oj.leetcode.com/problems/same-tree/ * * * Given two b ...