散度的可视化

news2024/11/25 12:23:33

散度的可视化

flyfish

向量场和散度

假设我们有一个简单的向量场:
F = ( x , y , z ) \mathbf{F} = (x, y, z) F=(x,y,z)在这里,向量场 F \mathbf{F} F 是由三个分量组成的向量,每个分量是空间坐标 x x x y y y z z z 的函数:

  • F x = x F_x = x Fx=x

  • F y = y F_y = y Fy=y

  • F z = z F_z = z Fz=z

散度的定义

散度是一个向量场的标量运算,表示向量场在一个点上的“发散”或“汇聚”程度。数学上,散度定义为:
∇ ⋅ F = ∂ F x ∂ x + ∂ F y ∂ y + ∂ F z ∂ z \nabla \cdot \mathbf{F} = \frac{\partial F_x}{\partial x} + \frac{\partial F_y}{\partial y} + \frac{\partial F_z}{\partial z} F=xFx+yFy+zFz

具体计算过程

对于向量场 F = ( x , y , z ) \mathbf{F} = (x, y, z) F=(x,y,z),我们需要计算其散度。

  1. 计算 ∂ F x ∂ x \frac{\partial F_x}{\partial x} xFx:
    F x = x F_x = x Fx=x, 对 x x x 求偏导数: ∂ F x ∂ x = ∂ x ∂ x = 1 \frac{\partial F_x}{\partial x} = \frac{\partial x}{\partial x} = 1 xFx=xx=1

  2. 计算 ∂ F y ∂ y \frac{\partial F_y}{\partial y} yFy:
    F y = y F_y = y Fy=y,对 y y y 求偏导数: ∂ F y ∂ y = ∂ y ∂ y = 1 \frac{\partial F_y}{\partial y} = \frac{\partial y}{\partial y} = 1 yFy=yy=1

  3. 计算 ∂ F z ∂ z \frac{\partial F_z}{\partial z} zFz:
    F z = z F_z = z Fz=z,对 z z z 求偏导数: ∂ F z ∂ z = ∂ z ∂ z = 1 \frac{\partial F_z}{\partial z} = \frac{\partial z}{\partial z} = 1 zFz=zz=1

解释:
∇ ⋅ F = ∂ F x ∂ x + ∂ F y ∂ y + ∂ F z ∂ z = 1 + 1 + 1 = 3 \nabla \cdot \mathbf{F} = \frac{\partial F_x}{\partial x} + \frac{\partial F_y}{\partial y} + \frac{\partial F_z}{\partial z} = 1 + 1 + 1 = 3 F=xFx+yFy+zFz=1+1+1=3

字母和符号的含义

  • ∇ ⋅ F \nabla \cdot \mathbf{F} F 表示向量场 F \mathbf{F} F 的散度。

  • F = ( F x , F y , F z ) \mathbf{F} = (F_x, F_y, F_z) F=(Fx,Fy,Fz) 表示向量场的三个分量。

  • F x F_x Fx 是向量场在 x x x 方向的分量。

  • F y F_y Fy 是向量场在 y y y 方向的分量。

  • F z F_z Fz 是向量场在 z z z 方向的分量。

  • ∂ F x ∂ x \frac{\partial F_x}{\partial x} xFx 表示 F x F_x Fx x x x 的偏导数。

  • ∂ F y ∂ y \frac{\partial F_y}{\partial y} yFy 表示 F y F_y Fy y y y 的偏导数。

  • ∂ F z ∂ z \frac{\partial F_z}{\partial z} zFz 表示 F z F_z Fz z z z 的偏导数。

这表明在这个向量场中,任意点的散度都是 3,意味着向量场在每个点都是均匀发散的。
散度(divergence)是向量分析中的一个算子,用来描述向量场在一个点的“发散”或“汇聚”程度。它将一个向量场(矢量场)映射到一个标量场上。具体来说,散度表示在一个微小体元中的向量是“向外”居多还是“向内”居多。

  • 正散度 :如果一个点的散度为正,说明该点是一个发源点,向量从这个点向外发散。

  • 负散度 :如果一个点的散度为负,说明该点是一个汇聚点,向量在这个点向内汇聚。

可视化

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.animation import FuncAnimation, PillowWriter

# 定义向量场 F = (x, y, z)
def vector_field(x, y, z):
    return np.array([x, y, z])

# 计算散度
def divergence(x, y, z):
    return 3  # 对于 F = (x, y, z),散度为 3

# 创建动画
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.set_xlim(-1, 1)
ax.set_ylim(-1, 1)
ax.set_zlim(-1, 1)

def update(frame):
    ax.clear()
    ax.set_xlim(-1, 1)
    ax.set_ylim(-1, 1)
    ax.set_zlim(-1, 1)
    
    # 绘制向量场
    X, Y, Z = np.meshgrid(np.linspace(-1, 1, 5), np.linspace(-1, 1, 5), np.linspace(-1, 1, 5))
    U, V, W = vector_field(X, Y, Z)
    ax.quiver(X, Y, Z, U, V, W, color='blue', alpha=0.5)
    
    # 绘制中心点
    ax.scatter(0, 0, 0, color='red', s=100)
    
    # 显示散度值
    div_value = divergence(0, 0, 0)
    ax.text2D(0.05, 0.95, f"Divergence at (0, 0, 0): {div_value}", transform=ax.transAxes, color='black')
    
    ax.set_xlabel('X')
    ax.set_ylabel('Y')
    ax.set_zlabel('Z')

ani = FuncAnimation(fig, update, frames=100, repeat=True)
writer = PillowWriter(fps=1)
ani.save('divergence_example.gif', writer=writer)

plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1898087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详细的讲解一下网络变压器应用POE ,AT BT AF BF的概念,做电路连接指导分析

网络变压器在应用POE(Power over Ethernet)技术时,承担着重要的角色。它不仅负责数据的传输,同时也为网络设备提供电力。在IEEE 802.3标准中,定义了几个与POE相关的标准,包括802.3af、802.3at、802.3bt等&a…

分享6个自己每天都会打开的网站

分享6个自己每天都会打开的网站,有实用办公网站,也有休闲摸鱼网站,链接直达,速看~ 1、鸠摩搜索 https://www2.jiumodiary.com/ 一个免费的电子书下载网站,页面干净无广告,只有一个搜索框,输入…

力扣双指针算法题目:复写零

1.题目 . - 力扣(LeetCode) 2.解题思路 本题要求就是对于一个数组顺序表,将表中的所有“0”元素都向后再写一遍,且我们还要保证此元素之后的元素不受到影响,且复写零之后此数组顺序表的总长度不可以改变,…

微信开发者工具报错 Error: module ‘xxx.js‘ is not defined, require args is ‘xxx.js‘

背景 报错如下 检查 代码逻辑和写法都是ok的微信开发者工具重新打开项目又是可以的 解决方案 先确保微信开发者工具和uniapp的将js编译成es5都开着(这个是默认开的) 然后把微信开发者工具关了重开 一般做这一步就会好了,但是只是临时解…

基于python 的动态虚拟主机

将自己电脑上的Python脚本文件上传到虚拟机/var/www/cgi-bin/目录下 [rootlocalhost conf.d]# cd /var/www/cgi-bin/ [rootlocalhost cgi-bin]# rz -E rz waiting to receive.编辑vhost.conf配置文件 [rootlocalhost conf.d]# vim vhost.conf<virtualhost 192.168.209.140…

10元 DIY 一个柔性灯丝氛围灯

之前TikTok上特别火的线性氛围灯Augelight刚出来的时候一度卖到80多美金&#xff0c;国内1688也能到400多人民币。 随着各路国内厂商和DIY创客的跟进&#xff0c;功能变多的同时价格一路下滑&#xff0c;虽然有的质感的确感人&#xff0c;但是便宜啊。 甚至关注的up有把成本搞到…

vxe-table合并行数据;element-plus的el-table动态合并行

文章目录 一、vxe-table合并行数据1.代码 二、使用element-plus的el-table动态合并行2.代码 注意&#xff1a;const fields 是要合并的字段 一、vxe-table合并行数据 1.代码 <vxe-tableborderresizableheight"500":scroll-y"{enabled: false}":span-m…

实验三 图像增强—灰度变换

一、实验目的&#xff1a; 1、了解图像增强的目的及意义&#xff0c;加深对图像增强的感性认识&#xff0c;巩固所学理论知识。 2、学会对图像直方图的分析。 3、掌握直接灰度变换的图像增强方法。 二、实验原理及知识点 术语‘空间域’指的是图像平面本身&#xff0c;在空…

使用Session实现单点登录(SSO)

仅仅是一种思路&#xff0c;细节不做具体说明。

servlet学校会场预约系统-计算机毕业设计源码72972

摘要 学校会场预约是学校管理中的重要环节&#xff0c;但传统的手工预约方式存在效率低下和信息不准确等问题。为了提高预约效率和减少管理成本&#xff0c;许多学校开始采用基于Servlet技术的会场预约系统。本论文旨在设计和实现一种高效的Servlet学校会场预约系统&#xff0c…

已经安装deveco-studio-4.1.3.500的基础上安装deveco-studio-3.1.0.501

目录标题 1、执行exe文件后安装即可2、双击devecostudio64_3.1.0.501.exe2.1、安装Note (注意和4.1的Note放不同目录)2.2、安装ohpm (注意和4.1版本的ohpm放不同目录)2.3、安装SDK (注意和4.1版本的SDK放不同目录) 1、执行exe文件后安装即可 2、双击devecostudio64_3.1.0.501.e…

pycharm如何使用jupyter

目录 配置jupyter新建jupyter文件别人写的方法&#xff08;在pycharm种安装&#xff0c;在网页中使用&#xff09; pycharm专业版 配置jupyter 在pycharm终端启动一个conda虚拟环境&#xff0c;输入 conda install jupyter会有很多前置包需要安装&#xff1a; 新建jupyter…

Docker:二、常用命令

&#x1f341;docker常用命令 官方帮助文档&#xff1a;https://docs.docker.com/reference/ &#x1f332;帮助命令&#xff08;版本信息&#xff09; docker -v # 显示docker版本 docker version # 显示docker版本信息 docker info # 显示docker系统信息 docker 命…

Excel多表格合并

我这里一共有25张表格: 所有表的表头和格式都一样,但是内容不一样: 现在我要做的是把所有表格的内容合并到一起,研究了一下发现WPS的这项功能要开会员的,本来想用代码撸出来的,但是后来想想还是找其他办法,后来找到"易用宝"这个插件,这个插件可以从如下地址下载:ht…

Python中frozenset,秒变不可变集合,再也不用担心多线程了!

目录 1、Frozenset基础介绍 🌐 1.1 Frozenset定义与创建 1.2 不可变集合特性 1.3 与Set的区别对比 2、Frozenset操作实践 🧩 2.1 初始化与添加元素尝试 2.2 成员测试: in & not in 2.3 集合运算: 并集、交集、差集 2.4 使用场景示例: 字典键、函数参数默认值 …

DisFormer:提高视觉动态预测的准确性和泛化能力

最新的研究进展已经显示出目标中心的表示方法在视觉动态预测任务中可以显著提升预测精度&#xff0c;并且增加模型的可解释性。这种表示方法通过将视觉场景分解为独立的对象&#xff0c;有助于模型更好地理解和预测场景中的变化。 尽管在静态图像的解耦表示学习方面已经取得了一…

聊天交友系统开发专业语聊交友app开发搭建同城交友开发婚恋交友系统相亲app开发

1、上麦相亲互动:直播间内除了红娘外&#xff0c;还有男女用户两个视频麦位&#xff0c;直播间符合要求的用户可以申请上麦 2、公屏聊天:为上麦用户可以通过在公屏发言的方式参与直播间内的话题互动。 3、私信,异性用户之间可以发送私信消息&#xff0c;通过付费或开通会员可解…

Spring 6.1.10版本源码编译

每篇一句 我们对时间的感知其实非常主观&#xff0c;我们越习惯于我们的生活方式&#xff0c;生活里面的新鲜感就越少&#xff0c;我们对时间 的感知就越快&#xff0c;生命就越短。 1.源码下载 进入Spring官网 https://spring.io/ 按照上图步骤进入如下Spring Framework链…

通过RpmBuild构建redis-5.0.9版本的RPM类型包

系列文章目录 rpmbuild基础知识 文章目录 系列文章目录前言一、rpmbuild相关操作1、安装rpmbuild命令2、安装spec文件检查工具3、查看rpmbuild版本4、编译工具安装5、修改rpm制作包的默认路径 二、资源准备1、创建rpmbuild工作目录2、目录作用解释3、下载redis源码包4、上传re…

LLM - 神经网络的组成

1. 一个神经元的结构&#xff1a;即接受多个输入X向量&#xff0c;在一个权重向量W和一个偏执标量b的作用下&#xff0c;经过激活函数后&#xff0c;产生一个输出。 2. 一层神经网络的结构&#xff1a;该层网络里的每个神经元并行计算&#xff0c;得到各自的输出;计算方式是输入…