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 dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
python中如何使用正则表达式的集合字符示例
Oct 09 Python
使用python实现ANN
Dec 20 Python
python使用多进程的实例详解
Sep 19 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 Python
快速解决vue.js 模板和jinja 模板冲突的问题
Jul 26 Python
解决TensorFlow模型恢复报错的问题
Feb 06 Python
python:HDF和CSV存储优劣对比分析
Jun 08 Python
Python根据字符串调用函数过程解析
Nov 05 Python
Python操作Excel的学习笔记
Feb 18 Python
python 基于pygame实现俄罗斯方块
Mar 02 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 GD 图像处理组件的常用函数总结
2010/04/28 PHP
PHP 函数学习简单小结
2010/07/08 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
本地存储localStorage用法详解
2017/07/31 Javascript
深入理解React高阶组件
2017/09/28 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
js实现一个简易计算器
2020/03/30 Javascript
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
Django框架多表查询实例分析
2018/07/04 Python
python 抓包保存为pcap文件并解析的实例
2019/07/23 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
师范生自我鉴定范文
2013/10/05 职场文书
面试求职的个人自我评价
2013/11/16 职场文书
简历上的自我评价怎么写
2014/01/28 职场文书
计算机实训报告范文
2014/11/05 职场文书
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers