Python Sympy计算梯度、散度和旋度的实例


Posted in Python onDecember 06, 2019

sympy有个vector 模块,里面提供了求解标量场、向量场的梯度、散度、旋度等计算,官方参考连接:

http://docs.sympy.org/latest/modules/vector/index.html

sympy中计算梯度、散度和旋度主要有两种方式:

一个是使用∇∇算子,sympy提供了类Del(),该类的方法有:cross、dot和gradient,cross就是叉乘,计算旋度的,dot是点乘,用于计算散度,gradient自然就是计算梯度的。

另一种方法就是直接调用相关的API:curl、divergence和gradient,这些函数都在模块sympy.vector 下面。

使用sympy计算梯度、散度和旋度之前,首先要确定坐标系,sympy.vector模块里提供了构建坐标系的类,常见的是笛卡尔坐标系, CoordSys3D,根据下面的例子可以了解到相应应用。

(1)计算梯度

## 1 gradient

C = CoordSys3D('C')
delop = Del() # nabla算子

# 标量场 f = x**2*y-xy
f = C.x**2*C.y - C.x*C.y

res = delop.gradient(f, doit=True) # 使用nabla算子
# res = delop(f).doit()
res = gradient(f) # 直接使用gradient

print(res) # (2*C.x*C.y - C.y)*C.i + (C.x**2 - C.x)*C.j

(2)计算散度

## divergence

C = CoordSys3D('C')
delop = Del() # nabla算子

# 向量场 f = x**2*y*i-xy*j
f = C.x**2*C.y*C.i - C.x*C.y*C.j

res = delop.dot(f, doit=True)

# res = divergence(f)

print(res) # 2*C.x*C.y - C.x,即2xy-x,向量场的散度是标量

(3)计算旋度

## curl

C = CoordSys3D('C')
delop = Del() # nabla算子

# 向量场 f = x**2*y*i-xy*j
f = C.x**2*C.y*C.i - C.x*C.y*C.j

res = delop.cross(f, doit=True)

# res = curl(f)

print(res) # (-C.x**2 - C.y)*C.k,即(-x**2-y)*k,向量场的旋度是向量

以上这篇Python Sympy计算梯度、散度和旋度的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用python实现批量重命名文件的代码
May 25 Python
Python实现监控程序执行时间并将其写入日志的方法
Jun 30 Python
python爬虫_微信公众号推送信息爬取的实例
Oct 23 Python
python PyTorch预训练示例
Feb 11 Python
Python自定义线程类简单示例
Mar 23 Python
python实现事件驱动
Nov 21 Python
程序员的七夕用30行代码让Python化身表白神器
Aug 07 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
python的等深分箱实例
Nov 22 Python
python中执行smtplib失败的处理方法
Jul 01 Python
Python生成pdf目录书签的实例方法
Oct 29 Python
python实现自定义日志的具体方法
May 28 Python
python实现输入的数据在地图上生成热力图效果
Dec 06 #Python
python 画3维轨迹图并进行比较的实例
Dec 06 #Python
解决pyshp UnicodeDecodeError的问题
Dec 06 #Python
python创建ArcGIS shape文件的实现
Dec 06 #Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 #Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 #Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 #Python
You might like
VML绘图板②脚本--VMLgraph.js、XMLtool.js
2006/10/09 PHP
PHP中的日期及时间
2006/11/23 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
php接口数据加密、解密、验证签名
2015/03/12 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
JQuery节点元素属性操作方法
2015/06/11 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
jQuery实现购物车全功能
2021/01/11 jQuery
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
python查询sqlite数据表的方法
2015/05/08 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
python 爬取马蜂窝景点翻页文字评论的实现
2020/01/20 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
python读取excel数据绘制简单曲线图的完整步骤记录
2020/10/30 Python
波兰购物网站:MALL.PL
2019/05/01 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
文明寝室申报材料
2014/05/12 职场文书
网站推广策划方案
2014/06/04 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android
详解Vue router路由
2021/11/20 Vue.js
利用js实现简单开关灯代码
2021/11/23 Javascript
Java 关于String字符串原理上的问题
2022/04/07 Java/Android