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 相关文章推荐
在Windows8上的搭建Python和Django环境
Jul 03 Python
Python中bisect的用法
Sep 23 Python
python多进程使用及线程池的使用方法代码详解
Oct 24 Python
pycharm中使用anaconda部署python环境的方法步骤
Dec 19 Python
总结Python图形用户界面和游戏开发知识点
May 22 Python
python修改字典键(key)的方法
Aug 05 Python
python 计算积分图和haar特征的实例代码
Nov 20 Python
Python各种扩展名区别点整理
Feb 27 Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 Python
python绘制趋势图的示例
Sep 17 Python
Scrapy实现模拟登录的示例代码
Feb 21 Python
Python Matplotlib绘制等高线图与渐变色扇形图
Apr 14 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
一个可查询所有表的“通用”查询分页类
2006/10/09 PHP
深入php多态的实现详解
2013/06/09 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
js对数字的格式化使用说明
2011/01/12 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
使用Jquery实现每日签到功能
2015/04/03 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
简单实现js上传文件功能
2017/08/21 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
零基础写python爬虫之urllib2使用指南
2014/11/05 Python
python实现文件路径和url相互转换的方法
2015/07/06 Python
python编程开发之日期操作实例分析
2015/11/13 Python
在python的类中动态添加属性与生成对象
2016/09/17 Python
python去除空格和换行符的实现方法(推荐)
2017/01/04 Python
详解python 注释、变量、类型
2018/08/10 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
毕业生就业推荐信范文
2013/12/01 职场文书
人力资源部培训专员岗位职责
2014/01/02 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
益达广告词
2014/03/14 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
相亲大会策划方案
2014/06/05 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python