Альтернативный способ задать дифференциал в геометрической алгебре

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет Хабр!

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

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

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

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

  • Δ — конечные приращения на сетке (шаги Δx,Δy,Δz и разности функции fΔx​f,Δy​f,Δz​f).

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

  • σ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

Разделив на объём ячейки Δv=ΔxΔ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. Зачем это нужно

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

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

  • Выделение траекторий, где обобщённый дифференциал совпадает с классическим. Если потребовать δf⊥​=0, получим условия коллинеарности, которые задают прямые, параллельные Δ(f). Вдоль таких траекторий δg​f=δ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

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

6. Итог

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

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

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

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

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

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

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Что думаете про статью
0%Полезно0
100%Интересно1
0%Поучаствовал бы в развитии идеи0
Проголосовал 1 пользователь. Воздержавшихся нет.
Источник: https://habr.com/ru/articles/1016486/


Интересные статьи

Интересные статьи

Новое в контроллерах Bitrix Framework: фильтры и валидацияПривет! Сегодня мы расскажем, какие нововведения появились в контроллерах ядра за последнее время.
Конструктор сайтов Тильда давно зарекомендовал себя как удобный инструмент для создания сайтов — на его базе реализованы десятки тысяч проектов. Некоторые из них размещены на серверах самой платформы,...
Битрикс24 — корпоративное SaaS-решение (Software as a Service, программное обеспечение как услуга), которым пользуются компании разного масштаба и профиля для коммуникации между сотрудниками, хран...
Рис. 1. Фразы и предложения в векторном представлении модели естественного языка Обработка естественного языка (Natural Language Processing, NLP) – это область вычислительной лингвис...
Предисловие: — У меня есть небольшой заброшенный паблик (26к подписчиков), раньше там стоял пранк бот от чатуса, это приносило мне 300-800 рублей в день пассивного заработка, если сдела...