当前位置: 首页 > news >正文

python计算微积分

python计算微积分

本文将使用sympy库计算微积分pip install sympy

符号说明: 默认导入库的方式为from sympy import *

image-20221004190134978

一.计算极限

limit(f,x,h)f是表达式,x是对谁求极限,h是x趋于多少
lim ⁡ x → 0 sin ⁡ x − tan ⁡ x + e tan ⁡ x − 1 x − tan ⁡ x + sin ⁡ x \\ \lim_{x\rightarrow 0} \frac{\sin x-\tan x+e^{\tan x}-1}{x-\tan x+\sin x} \\ x0limxtanx+sinxsinxtanx+etanx1

from sympy import *
x=Symbol("x")
f=(sin(x)-tan(x)+exp(tan(x))-1)/(x-tan(x)+sin(x))
limit(f,x,0)#如果没有输出结果请print(limit(f,x,0))

输出结果为1

二.求导数

1.求一阶导数

求 x 4 + x 3 + x + 1 的一阶导数 求 x^4+x^3+x+1的一阶导数 x4+x3+x+1的一阶导数

from sympy import *
x=Symbol("x")
expr=x**4+x**3+x+1
expr.diff(x)#注意如果没有输出任何内容,请使用print(expr.diff(x)),以下同理
image-20221004171406535

2.求高阶导数


求 sin ⁡ x 的 100 阶导数 求 \sin x的100阶导数 sinx100阶导数

from sympy import *
x=Symbol("x")
expr=sin(x)
expr.diff(x,100)
image-20221004171750133

3.多元函数求导

f ( x , y ) = ( x + 1 ) 3 y 2 ( z − 1 ) ( 其中 z 是常数 ) 求 : ∂ 2 f ( x , y ) ∂ x ∂ y f\left( x,y \right) =\left( x+1 \right) ^3y^2\left( z-1 \right) \left( \text{其中}z\text{是常数} \right) \\ \text{求}:\frac{\partial ^2f\left( x,y \right)}{\partial x\partial y} f(x,y)=(x+1)3y2(z1)(其中z是常数):xy2f(x,y)

#多元函数
from sympy import *
x=Symbol("x")
y=Symbol('y')
z=Symbol("z")
expr=(x+1)**3*y**2*(z-1)
expr.diff(x,y)
image-20221004172426472

4.多元函数求高阶导数

f ( x , y ) = ( x + 1 ) 3 y 2 ( z − 1 ) ( 其中 z 是常数 ) 求 : ∂ 3 f ( x , y ) ∂ x 2 ∂ y f\left( x,y \right) =\left( x+1 \right) ^3y^2\left( z-1 \right) \left( \text{其中}z\text{是常数} \right) \\ \text{求}:\frac{\partial ^3f\left( x,y \right)}{\partial x^2\partial y} f(x,y)=(x+1)3y2(z1)(其中z是常数):x2y3f(x,y)

from sympy import *
x=Symbol("x")
y=Symbol('y')
z=Symbol("z")
expr=(x+1)**3*y**2*(z-1)
expr.diff(x,2,y,1)#注意这里2和1的位置
image-20221004173059222

三.计算积分

1.不定积分

计算 ∫ x 5 sin ⁡ x d x \text{计算}\int{x^5\sin x}dx 计算x5sinxdx

from sympy import *
x=Symbol("x")
expr=x**5*sin(x)
integrate(expr,x)#如果输出为空,就换为print(integrate(expr,x))
image-20221004173935077

2.计算定积分

∫ 0 ∞ ln ⁡ x sin ⁡ x d x \int_0^{\infty}{\ln x\sin x}dx 0lnxsinxdx

无穷大的表示:oo(没错就是两个o)

from sympy import *
x=Symbol("x")
expr=log(x)*sin(x)
integrate(expr,(x,0,oo))

抱歉,他不收敛,返回我输入的表达式了,我们换一个

image-20221004174414231

计算: ∫ 0 ∞ a sin ⁡ ( x cos ⁡ x ) d x \displaystyle\int_0^{\infty}{a\sin \left( x\cos x \right)}dx 0asin(xcosx)dx,其中a为常数

呃呃呃,这个有点难算,又返回原函数了,但是这个是发散的吗?

image-20221004174748758

我有点不服啊,掏出我的Wolfram Mathematic试试,好吧,咱也看不懂,总之就是这样计算的

image-20221004175222030

3.计算二重积分

∬ ( x + sin ⁡ y ) e x d x d y \iint{\left( x+\sin y \right) e^xdxdy} (x+siny)exdxdy

from sympy import *
x=Symbol("x")
y=Symbol("y")
expr=(x+sin(y))*exp(x)
integrate(expr,x,y)
image-20221004175800338 $$ \int_0^1{\int_0^1{\left( x+\sin y \right) e^xdxdy}} $$
from sympy import *
x=Symbol("x")
y=Symbol("y")
expr=(x+sin(y))*exp(x)
integrate(expr,(x,0,1),(y,0,1))
image-20221004175858036

四.级数展开

cos ⁡ x 在 x = 0 处 3 阶展开 \cos x\text{在}x=0\text{处}3\text{阶展开} cosxx=03阶展开

from sympy import *
x=Symbol("x")
cos(x).series(x,0,n=3)#偶数项展开为0,所以只有两项
image-20221004180324355

我们可以不写后面的0和n,因为默认是在0处展开

e x e^x ex的泰勒展开

from sympy import *
x=Symbol("x")
# cos(x).series(x,0,n=3)
exp(x).series(x)

在这里插入图片描述

任意表达式的展开

f ( x ) = cos ⁡ ( x ) 1 + sin ⁡ ( x y ) 在 x = 0 处展开四阶 f\left( x \right) =\frac{\cos \left( x \right)}{1+\sin \left( xy \right)}\text{在}x=0\text{处展开四阶} f(x)=1+sin(xy)cos(x)x=0处展开四阶

from sympy import *
x,y=symbols("x,y")#注意这里是symbols
expr=cos(x)/(1+sin(x*y))
expr.series(x,n=4)

在这里插入图片描述

相关文章:

  • 吃灰树莓派应用之HomeAssistant安装与Tuya插件应用
  • 基于Springboot+Vue实现智能停车场管理系统
  • 【模型训练】YOLOv7行人摔倒检测
  • 基于JAVA校园外卖系统Web端计算机毕业设计源码+系统+数据库+lw文档+部署
  • 4_卷积神经网络
  • [C++基础]-入门知识
  • Java8-19新特性(附官网传送门)
  • 加解密相关
  • 【TypeScript教程】# 6:使用webpack打包ts代码
  • Pytorch环境配置(anaconda安装+独显+CUDA+cuDNN)
  • Incorrect string value: ‘\xE6\x9D\x91\xE4\xB8\x8A...‘ for column ‘name‘错误解决
  • git --- git撤销commit(未push)
  • python爬虫的防盗链
  • 【UI自动化】实现C站三连功能
  • 网络规划与部署—ACL命名实验
  • Java Agent 学习笔记
  • JavaScript 奇技淫巧
  • JavaScript异步流程控制的前世今生
  • k8s如何管理Pod
  • Linux下的乱码问题
  • Median of Two Sorted Arrays
  • Quartz初级教程
  • Vue学习第二天
  • 二维平面内的碰撞检测【一】
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 深入 Nginx 之配置篇
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 学习Vue.js的五个小例子
  • Semaphore
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (LeetCode C++)盛最多水的容器
  • (vue)页面文件上传获取:action地址
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • .Net Web窗口页属性
  • .NET的数据绑定
  • .NET委托:一个关于C#的睡前故事
  • .net与java建立WebService再互相调用
  • .sdf和.msp文件读取
  • .sh 的运行
  • /var/log/cvslog 太大
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • []指针
  • [145] 二叉树的后序遍历 js
  • [20150904]exp slow.txt
  • [20160807][系统设计的三次迭代]
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [C++]运行时,如何确保一个对象是只读的