divergence

Вычислите расхождение векторного поля

Описание

пример

div = divergence(X,Y,Z,Fx,Fy,Fz) вычисляет числовое расхождение 3-D векторного поля с векторными компонентами Fx, Fy, и Fz.

Массивы XY, и Z, которые задают координаты для векторных компонентов Fx, Fy, и Fz, должно быть монотонным, но не должны быть расположенными равными интервалами. XY, и Z должны быть трехмерные массивы, одного размера, который может быть произведен meshgrid.

div = divergence(Fx,Fy,Fz) принимает сетку по умолчанию точек выборки. Узлы решетки по умолчанию XY, и Z определяются выражением [X,Y,Z] = meshgrid(1:n,1:m,1:p), где [m,n,p] = size(Fx). Используйте этот синтаксис, когда это необходимо, чтобы сохранить память, и не касаются абсолютных расстояний между точками.

пример

div = divergence(X,Y,Fx,Fy) вычисляет числовое расхождение 2D векторного поля с векторными компонентами Fx и Fy.

Матрицы X и Y, которые задают координаты для Fx и Fy, должно быть монотонным, но не должны быть расположенными равными интервалами. X и Y должны быть 2D матрицы, одного размера, который может быть произведен meshgrid.

div = divergence(Fx,Fy) принимает сетку по умолчанию точек выборки. Узлы решетки по умолчанию X и Y определяются выражением [X,Y] = meshgrid(1:n,1:m), где [m,n] = size(Fx). Используйте этот синтаксис, когда это необходимо, чтобы сохранить память, и не касаются абсолютных расстояний между точками.

Примеры

свернуть все

Загрузите 3-D векторный полевой набор данных, который представляет поток ветра. Набор данных содержит массивы размера 35 41 15.

load wind

Вычислите числовое расхождение векторного поля.

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

Отобразите расхождение векторных данных об объеме как плоскости разбиения. Покажите расхождение в yz- плоскости с x=90 и x=134, в xz- плоскость с y=59, и в xy- плоскость с z=0. Используйте цвет, чтобы указать на расхождение.

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);

Figure contains an axes object. The axes object contains 4 objects of type surface.

Задайте 2D координаты и векторное поле.

[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)

Figure contains an axes object. The axes object contains an object of type quiver.

Найдите числовое расхождение 2D векторного поля. Постройте контур расхождения.

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

Figure contains an axes object. The axes object contains 2 objects of type quiver, contour.

Входные параметры

свернуть все

Введите координаты в виде матриц или трехмерных массивов.

  • Для 2D векторных полей, X и Y должны быть 2D матрицы, одного размера, и тот размер может быть не меньшим, чем 2- 2.

  • Для 3-D векторных полей, XY, и Z должны быть трехмерные массивы, одного размера, и тот размер может быть не меньшим, чем 2- 2- 2.

Типы данных: single | double
Поддержка комплексного числа: Да

Векторные полевые компоненты во входе координируют в виде матриц или трехмерных массивов. Fx, Fy, и Fz должен быть одного размера с XY, и Z.

Типы данных: single | double
Поддержка комплексного числа: Да

Больше о

свернуть все

Числовое расхождение

Числовое расхождение векторного поля является способом оценить значения расхождения с помощью известных значений векторного поля в определенные моменты.

Для 3-D векторного поля трех переменных 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=Fxx+Fyy+Fzz.

Для 2D векторного поля двух переменных F(x,y)=Fx(x,y)e^x+Fy(x,y)e^y, расхождение

div F=·F=Fxx+Fyy.

Алгоритмы

divergence вычисляет частные производные в его определении при помощи конечных разностей. Для внутренних точек данных частные производные вычислены с помощью центральной разности. Для точек данных вдоль ребер частные производные вычисляются с помощью одностороннего (прямого) различия.

Например, рассмотрите 2D векторное поле F, который представлен матрицами Fx и Fy в местоположениях X и Y с размером m- n. Местоположения являются 2D сетками, созданными [X,Y] = meshgrid(x,y), где x вектор из длины n и y вектор из длины mрасхождение затем вычисляет частные производные 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.

Расширенные возможности

Представлено до R2006a