exponenta event banner

завиток

Скручивание и угловая скорость векторного поля

Описание

пример

[curlx,curly,curlz,cav] = curl(X,Y,Z,Fx,Fy,Fz) вычисляет числовой завиток и угловую скорость 3D векторной области с векторными компонентами Fx, Fy, и Fz. Продукция curlx, curly, и curlz представляют векторные компоненты скругления, и cav представляет угловую скорость завивки.

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

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

пример

[curlz,cav] = curl(X,Y,Fx,Fy) вычисляет числовой завиток и угловую скорость 2-й векторной области с векторными компонентами Fx и Fy. Продукция curlz представляет z-компонент скругления, и cav представляет угловую скорость завивки.

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

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

пример

cav = curl(___) возвращает только угловую скорость векторного поля.

Примеры

свернуть все

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

load wind

Вычислите численное скручивание и угловую скорость векторного поля.

[curlx,curly,curlz,cav] = curl(x,y,z,u,v,w);

Отображение 2-D среза вычисленного скругления и угловой скорости. Разрезать данные на z(:,:,1), где координата z равна -0.002.

k = 1;
xs = x(:,:,k); 
ys = y(:,:,k); 
zs = z(:,:,k); 
us = u(:,:,k); 
vs = v(:,:,k); 

Постройте график угловой скорости в 2-D координатах с помощью pcolor. Отображение компонентов x и y векторного поля с помощью quiver.

pcolor(xs,ys,cav(:,:,k))
shading interp
colorbar
hold on
quiver(xs,ys,us,vs,'k')
hold off

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

Затем постройте график компонентов скругления 3-D на секущей плоскости xy.

quiver3(xs,ys,zs,curlx(:,:,k),curly(:,:,k),curlz(:,:,k),'b')
view(0,90)

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

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

[x,y] = meshgrid(-4:4,-4:4);
Fx = -y*2;
Fy = x*2;

Печать компонентов векторного поля Fx и Fy.

quiver(x,y,Fx,Fy)

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

Найдите числовую кривизну и угловую скорость векторного поля 2-D. Значения скручивания и угловой скорости постоянны на всех входных координатах.

[curlz,cav] = curl(x,y,Fx,Fy)
curlz = 9×9

     4     4     4     4     4     4     4     4     4
     4     4     4     4     4     4     4     4     4
     4     4     4     4     4     4     4     4     4
     4     4     4     4     4     4     4     4     4
     4     4     4     4     4     4     4     4     4
     4     4     4     4     4     4     4     4     4
     4     4     4     4     4     4     4     4     4
     4     4     4     4     4     4     4     4     4
     4     4     4     4     4     4     4     4     4

cav = 9×9

     2     2     2     2     2     2     2     2     2
     2     2     2     2     2     2     2     2     2
     2     2     2     2     2     2     2     2     2
     2     2     2     2     2     2     2     2     2
     2     2     2     2     2     2     2     2     2
     2     2     2     2     2     2     2     2     2
     2     2     2     2     2     2     2     2     2
     2     2     2     2     2     2     2     2     2
     2     2     2     2     2     2     2     2     2

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

load wind

Вычислите угловую скорость векторного поля.

cav = curl(x,y,z,u,v,w);

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

h = slice(x,y,z,cav,[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.

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

свернуть все

Входные координаты, заданные как матрицы или 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 массивов.

Угловая скорость при входных координатах, возвращаемая как матрица или 3-D массив.

Подробнее

свернуть все

Численная скругление и угловая скорость

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

Для 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= (∂Fz∂y−∂Fy∂z) e ^ x + (∂Fx∂z−∂Fz∂x) e ^ y + (∂Fy∂x−∂Fx∂y) e ^ z.

Угловая скорость определяется как λ = 12 (∇×F)· F ^.

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

скручивание F=∇×F= (∂Fy∂x−∂Fx∂y) e ^ z.

Угловая скорость определена как ω = 12 (×F) z=12 (∂Fy∂x− Fx∂y) e^z.

Алгоритмы

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

Например, рассмотрим 2-D векторное поле F, которое представлено матрицами Fx и Fy в местах X и Y с размером mоколо-n. Расположения представляют собой 2-D сетки, созданные [X,Y] = meshgrid(x,y), где x - вектор длины n и y - вектор длины m. curl затем вычисляет частные производные ∂Fy/ ∂x и ∂Fx/ ∂y как

  • dFy_dx(:,i) = (Fy(:,i+1) - Fy(:,i-1))/(x(i+1) - x(i-1)) и

    dFx_dy(j,:) = (Fx(j+1,:) - Fx(j-1,:))/(y(j+1) - y(j-1))

    для внутренних точек данных.

  • dFy_dx(:,1) = (Fy(:,2) - Fy(:,1))/(x(2) - x(1)) и

    dFy_dx(:,n) = (Fy(:,n) - Fy(:,n-1))/(x(n) - x(n-1))

    для точек данных на левом и правом краях.

  • dFx_dy(1,:) = (Fx(2,:) - Fx(1,:))/(y(2) - y(1)) и

    dFx_dy(m,:) = (Fx(m,:) - Fx(m-1,:))/(y(m) - y(m-1))

    для точек данных на верхнем и нижнем краях.

Численный скручивание векторного поля равно curlz = dFy_dx - dFx_dy и угловая скорость равна cav = 0.5*curlz.

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

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