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中文问题解决方法(总结了多位前人经验,初学者必看)
Mar 13 Python
Python内置的字符串处理函数整理
Jan 29 Python
python开发之for循环操作实例详解
Nov 12 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
Python爬虫实现简单的爬取有道翻译功能示例
Jul 13 Python
python sklearn常用分类算法模型的调用
Oct 16 Python
numpy ndarray 取出满足特定条件的某些行实例
Dec 05 Python
Python爬取网页信息的示例
Sep 24 Python
Python 实现RSA加解密文本文件
Dec 30 Python
python des,aes,rsa加解密的实现
Jan 16 Python
python实现控制台输出颜色
Mar 02 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
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
PHP MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
jquery提升性能最佳实践小结
2010/12/06 Javascript
SOSO地图JS画出标注和中心点以html形式运行
2013/08/09 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
2017/08/10 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
2018/03/03 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
Python实现的一个简单LRU cache
2014/09/26 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
利用Python实现kNN算法的代码
2019/08/16 Python
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
幼儿园美术教学反思
2014/01/31 职场文书
消防安全管理制度
2014/02/01 职场文书
英语老师推荐信
2014/02/26 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
使用python绘制分组对比柱状图
2022/04/21 Python