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基于twisted实现简单的web服务器
Sep 29 Python
python使用Image处理图片常用技巧分析
Jun 01 Python
Python中扩展包的安装方法详解
Jun 14 Python
HTML中使用python屏蔽一些基本功能的方法
Jul 07 Python
Python实现的随机森林算法与简单总结
Jan 30 Python
python 移动图片到另外一个文件夹的实例
Jan 10 Python
pandas删除指定行详解
Apr 04 Python
详解python中的线程与线程池
May 10 Python
程序员的七夕用30行代码让Python化身表白神器
Aug 07 Python
Python获取统计自己的qq群成员信息的方法
Nov 15 Python
解析目标检测之IoU
Jun 26 Python
python可视化大屏库big_screen示例详解
Nov 23 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 归并排序 数组交集
2011/05/10 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
那些年,我还在学习jquery 学习笔记
2012/03/05 Javascript
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
Javascript技术难点之apply,call与this之间的衔接
2015/12/04 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
Vue实现todo应用的示例
2021/02/20 Vue.js
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
详解python开发环境搭建
2016/12/16 Python
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
python/sympy求解矩阵方程的方法
2018/11/08 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
python 装饰器功能与用法案例详解
2020/03/06 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
求职教师自荐书
2014/06/19 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
运动会800米赞词
2015/07/22 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书