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和shell实现的校验IP地址合法性脚本分享
Oct 23 Python
python基于socket实现网络广播的方法
Apr 29 Python
Python彩色化Linux的命令行终端界面的代码实例分享
Jul 02 Python
django+js+ajax实现刷新页面的方法
May 22 Python
Python实现对一个函数应用多个装饰器的方法示例
Feb 09 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
Apr 10 Python
Python 3.x基于Xml数据的Http请求方法
Dec 28 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
用Python实现大文本文件切割的方法
Jan 12 Python
python3.6实现学生信息管理系统
Feb 21 Python
python实现各种插值法(数值分析)
Jul 30 Python
Python OpenCV视频截取并保存实现代码
Nov 30 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中显示格式化的用户输入
2006/10/09 PHP
PHP脚本的10个技巧(4)
2006/10/09 PHP
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
php array_map()数组函数使用说明
2011/07/12 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
PHP时间和日期函数详解
2015/05/08 PHP
PHP通过API获取手机号码归属地
2015/05/28 PHP
判断用户的在线状态 onbeforeunload事件
2011/03/05 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
web打印小结
2017/01/11 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
[00:06]Yes,it worked!小卡尔成功穿越时空加入战场!
2019/07/20 DOTA
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python中使用HTMLParser解析html实例
2015/02/08 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
python实现归并排序算法
2018/11/22 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
口腔医学技术应届生求职信
2013/11/09 职场文书
优秀学生评语大全
2014/04/25 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
高中生第一学年自我鉴定2015
2014/09/28 职场文书
死亡证明书样本说明
2014/10/18 职场文书
浅谈克隆 JavaScript
2021/11/02 Javascript
Python中super().__init__()测试以及理解
2021/12/06 Python
如何通过一篇文章了解Python中的生成器
2022/04/02 Python