目录
[TOC]
前言
今天讲的是,有关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)输出:
-->
-->

01.png
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)输出:
-->

02.png
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)输出:
-->

03.png
(二)求积分-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)输出:
-->
-->
-->

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

05.png
(四)级数展开-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.输出:
-->
-->

06.png
作者:Mark
日期:2019/03/17 周日
文章转载于:https://www.jianshu.com/p/3177adb0ecc9
原著是一个有趣的人,若有侵权,请通知删除
还没有人抢沙发呢~