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 14 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 Python
python3.6 实现AES加密的示例(pyCryptodome)
Jan 10 Python
python3+PyQt5重新实现自定义数据拖放处理
Apr 19 Python
numpy中的delete删除数组整行和整列的实例
May 09 Python
创建pycharm的自定义python模板方法
May 23 Python
Python实现模拟浏览器请求及会话保持操作示例
Jul 30 Python
python生成多个只含0,1元素的随机数组或列表的实例
Nov 12 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
Mar 05 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
基于TensorBoard中graph模块图结构分析
Feb 15 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
BBS(php & mysql)完整版(一)
2006/10/09 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
laravel-admin 中列表筛选方法
2019/10/03 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
jquery 插件学习(四)
2012/08/06 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
python访问系统环境变量的方法
2015/04/29 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
python正则表达式的使用
2017/06/12 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
社区八一活动方案
2014/02/03 职场文书
平面设计求职信
2014/03/10 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
新文化运动的基本口号
2014/06/21 职场文书
纪检干部先进事迹材料
2014/08/23 职场文书
金融保险专业求职信
2014/09/03 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
营业用房租赁协议书
2014/11/26 职场文书
追讨欠款律师函
2015/05/27 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA