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抓取豆瓣图片并自动保存示例学习
Jan 10 Python
Python下Fabric的简单部署方法
Jul 14 Python
Python使用wxPython实现计算器
Jan 30 Python
python爬取微信公众号文章
Aug 31 Python
Python子类继承父类构造函数详解
Feb 19 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
Aug 20 Python
Django Form and ModelForm的区别与使用
Dec 06 Python
Python处理mysql特殊字符的问题
Mar 02 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
matplotlib图例legend语法及设置的方法
Jul 28 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
Aug 26 Python
Django中session进行权限管理的使用
Jul 09 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
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
我常用的几个类
2006/10/09 PHP
php获取post中的json数据的实现方法
2011/06/08 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
event.srcElement+表格应用
2006/08/29 Javascript
jQuery 使用个人心得
2009/02/26 Javascript
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
微信小程序 数组中的push与concat的区别
2017/01/05 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
Python连接PostgreSQL数据库的方法
2016/11/28 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
详解如何使用Python编写vim插件
2017/11/28 Python
python xlsxwriter创建excel图表的方法
2018/06/11 Python
浅谈pycharm使用及设置方法
2019/09/09 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
专业销售业务员求职信
2013/11/18 职场文书
实习生岗位职责
2014/04/12 职场文书
雷人标语集锦
2014/06/19 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
师德师风事迹材料
2014/12/20 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
MySQL空间数据存储及函数
2021/09/25 MySQL
JavaScript函数柯里化
2021/11/07 Javascript