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脚本在Nginx和uwsgi上部署MoinMoin的教程
May 05 Python
python的keyword模块用法实例分析
Jun 30 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
python django使用haystack:全文检索的框架(实例讲解)
Sep 27 Python
Django+JS 实现点击头像即可更改头像的方法示例
Dec 26 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
基于python plotly交互式图表大全
Dec 07 Python
Python读取YAML文件过程详解
Dec 30 Python
使用python从三个角度解决josephus问题的方法
Mar 27 Python
python中rc1什么意思
Jun 19 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 Python
Scrapy实现模拟登录的示例代码
Feb 21 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 欧美动漫
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
CI框架中数据库操作函数$this->db->where()相关用法总结
2016/05/17 PHP
微信公众号实现会员卡领取功能
2017/06/08 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
爬虫利器Puppeteer实战
2019/01/09 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
js实现简单的倒计时
2021/01/28 Javascript
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python求crc32值的方法
2014/10/05 Python
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
爱祖国爱家乡演讲稿
2014/09/02 职场文书
理解深度学习之深度学习简介
2021/04/14 Python
Python数据分析入门之数据读取与存储
2021/05/13 Python
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技