Привет, Хабр!

В геометрической алгебре достаточно абстрактно введен дифференциал, здесь предлагается наглядный численный метод — выразить дифференциал через ориентированный объём и геометрическое произведение.

Это даёт возможность интерполировать значения функции вне сетки и отдельно учитывать параллельную и ортогональную составляющие приращения.

Написана статья с целью собрать мнения специалистов о достоинствах и недостатках такого подхода. В общем буду рад комментариям.

1. Обозначения

  • Δ — конечные приращения на сетке (шаги Δxyz и разности функции fΔxfyfzf).

  • δ — изменяемые приращения для произвольной точки в окрестности узла.

  • σ1​,σ2​,σ3​ — орты осей в матричном представлении (матрицы Паули):

    σ _1 ​  =\begin{bmatrix}  0 & 1 \\  1 & 0 ​   \end{bmatrix}, \quad σ _2 ​  =\begin{bmatrix}  0 & -i \\  i & 0 ​   \end{bmatrix}, \quad σ _3 ​  =\begin{bmatrix}  1 & 0 \\  0 & -1 ​   \end{bmatrix}.
  • Умножение с точкой ⋅ — матричное (геометрическое).
    Умножение с крестиком × — векторное.

  • I=σ1​⋅σ2⋅​σ3​ — псевдоскаляр (аналог мнимой единицы в ГА).

Вектор в таком базисе записывается как

X=xσ _3 ​  +yσ _2 ​  +zσ _1 ​

Обратите внимание: σ3​ соответствует оси — xσ2​ — yσ1​ — z. Так сделано по мотивам моей предыдущей статьи Давайте объединим линейную и геометрическую алгебры. На простом примере. Часть 1. В разделе "6. Базис Клиффорда для матриц 2х2" можно видеть, что расположение осей несколько иное, чем в декартовых координатах. Так же такое расположение еще делает привычнее некоторые представления, напишу как нибудь.

2. Ориентированный объём и вектор конечных разностей

Ориентированный объём, образованный площадями граней ячейки и смещениями δx,δy,δz:

δV=ΔS_x ⋅​  (δx⋅σ _3 ​  )+ΔS_y ⋅​  (δy⋅σ _2 ​  )+ΔS _z ​ ⋅(δz⋅σ  _1 ​  )ΔS_x ​  =Δy⋅Δz,\quad ΔS_y ​  =Δx⋅Δz, \quad ΔS_z ​  =Δx⋅Δy

Разделив на объём ячейки ΔvxΔyΔz, получим относительный ориентированный объём:

δV ^′  = \frac {δV}  {Δv} ​  =  \frac {Δx}{δx} ⋅​  σ  _3 ​  +  \frac {Δy}{δy} ⋅​  σ  _2 ​  +  \frac {Δz}{δz} ⋅​  σ  _1 ​  .
Как то так как на обложке статьи будет это выглядеть
Как то так как на обложке статьи будет это выглядеть

Вектор конечных разностей (Аналог градиента, но без нормировки на шаги. Знак умножения буду пропускать, так как уже объяснил его смысл, и вообще геометрическое произведение пишется без знака):

\Delta(f) = \Delta_x f\,\sigma_3 + \Delta_y f\,\sigma_2 + \Delta_z f\,\sigma_1\Delta_x f = f(x+\Delta x,y,z)-f(x,y,z),\quad\Delta_y f = f(x,y+\Delta y,z)-f(x,y,z)\Delta_z f = f(x,y,z+\Delta z)-f(x,y,z)

3. Скалярное и обобщённое приращения

Скалярное приращение (классический дифференциал, аппроксимированный конечными разностями) — это скалярная часть геометрического произведения δV′ и Δ(f):

\delta f_{\|} = \frac{\Delta_x f}{\Delta x}\,\delta x               + \frac{\Delta_y f}{\Delta y}\,\delta y               + \frac{\Delta_z f}{\Delta z}\,\delta z

При

 \Delta x,\Delta y,\Delta z\to0 \quad  и \quad \delta x,\delta y,\delta z\to0

это выражение стремится к обычному дифференциалу df.

Полное геометрическое произведение даёт обобщённый дифференциал — сумму скалярной и бивекторной частей:

\delta_g f = \delta f_{\|} + I\;\delta f_{\perp}\delta f_{\perp} = \left( \Delta_y(f) \; \frac{\delta z}{\Delta z} - \Delta_z(f) \; \frac{\delta y}{\Delta y} \right) \; \sigma_3 + \left( \Delta_x(f) \; \frac{\delta z}{\Delta z}-\Delta_z(f) \; \frac{\delta x}{\Delta x}  \right) \; \sigma_2 + \left( \Delta_x(f) \; \frac{\delta y}{\Delta y} - \Delta_y(f) \; \frac{\delta x}{\Delta x} \right) \cdot \sigma_1

Бивекторная часть δf⊥​ равна нулю тогда и только тогда, когда вектор относительного объёма δV′ параллелен вектору конечных разностей Δ(f) — то есть когда смещение (δx,δy,δz) коллинеарно градиенту. Когда бивекторная часть не равна нулю происходит следующее:

  1. Бивекторная часть кодирует нормаль к плоскости перемноженных векторов. Плоскость в которой расположены компоненты диффенциала. Так же она кодирует объект в этой плоскости, ортогональный вектору на который происходит проецирование.

  2. Скалярная часть ортогональна бивекторной части и нормали к плоскости.

  3. Вместе они образуют аналог комплексного числа в этой плоскости.

4. Зачем это нужно

  • Интерполяция вне сетки. Зная в узле сетки значения Δxfyfzf (например, из численного решения), можно вычислить приращение δgf​для любого смещения (δx,δy,δz) в окрестности узла. Никакой дополнительной сетки не требуется.

  • Разделение параллельной и ортогональной составляющих. Скалярная часть δf∥​ — классическое изменение вдоль направления смещения. Бивекторная часть δf⊥​ — мера того, насколько смещение отклоняется от градиента.

  • Выделение траекторий, где обобщённый дифференциал совпадает с классическим. Если потребовать δf⊥​=0, получим условия коллинеарности, которые задают прямые, параллельные Δ(f). Вдоль таких траекторий δgf=δf∥​.

5. Пример применения

Пусть в узле сетки (0,0,0)(0,0,0) известны:

\Delta x = 0.1,\; \Delta y = 0.1,\; \Delta z = 0.1\Delta_x f = 0.2,\; \Delta_y f = 0.3,\; \Delta_z f = 0.4

Это соответствует частным производным: 2,3,4.

Требуется найти значение функции в точке (δx,δy,δz)=(0.02,0.03,0.04) — внутри ячейки.

Вычисляем скалярное приращение:

\delta f_{\|} = \frac{0.04}{0.1}\cdot0.3 + \frac{0.3}{0.1}\cdot0.03 + \frac{0.4}{0.1}\cdot0.04 = 0.29

Вычисляем бивекторную часть (коэффициенты при σ3​,σ2​,σ1​):

c_3 = 0.3\cdot\frac{0.04}{0.1} - 0.4\cdot\frac{0.03}{0.1} =0c_2 = 0.4\cdot\frac{0.02}{0.1} - 0.2\cdot\frac{0.04}{0.1} =0c_1 = 0.2\cdot\frac{0.03}{0.1} - 0.3\cdot\frac{0.02}{0.1} = 0

Здесь смещение оказалось точно параллельным вектору конечных разностей, поэтому бивекторная часть обнулилась. Обобщённый дифференциал совпал с классическим: δgf=0.29

Если взять смещение (δx,δy,δz)=(0.03,0.02,0.04), то:

Скалярное приращение:

\delta(f) = 2\cdot0.03 + 3\cdot0.02 + 4\cdot0.04 = 0.28

Бивекторные коэффициенты:

c_3 = 0.3\cdot0.4 - 0.4\cdot0.2 = 0.04c_2 = 0.4\cdot0.3 - 0.2\cdot0.4 =0.04c_1 = 0.2\cdot0.2 - 0.3\cdot0.3 =  -0.05

Бивекторная часть не равна нулю — смещение не параллельно градиенту. Полное приращение δgf будет содержать как скалярную, так и бивекторную компоненту, что позволяет оценить степень «неградиентности» направления.

6. Итог

  • Предложен способ выразить обобщённый дифференциал через конечные разности и геометрическое произведение.

  • Формулы работают непосредственно с сеточными данными и позволяют интерполировать значения функции в произвольную точку.

  • Бивекторная часть даёт дополнительную информацию — меру отклонения направления смещения от градиента.

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

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

Пишите ваши комментарии!

Only registered users can participate in poll. Log in, please.
Что думаете про статью
50%Полезно4
100%Интересно8
12.5%Поучаствовал бы в развитии идеи1
8 users voted. Nobody abstained.