数学神器!Sympy 模块解数学方程解微积分

「SymPy」符号运算(1) 简介/符号/变量/函数/表达式/等式/不等式/运算符 「SymPy」符号运算系列第(1) 篇——SymPy简介、符号/变量、函数、表达式、等式/不等式、运算符 阅读详情

SymPy 是一个Python库,专注于符号数学,它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展。

举一个简单的例子,比如说展开二次方程:

from sympy import *
x = Symbol('x')
y = Symbol('y')
d = ((x+y)**2).expand()
print(d)
# 结果:x**2 + 2*x*y + y**2

你可以随便输入表达式,即便是十次方,它都能轻易的展开,非常方便:

from sympy import *
x = Symbol('x')
y = Symbol('y')
d = ((x+y)**10).expand()
print(d)
# 结果:x**10 + 10*x**9*y + 45*x**8*y**2 + 120*x**7*y**3 + 210*x**6*y**4 + 252*x**5*y**5 + 210*x**4*y**6 + 120*x**3*y**7 + 45*x**2*y**8 + 10*x*y**9 + y**10

下面就来讲讲这个模块的具体使用方法和例子。

1.准备

请选择以下任一种方式输入命令安装依赖:

1. Windows 环境 打开 Cmd (开始-运行-CMD)。
2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

pip install Sympy

2.基本使用

简化表达式(化简)

sympy支持三种化简方式,分别是普通化简、三角化简、指数化简。

普通化简 simplify( ):

from sympy import *
x = Symbol('x')
d = simplify((x**3 + x**2 - x - 1)/(x**2 + 2*x + 1))
print(d)
# 结果:x - 1

三角化简 trigsimp( ):

from sympy import *
x = Symbol('x')
d = trigsimp(sin(x)/cos(x))
print(d)
# 结果:tan(x)

指数化简 powsimp( ):

from sympy import *
x = Symbol('x')
a = Symbol('a')
b = Symbol('b')
d = powsimp(x**a*x**b)
print(d)
# 结果:x**(a + b)

解方程 solve()

第一个参数为要解的方程,要求右端等于0,第二个参数为要解的未知数。

如一元一次方程:

from sympy import *
x = Symbol('x')
d = solve(x * 3 - 6, x)
print(d)
# 结果:[2]

二元一次方程:

from sympy import *
x = Symbol('x')
y = Symbol('y')
d = solve([2 * x - y - 3, 3 * x + y - 7],[x, y])
print(d)
# 结果:{x: 2, y: 1}

求极限 limit()

dir=’+’表示求解右极限,dir=’-‘表示求解左极限:

from sympy import *
x = Symbol('x')
d = limit(1/x,x,oo,dir='+')
print(d)
# 结果:0
d = limit(1/x,x,oo,dir='-')
print(d)
# 结果:0

求积分 integrate( )

先试试求解不定积分:

from sympy import *
x = Symbol('x')
d = integrate(sin(x),x)
print(d)
# 结果:-cos(x)

再试试定积分:

from sympy import *
x = Symbol('x')
d = integrate(sin(x),(x,0,pi/2))
print(d)
# 结果:1

求导 diff()

使用 diff 函数可以对方程进行求导:

from sympy import *
x = Symbol('x')
d = diff(x**3,x)
print(d)
# 结果:3*x**2

d = diff(x**3,x,2)
print(d)
# 结果:6*x

解微分方程 dsolve( )

以 y′=2xy 为例:

from sympy import *
x = Symbol('x')
f = Function('f')
d = dsolve(diff(f(x),x) - 2*f(x)*x,f(x))
print(d)
# 结果:Eq(f(x), C1*exp(x**2))

3.实战一下

今天群里有同学问了这个问题,“大佬们,我想问问,如果这个积分用Python应该怎么写呢,谢谢大家”:

# Python 实用宝典
from sympy import *
x = Symbol('x')
y = Symbol('y')
d = integrate(x-y, (y, 0, 1))
print(d)
# 结果:x - 1/2

为了计算这个结果,integrate的第一个参数是公式,第二个参数是积分变量及积分范围下标和上标。

运行后得到的结果便是 x - 1/2 与预期一致。

如果大家也有求解微积分、复杂方程的需要,可以试试sympy,它几乎是完美的存在。


觉得还不错就给我一个小小的鼓励吧!


python进阶之符号计算概述SymPy SymPy 是一个由 Python 编写的符号计算库,它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展。它完全由 Python 写成,不依赖于外部库。SymPy 支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概率与统计、物理学等方面的功能。 阅读详情

相关推荐

数理基础(高等代数)------sympy三角、指数、对数、幂函数、极限、求导、微分、积分等基础知识

sympy基础知识 1.sympy import sympy print(sympy.pi.evalf())#圆周率π print(sympy.E)#e print(sympy.I)#虚数i print(sympy.oo)#无穷大 print(sympy.E.evalf(3))#保留e的三位小数 2.三角函数 import sympy print(sympy.sin(sympy.pi/4).evalf()) print(sympy.cos(sympy.pi/3).evalf()) print(sympy.

m0_47405013的博客 5685

【SymPy】(一)SymPy简介

SymPy介绍 文章目录SymPy介绍1 什么是符号计算2 另一个例子3 SymPy强大之处 SymPy的全称为Symbolic Python,是一款用于符号运算的python库。 1 什么是符号计算 符号计算以符号的方式处理数学对象的计算。这意味着数学对象是精确表示的,而不是近似表示的,带有未赋值变量的数学表达式是以符号形式保留的。 举个例子。假设我们想使用内置的Python函数来计算平方根。我们可以这样做 In [1]: import math In [2]: math.sqrt(9) Out[2].

weixin_44378835的博客 1万+

SAP系统中PP模块全配置文档

配置路径IMG>SAP NetWeaver>常规设置>维护日历>工厂日历事务代码SCAL要求传输工厂代码描述日历代码日历描述起始日期星期一星期二星期三星期四星期五星期六星期日有效开始日期有效结束日期1000南微医学工厂MT南微医学工厂日历√√√√√√√201820502.4定义工厂配置路径IMG>生产>物料清单>常规数据>定义BOM状态事务代码OS23要求传输配置路径IMG>生产>主数据>资源>常规数据>标准值>定义参数。

yanzibing99的博客 1894

快速入门 Python sympy 库:解决数学难题从此不再困扰!

Sympy 是一个纯 Python 的数学计算库,可以用于解决从初中数学到高级数学的各类问题。它支持符号计算、数值计算、代数运算、微积分、线性代数等功能,涵盖了数学、物理、工程等领域的大量应用。与 Matlab 等类似软件相比,Sympy 的优势在于其简洁的语法和丰富的第三方库生态,使得 Python 在科学计算领域更具竞争力。Python Sympy 库凭借其强大的数学计算功能、简洁的语法和丰富的第三方库,已成为广大 Python 开发者解决数学计算问题的必备工具。

白帽阿叁的博客 3679

Ansys Lumerical | 薄膜铌酸锂电光调制器的仿真与优化

本文详细介绍了使用Ansys Lumerical进行薄膜铌酸锂电光调制器仿真与优化的全流程。从基础原理到电学仿真、光学模拟技巧,再到设计优化实战经验,帮助工程师掌握这一先进光电器件的仿真方法。重点解析了薄膜铌酸锂的Pockels效应和Mach-Zehnder结构设计,并提供了常见问题排查指南和最新发展动态。

vulkan6gpu的博客 1197

uniapp运行钉钉小程序

因项目原因,公司需要在钉钉里面开发小程序。之前用uniapp开发过app,H5,小程序。还真没尝试过钉钉小程序,今天就简单的记录下uniapp运行钉钉小程序中的过程。

YL 2919

用于符号数学的 Python 库——sympy(一)

SymPy 是用于符号数学的 Python 库。 它旨在成为功能齐全的计算机代数系统。 SymPy 包括从基本符号算术到微积分,代数,离散数学和量子物理学的功能。 它可以在 LaTeX 中显示结果。

飞华的博客 1782

基于YOLO11的垃圾分类AI模型训练实战

通过这次实战,我们成功训练出了一个高性能的垃圾分类AI模型。项目展示了从数据准备、模型训练到结果分析的完整流程,为AI在环保领域的应用提供了有价值的参考。项目文件结构│ ├── best.pt # 最佳模型权重│ └── last.pt # 最新模型权重├── results.csv # 详细训练数据├── results.png # 训练曲线图├── confusion_matrix.png # 混淆矩阵└── args.yaml # 训练参数配置。

lydz1的博客 1657

python中sympy库的使用与示例!!!

Sympy是Python中的一个开源库,专注于符号计算。它提供了一套强大的工具,可以进行符号数学运算、代数操作、求解方程、微积分、矩阵运算等。

m0_73609188的博客 5322

cesium加载天地图、OSM、谷歌底图

以上示例是加载矢量底图,若要加载影像或者其他只需要更换相应的url,在WebMapTileServiceImageryProvider中还要更改layer参数。url中’‘vec_w’,一些其他风格,基于CRAT渲染,两种方法效果差别不大。有两种方法加载天地图分别是。对应投影样式,具体可看。还要谷歌的一些卫星底图。

qq_44897914的博客 3000

maya权重拷贝一对一,一对多

是不是有时候盔甲很多很碎头很大,用代理一个个拷贝很麻烦吧 用下面代码直接运行进行一对多或者一对一拷贝 第一个先选择参考物体,加选其他一堆有的没的有权重或没权重的物体执行一键拷贝,就可以啦 以下是源码送上,带走吧 ------------------------ #! -*- coding:utf -8 -*- #author:liubingdong #date:20...

weixin_30852367的博客 1532

python中的SymPy库函数的运用

概念 sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算问题。 常用的sympy内置符号 虚数单位i In [13]: import sympy In [14]: sympy.I Out[14]: I In [15]: sympy.I ** 2 Out[15]: -1 #求-1的平方根 In [16]: sympy.sqrt(-1) Out[16]: I 注;后面省略import sympy 自然对数的底

qq_51478930的博客 8811

保姆级教程:彻底清理Win11更新缓存并解除外设,一次搞定0xc1900101更新错误

本文提供了一套完整的Win11更新报错0xc1900101解决方案,涵盖软件环境净化和硬件设备隔离。通过终止干扰进程、重置更新组件、清理临时文件以及断开外设等步骤,有效提升更新成功率。特别强调外设驱动兼容性对解决0xc1900101错误的关键作用。

weixin_33483304的博客 417

Python sympy用法(一)

SymPy使用教程,介绍表达式的用法和方程和方程组的求解。

JiangTao2333的博客 8255

基于深度学习的活体人脸检测系统:YOLOv5、YOLOv6、YOLOv7、YOLOv8实现与UI界面设计

本博客详细介绍了如何基于YOLOv5、YOLOv6、YOLOv7、YOLOv8模型实现一个完整的活体人脸检测系统。系统包括数据集准备、模型训练、UI界面设计以及实时检测功能的实现。通过YOLO系列模型的应用,我们能够高效、准确地进行人脸检测和活体验证。未来,随着YOLOv9和其他新一代目标检测模型的出现,我们可以进一步提高检测精度和速度。此外,集成更多的传感器数据(如深度传感器、红外线传感器)可以使活体检测系统更加安全和稳定。

YOLO 540

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

sympy_python代数符号运算

SymPy 是一个符号计算的 Python 库,完全由 Python 写成,为许多数值分析,符号计算提供了重要的工具。它是一种计算机代数系统computer algebra system (CAS), 既可以用作单独的应用也可以作为其它的应用中的包。GitHub 链接:https://github.com/sympy/sympySymPy 官方网站:https://www.sympy.org/en/index.html。

哦豁灬 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

sympy,一个可以做数学题的Python库

sympy 是 symbolic python 的简称,也就是一个支持代数符号计算的python库。它可以用来帮助我们解决从初中数学到高等数学的各类问题,包括但不限于:⚫️ 表达式化简,因式分解,方程求解,不等式求解。⚫️ 求极限,求导,求积分,级数展开,解微分方程,级数求和。⚫️ 求概率,求期望,方差。⚫️ 矩阵乘法,求行列式,矩阵求逆,矩阵分解。本文将先演示sympy的基础使用范例,然后讲解s...

Python_Ai_Road的博客 1613

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Python 中的Sympy详细介绍

我发现这个作者写的特别好,我就把它转载过来啦。 2、函数方程求解: 3、求和 解带有求和式的方程 : 4、求极限(注意,math包中sin和很多数学函数会报错,要用sympy中的,无穷大用 sympy.oo 表示) 5、求导 6、求定积分 还有其他方法。 上面的求法有点烂,难的就罢工不干了,我丢,还是喜欢scipy,如下: http://liao.cpython.or

Petrel__Cloud的博客 1万+

SymPy(python系列之——sympy库)

SymPy(python系列之——sympy库)

罗方涵的博客 1396

使用Python SymPy求解方程:从基础到高级应用

在科学计算和工程领域,求解方程是一项常见且重要的任务。Python的SymPy库提供了强大的符号计算功能,使得求解方程变得简单而高效。本文将详细介绍如何使用SymPy中的`sympy.solve()`函数来求解各种类型的方程,包括线性方程、多项式方程、超越方程以及方程组。我们还将探讨一些使用技巧和注意事项,帮助你更好地掌握这一工具。

neweastsun的专栏 2373

python之sympy库--数学符号计算与绘图必备

在实际进行数学运算的时候,其实有两种运算模式,一种是数值运算,一种是符号运算(代数)。而我们日常使用计算机进行数值运算,尤其是比如除、开平方等运算时,往往只能得到其近似值,最终总会已一定的误差,如果使用符号运算模式,则可以完全避免此种问题。 一、数学符号及符号表达式 符号表达式,区别于常规的数值型数学表达式,常规数学表达式,比如x+y*2等,基本x和y是一个变量,且变量最终也会被赋值,由变量组成的表达式,最后得出的也是一个数值。 而符号表达式,则真正的由符号组成,而符号无需提前赋值,由符号组成的表达式

yifengchaoran的专栏 17万+

python库(18):Sympy库

Python SymPy是一个强大的符号计算库,用于解决数学问题、代数运算、微积分、代数方程求解和符号化处理等任务。SymPy的设计目标是提供一个开源、可扩展的符号计算工具,使数学建模和问题求解变得更加容易。本文将提供关于Python SymPy的全面指南,包括基本概念、安装和配置、符号表达式、代数运算、微积分、方程求解、矩阵操作以及实际应用场景。将通过丰富的示例代码来帮助深入理解SymPy的使用。与我们常用的数学库NumPy不同,Sympy能够处理符号表达式,而不仅仅是数值计算。

u013938578的博客 2555

Sympy简单教程(1)

Python的符号计算工具包Sympy的简单教程

weixin_45616112的博客 2822

Python 第三方库:SymPy(符号计算工具)

SymPy 是 Python 中功能强大的符号计算(Computer Algebra)库,支持代数运算、微积分、方程求解、逻辑推理、矩阵运算等,并可将表达式输出为 LaTeX、MathML 或 C 代码。SymPy 提供多种变形函数,如 simplify()、expand()、factor()、collect() 等,帮助用户将表达式化简或变换成指定形式。可将符号表达式转为数值函数(如 .evalf(), lambdify()),与 NumPy、matplotlib 配合进行数值计算与可视化。

qq_41176800的博客 1193
上一篇: 坐好了,发车啦!腾讯年度性爱报告被曝
下一篇: 人脸识别模型的动手实践!
Wang_AI
博客等级 码龄12年 991粉丝 162原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值