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闭包实现计数器的方法
May 05 Python
python图片验证码生成代码
Jul 02 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
对Python捕获控制台输出流的方法详解
Jan 07 Python
对python 自定义协议的方法详解
Feb 13 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
Mar 01 Python
python基于递归解决背包问题详解
Jul 03 Python
python如何获取apk的packagename和activity
Jan 10 Python
Python捕获异常堆栈信息的几种方法(小结)
May 18 Python
用Python的绘图库(matplotlib)绘制小波能量谱
Apr 17 Python
Python中super().__init__()测试以及理解
Dec 06 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爆绝对路径方法收集整理
2012/09/17 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
给ListBox添加双击事件示例代码
2013/12/02 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
python实现保存网页到本地示例
2014/03/16 Python
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
python字典序问题实例
2014/09/26 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
基于Python实现的微信好友数据分析
2018/02/26 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
python编写微信公众号首图思路详解
2019/12/13 Python
Python socket服务常用操作代码实例
2020/06/22 Python
Python字典dict常用方法函数实例
2020/11/09 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
员工薪酬福利制度
2014/01/17 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
公司授权委托书范本
2014/04/03 职场文书
医务人员岗前培训心得体会
2016/01/08 职场文书
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python