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 相关文章推荐
35个Python编程小技巧
Apr 01 Python
Python实现求最大公约数及判断素数的方法
May 26 Python
解决Python传递中文参数的问题
Aug 04 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 Python
实例讲解Python设计模式编程之工厂方法模式的使用
Mar 02 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 Python
python针对excel的操作技巧
Mar 13 Python
python如何在列表、字典中筛选数据
Mar 19 Python
Python设计模式之策略模式实例详解
Jan 21 Python
python GUI计算器的实现
Oct 09 Python
在Python中字典按值排序的实现方法
Nov 12 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 Ajax乱码
2008/04/09 PHP
php自动载入类用法实例分析
2016/06/24 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
潜说js对象和数组
2011/05/25 Javascript
document.getElementBy("id")与$("#id")有什么区别
2013/09/22 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
实现51Map地图接口(示例代码)
2013/11/22 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
python音频处理用到的操作的示例代码
2017/10/27 Python
Python3解决棋盘覆盖问题的方法示例
2017/12/07 Python
Python numpy 常用函数总结
2017/12/07 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
TensorFlow损失函数专题详解
2018/04/26 Python
anaconda如何查看并管理python环境
2019/07/05 Python
python程序需要编译吗
2020/06/19 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
《春晓》教学反思
2014/04/20 职场文书
财务部会计岗位职责
2015/02/03 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
三八妇女节主持词
2015/07/04 职场文书
旅游安全责任协议书
2016/03/22 职场文书
python使用pymysql模块操作MySQL
2021/06/16 Python
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python