计算向量场的散度 您所在的位置:网站首页 div旋度怎么求 计算向量场的散度

计算向量场的散度

2023-09-03 15:18| 来源: 网络整理| 查看: 265

divergence

计算向量场的散度

全页折叠 语法div = divergence(X,Y,Z,Fx,Fy,Fz)div = divergence(Fx,Fy,Fz)div = divergence(X,Y,Fx,Fy)div = divergence(Fx,Fy)说明

示例

div = divergence(X,Y,Z,Fx,Fy,Fz) 计算具有向量分量 Fx、Fy 和 Fz 的三维向量场的数值散度。

数组 X、Y 和 Z 用于定义向量分量 Fx、Fy 和 Fz 的坐标,它们必须是单调的,但无需间隔均匀。X、Y 和 Z 必须为大小相同的三维数组,可以由 meshgrid 生成。

div = divergence(Fx,Fy,Fz) 假定一个默认的样本点网格。默认网格点 X、Y 和 Z 由表达式 [X,Y,Z] = meshgrid(1:n,1:m,1:p) 确定,其中 [m,n,p] = size(Fx)。如果您希望节省内存且不在意点之间的绝对距离,则可使用此语法。

示例

div = divergence(X,Y,Fx,Fy) 计算具有向量分量 Fx 和 Fy 的二维向量场的数值散度。

矩阵 X 和 Y 用于定义 Fx 和 Fy 坐标,它们必须是单调的,但无需间隔均匀。X 和 Y 必须为大小相同的二维矩阵,可以由 meshgrid 生成。

div = divergence(Fx,Fy) 假定一个默认的样本点网格。默认网格点 X 和 Y 由表达式 [X,Y] = meshgrid(1:n,1:m) 确定,其中 [m,n] = size(Fx)。如果您希望节省内存且不在意点之间的绝对距离,则可使用此语法。

示例

全部折叠

向量三维体数据发散显示为切片平面打开实时脚本

加载一个表示风场的三维向量场数据集。该数据集包含大小为 35×41×15 的数组。

load wind

计算向量场的数值散度。

div = divergence(x,y,z,u,v,w);

将向量三维体数据的发散显示为切片平面。用 x=90 和 x=134 显示 yz 平面的散度,用 y=59 显示 xz 平面的散度,用 z=0 显示 xy 平面的散度。使用颜色表示散度。

h = slice(x,y,z,div,[90 134],59,0); shading interp colorbar daspect([1 1 1]); axis tight camlight set([h(1),h(2)],'ambientstrength',0.6);

二维向量场的散度打开实时脚本

指定二维坐标和向量场。

[x,y] = meshgrid(-8:2:8,-8:2:8); Fx = 200 - (x.^2 + y.^2); Fy = 200 - (x.^2 + y.^2);

绘制向量场分量 Fx 和 Fy。

quiver(x,y,Fx,Fy)

求二维向量场的数值散度。绘制散度的等高线。

D = divergence(x,y,Fx,Fy); hold on contour(x,y,D,'ShowText','on')

输入参数

全部折叠

X, Y, Z — 输入坐标 矩阵 | 三维数组

输入坐标,指定为矩阵或三维数组。

对于二维向量场,X 和 Y 必须为大小相同的二维矩阵,并且该大小不能小于 2×2。

对于三维向量场,X、Y 和 Z 必须为相同大小的三维数组,并且该大小不能小于 2×2×2。

数据类型: single | double 复数支持: 是

Fx, Fy, Fz — 输入坐标处的向量场分量 矩阵 | 三维数组

输入坐标处的向量场分量,指定为矩阵或三维数组。Fx、Fy 和 Fz 的大小必须与 X、Y 和 Z 的大小相同。

数据类型: single | double 复数支持: 是

详细信息

全部折叠

数值散度

向量场的数值散度是根据向量场在某些点的已知值来估计散度值的一种方式。

对于具有三个变量的三维向量场 F(x,y,z)=Fx(x,y,z) e^x+Fy(x,y,z) e^y+Fz(x,y,z) e^z,F 的散度定义为

div F=∇·F=∂Fx∂x+∂Fy∂y+∂Fz∂z.

对于具有两个变量的二维向量场 F(x,y)=Fx(x,y) e^x+Fy(x,y) e^y,散度为

div F=∇·F=∂Fx∂x+∂Fy∂y.

算法

divergence 使用有限差分计算其定义中的偏导数。对于内部数据点,使用中心差分计算偏导数。对于沿边缘的数据点,使用单侧(正向)差分计算偏导数。

例如,假设有一个二维向量场 F,它由位于 X 和 Y 位置的矩阵 Fx 和 Fy 表示,大小为 m×n。位置是由 [X,Y] = meshgrid(x,y) 创建的二维网格,其中 x 是长度为 n 的向量,y 是长度为 m 的向量。然后 divergence 计算偏导数 ∂Fx / ∂x 和 ∂Fy / ∂y,如下所示

dFx(:,i) = (Fx(:,i+1) - Fx(:,i-1))/(x(i+1) - x(i-1)) 和

dFy(j,:) = (Fy(j+1,:) - Fy(j-1,:))/(y(j+1) - y(j-1))

(对于内部数据点。)

dFx(:,1) = (Fx(:,2) - Fx(:,1))/(x(2) - x(1)) 和

dFx(:,n) = (Fx(:,n) - Fx(:,n-1))/(x(n) - x(n-1))

(对于左边缘和右边缘的数据点。)

dFy(1,:) = (Fy(2,:) - Fy(1,:))/(y(2) - y(1)) 和

dFy(m,:) = (Fy(m,:) - Fy(m-1,:))/(y(m) - y(m-1))

(对于上边缘和下边缘的数据点。)

向量场的数值散度等于 div = dFx + dFy。

扩展功能GPU 数组 通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。

用法说明和限制:

此函数接受 GPU 数组,但不在 GPU 上运行。

有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。

分布式数组 使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。

用法说明和限制:

此函数在分布式数组上运行,但在客户端 MATLAB® 中执行。

有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。

版本历史记录

在 R2006a 之前推出

另请参阅

streamtube | gradient | curl | isosurface

主题三维体可视化概述利用流管显示散度


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有