exponenta event banner

расхождение

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

Описание

пример

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

Множества X, Y, и Z, которые определяют координаты векторных компонентов Fx, Fy, и Fz, должна быть монотонной, но не должна быть равномерно разнесена. X, Y, и Z должны быть 3-D массивы одинакового размера, которые могут быть произведены 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) вычисляет численное расхождение векторного поля 2-D с векторными компонентами Fx и Fy.

Матрицы X и Y, которые определяют координаты для Fx и Fy, должна быть монотонной, но не должна быть равномерно разнесена. X и Y должны быть 2-D матрицами одинакового размера, которые могут быть получены 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. The axes contains 4 objects of type surface.

Укажите координаты 2-D и векторное поле.

[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. The axes contains an object of type quiver.

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

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

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

Входные аргументы

свернуть все

Входные координаты, заданные как матрицы или 3-D массивы.

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

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

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

Компоненты векторного поля с входными координатами, заданными как матрицы или 3-D массивы. Fx, Fy, и Fz должен быть того же размера, что и X, Y, и 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 равно

див F=∇·F=∂Fx∂x+∂Fy∂y+∂Fz∂z.

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

див F=∇·F=∂Fx∂x+∂Fy∂y.

Алгоритмы

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

Например, рассмотрим 2-D векторное поле F, которое представлено матрицами Fx и Fy в местах X и Y с размером mоколо-n. Расположения представляют собой 2-D сетки, созданные [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.

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

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