Кривая и угловая скорость векторного поля
[
вычисляет числовые кривые и скорость вращения векторного поля 3-D с векторными компонентами curlx
,curly
,curlz
,cav
] = curl(X
,Y
,Z
,Fx
,Fy
,Fz
)Fx
, Fy
, и Fz
. Область выхода curlx
, curly
, и curlz
представляют векторные компоненты curl, и cav
представляет скорость вращения завитка.
Массивы X
, Y
, и Z
, которые определяют координаты для компонентов вектора Fx
, Fy
, и Fz
, должны быть монотонными, но не должны быть равномерно разнесены. X
, Y
, и Z
должны быть трехмерными массивами того же размера, которые могут быть произведены 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)
. Используйте этот синтаксис, когда вы хотите сохранить память и не обеспокоены абсолютными расстояниями между точками.
[
вычисляет числовые кривые и скорость вращения векторного поля 2-D с векторными компонентами curlz
,cav
] = curl(X
,Y
,Fx
,Fy
)Fx
и Fy
. Область выхода curlz
представляет z -компонент curl, и cav
представляет скорость вращения завитка.
Матрицы X
и Y
, которые определяют координаты для Fx
и Fy
, должны быть монотонными, но не должны быть равномерно разнесены. X
и Y
должны быть 2-D матрицы того же размера, которые могут быть созданы meshgrid
.
curl
вычисляет частные производные в его определении с помощью конечных различий. Для внутренних точек данных частные производные вычисляются с помощью центрального различия. Для точек данных вдоль ребер частные производные вычисляются с помощью одностороннего (прямого) различия.
Например, рассмотрим 2-D векторное поле F, которое представлено матрицами Fx
и Fy
в местах нахождения X
и Y
с size m
-by- n
. Местоположения - это сетки 2-D созданные [X,Y] = meshgrid(x,y)
, где x
является вектором длины n
и y
является вектором длины m
. curl
тогда вычисляет частные производные <reservedrangesplaceholder3> / <reservedrangesplaceholder2> и <reservedrangesplaceholder1> / <reservedrangesplaceholder0> как
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
.