【sympy】用python的库 sympy 求导数

d i f f ( f , x ) diff(f, x) diff(f,x)求导数可引入求微分方程

sympy 求微分方程.(点击可跳转)

1.一阶导数

基本格式

print(diff(f, x)) 
# f为所求导函数,x为对x进行求导

例:求该函数的导数
f ( x ) = c o s ( x ) f(x)=cos(x) f(x)=cos(x)

程序,如下

from sympy import *
x = symbols('x')
print(diff(cos(x), x))
结果:-sin(x)

  ~  

2.二阶导数

例:求该函数的二阶导数
f ( x ) = c o s 2 ( x ) f(x)=cos^{2}(x) f(x)=cos2(x)

程序,如下

from sympy import *
x = symbols('x')
print(diff(cos(x), x, 2)) # or print(diff(cos(x), x, x))
结果:-cos(x)

解释:
d i f f ( c o s ( x ) ,   x ,   2 ) diff(cos(x), ~x,~2) diff(cos(x), x, 2) 此处的2指对 x x x进行两次求导       ~~~~~      即:二阶导数

同理, d i f f ( c o s ( x ) ,   x ,   x ) diff(cos(x), ~x,~x) diff(cos(x), x, x) 此处的两个 x x x也是对 x x x进行两次求导

可推广到更高阶

  ~  

3.一阶偏导数

例:求该函数的一阶偏导数
g ( x , y ) = c o s ( x 2 y ) x 2 + y 2 + 1 \quad g(x,y)=\frac{cos(x^2y)}{x^2+y^2+1} g(x,y)=x2+y2+1cos(x2y)

程序,如下

from sympy import *
g = symbols('g', cls=Function)
x, y = symbols('x y')
eq = cos(x**2*y)/(x**2+y**2+1)
dx = diff(eq, x)
dy = diff(eq, y)

print("对x的一阶偏导:", dx)
print("对y的一阶偏导:", dy)

结果

对x的一阶偏导: -2*x*y*sin(x**2*y)/(x**2 + y**2 + 1) - 2*x*cos(x**2*y)/(x**2 + y**2 + 1)**2
对y的一阶偏导: -x**2*sin(x**2*y)/(x**2 + y**2 + 1) - 2*y*cos(x**2*y)/(x**2 + y**2 + 1)**2

  ~  

4.二阶偏导数

例:求该函数的二阶偏导数
g ( x , y ) = c o s ( x 2 y ) x 2 + y 2 + 1 \quad g(x,y)=\frac{cos(x^2y)}{x^2+y^2+1} g(x,y)=x2+y2+1cos(x2y)

程序,如下

from sympy import *
g = symbols('g', cls=Function)
x, y = symbols('x y')
eq = cos(x**2*y)/(x**2+y**2+1)

dx_2 = diff(eq, x, 2)
dy_2 = diff(eq, y, 2)

print("对x的二阶偏导:", dx_2)
print("对y的二阶偏导:", dy_2)

结果

对x的二阶偏导: 2*(4*x**2*y*sin(x**2*y)/(x**2 + y**2 + 1) - y*(2*x**2*y*cos(x**2*y) + sin(x**2*y)) + (4*x**2/(x**2 + y**2 + 1) - 1)*cos(x**2*y)/(x**2 + y**2 + 1))/(x**2 + y**2 + 1)
对y的二阶偏导: (-x**4*cos(x**2*y) + 4*x**2*y*sin(x**2*y)/(x**2 + y**2 + 1) + 2*(4*y**2/(x**2 + y**2 + 1) - 1)*cos(x**2*y)/(x**2 + y**2 + 1))/(x**2 + y**2 + 1)

5. 贴图:运行结果

在这里插入图片描述

  • 27
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值