Линейная алгебра

Искусство использования матриц и векторов для решения задач физики

Версия для печати

Векторные вычисления: grad, div, curl (rot) в разных системах координат

Способность Maple выполнять алгебраические действия означает, что он также может брать векторные производные с помощью команд Gradient, Divergence, Curl и Laplacian. Он может это делать в декартовых, цилиндрических и сферических координатах, задаваемых командой SetCoordinates. Но вначале надо вызывать специальный пакет векторных вычислений VectorCalculus.

  • restart:with(VectorCalculus):
Градиент

Примеры градиента в каждой из систем координат. Определяем функцию и берем ее градиент:

Декартовы координаты
  • SetCoordinates('cartesian'[x,y,z]);
  • f1:=3*x^2+y*sqrt(z);
  • Gradient(f1);
Цилиндрические
  • SetCoordinates('cylindrical'[r,theta,z]);
  • f2:=cos(theta)/sqrt(r^2+z^2);
  • Gradient(f2);
Сферические
  • SetCoordinates('spherical'[r,theta,phi]);
  • f3:=sin(phi)*r^2*(3*cos(theta)^2-1);
  • Gradient(f3);
Дивергенция

Maple может вычислять дивергенцию в каждой из координатных систем. Дивергенция действует на векторное поле, поэтому вначале надо применить команду VectorField, чтобы определить для выбранной системы координат.

Декартовы координаты
  • SetCoordinates('cartesian'[x,y,z]);
  • g1:=VectorField();
  • Divergence(g1);
Цилиндрические
  • SetCoordinates('cylindrical'[r,theta,z]);
  • g2:=VectorField(<r^2*cos(theta),r^2*sin(theta),z^2>);
  • Divergence(g2);
Сферические
  • SetCoordinates('spherical'[r,theta,phi]);
  • g3:=VectorField(<r^2*cos(theta),r^2*sin(theta),cos(phi)>);
  • Divergence(g3,[r,theta,phi],coords=spherical);
Ротор (Curl)

При вычислении ротора используется то же самое векторное поле, что для дивергенции.

Декартовы координаты
  • SetCoordinates('cartesian'[x,y,z]);
  • Curl(g1);
Цилиндрические
  • SetCoordinates('cylindrical'[r,theta,z]);
  • Curl(g2);
Сферические
  • SetCoordinates('spherical'[r,theta,phi]);
  • Curl(g3);
Лапласиан (∇2)

В каждой из этих систем координат можно выполнить операцию ∇2, Laplacian. Ниже – примеры для скалярной функции, использованной выше для градиента.

Декартовы координаты
  • SetCoordinates('cartesian'[x,y,z]);
  • Laplacian(f1);
Цилиндрические
  • SetCoordinates('cylindrical'[r,theta,z]);
  • Laplacian(f2);
Сферические
  • SetCoordinates('spherical'[r,theta,phi]);
  • Laplacian(f3);
  • ?Laplacian

Это замечательные возможности, но в физике проблема чаще не в вычислении векторных производных, а в обратной задаче о нахождении поля. Это намного труднее, и Maple здесь сильно не поможет.

Задача 5.5 о расчете плотности тока и плотности заряда

Два уравнения Максвелла для статического электрического и магнитного полей: электростатический потенциал точечного диполя div(E) = ρ/ε0, а для магнитного поля curl(B) = μ0J. Для каждого из полей E или B найдите формулы плотности заряда ρ и плотности тока J. Учтите, что E и B – векторы, которые надо правильно определить. Например, если Bθ = kr, то B надо определять как: B:=array([0,k*r,0]).

(a) Сферические координаты: (точечный заряд).

(b) Сферические координаты: (заряд твердой сферы).

(c) Цилиндрические координаты: (линейный заряд).

(d) Цилиндрические координаты: (полый заряженный цилиндр).

(e) Цилиндрические координаты: (длинная проволока).

(f) Цилиндрические координаты: (однородный ток в проволоке).

(g) Цилиндрические координаты: .