Математичний аналіз для симуляцій: шпаргалка
Кожна фізична симуляція зрештою зводиться до диференціальних рівнянь — а їхнє розв'язання потребує набору операторів математичного аналізу, систем координат, числових схем і математики обертань. Ця сторінка збирає все найнеобхідніше в одному місці.
1. Оператори векторного аналізу
Чотири фундаментальні диференціальні оператори над скалярними полями f(x,y,z) та векторними полями F = (F_x, F_y, F_z):
∇f = (∂f/∂x, ∂f/∂y, ∂f/∂z)
Дивергенція (вектор → скаляр): чистий витік на одиницю об'єму
∇·F = ∂F_x/∂x + ∂F_y/∂y + ∂F_z/∂z
Ротор (вектор → вектор): локальне обертання
∇×F = (∂F_z/∂y − ∂F_y/∂z, ∂F_x/∂z − ∂F_z/∂x, ∂F_y/∂x − ∂F_x/∂y)
Лапласіан (скаляр → скаляр): кривина / дифузія
∇²f = ∂²f/∂x² + ∂²f/∂y² + ∂²f/∂z²
Векторний лапласіан: ∇²F = (∇²F_x, ∇²F_y, ∇²F_z) (лише в декартових координатах!)
2. Системи координат
Циліндричні (r, φ, z)
∇f = (∂f/∂r, (1/r)∂f/∂φ, ∂f/∂z)
∇²f = (1/r)∂/∂r(r ∂f/∂r) + (1/r²)∂²f/∂φ² + ∂²f/∂z²
dV = r dr dφ dz
Сферичні (r, θ, φ)
∇f = (∂f/∂r, (1/r)∂f/∂θ, (1/r sinθ)∂f/∂φ)
∇²f = (1/r²)∂/∂r(r²∂f/∂r) + (1/r²sinθ)∂/∂θ(sinθ ∂f/∂θ) + (1/r²sin²θ)∂²f/∂φ²
dV = r² sinθ dr dθ dφ
3. Інтегральні теореми
∫∫∫_V ∇·F dV = ∮∮_S F · n̂ dA
Теорема Стокса: поверхневий інтеграл ротора = криволінійний інтеграл уздовж межі
∫∫_S (∇×F) · n̂ dA = ∮_C F · dl
Теореми Гріна:
Перша: ∫∫∫ (φ∇²ψ + ∇φ·∇ψ) dV = ∮∮ φ(∇ψ·n̂) dA
Друга: ∫∫∫ (φ∇²ψ − ψ∇²φ) dV = ∮∮ (φ∇ψ − ψ∇φ)·n̂ dA
Ці теореми лежать в основі законів збереження в симуляціях: збереження маси (дивергенція швидкості), електромагнітні граничні умови (Стокс для закону Фарадея) та методи скінченних об'ємів (теорема Гаусса перетворює рівняння в частинних похідних на поверхневі потоки).
4. Класифікація рівнянь у частинних похідних
Лінійні рівняння у частинних похідних другого порядку у 2D: Au_xx + 2Bu_xy + Cu_yy + (нижчі порядки) = 0. Класифікація залежить від дискримінанта B² − AC:
| Тип | Дискримінант | Приклад рівняння | Фізика | Числовий метод |
|---|---|---|---|---|
| Еліптичне | B² − AC < 0 | ∇²u = f (Пуассон) | Стаціонарне тепло, електростатика | Якобі, Гаусса-Зейделя, багатосіткові |
| Параболічне | B² − AC = 0 | ∂u/∂t = α∇²u (дифузія) | Теплопровідність, дифузія | FTCS, Кранка-Ніколсона, ADI |
| Гіперболічне | B² − AC > 0 | ∂²u/∂t² = c²∇²u (хвиля) | Хвилі, акустика, адвекція | «Чехарда», проти потоку, Лакса-Вендроффа |
5. Скінченно-різницеві схеми
Наближення похідних на дискретній сітці з кроком Δx (простір) та Δt (час):
∂u/∂x ≈ (u_{i+1} − u_{i−1}) / (2Δx) + O(Δx²)
Друга похідна (центральна, 2-го порядку):
∂²u/∂x² ≈ (u_{i+1} − 2u_i + u_{i−1}) / Δx² + O(Δx²)
2D лапласіан (5-точковий шаблон):
∇²u ≈ (u_{i+1,j} + u_{i−1,j} + u_{i,j+1} + u_{i,j−1} − 4u_{i,j}) / Δx²
Схеми інтегрування за часом для ∂u/∂t = α∇²u
| Схема | Формула | Стабільність | Точність |
|---|---|---|---|
| FTCS (прямий час, центральний простір) | u_i^{n+1} = u_i^n + αΔt/Δx² · (u_{i+1}^n − 2u_i^n + u_{i−1}^n) | Умовна: r = αΔt/Δx² ≤ 0.5 | O(Δt, Δx²) |
| Кранка-Ніколсона | Середнє FTCS на n і n+1 (неявна) | Безумовно стабільна | O(Δt², Δx²) |
| ADI (неявна зі змінними напрямками) | Розбиття 2D на два 1D неявні кроки (спочатку x, потім y) | Безумовно стабільна | O(Δt², Δx²) |
c·Δt/Δx ≤ 1 (число Куранта C ≤ 1)
Стійкість за фон Нейманом (параболічна):
r = αΔt/Δx² ≤ 0.5 для FTCS
«Чехарда» (2-го порядку для хвильового рівняння):
u_i^{n+1} = 2u_i^n − u_i^{n−1} + C²(u_{i+1}^n − 2u_i^n + u_{i−1}^n)
де C = cΔt/Δx
6. Комплексні числа та фазори
Модуль: |z| = √(a² + b²) = r
Аргумент: arg(z) = atan2(b, a) = θ
Спряжене: z* = a − bi
Обернене: 1/z = z*/|z|²
Множення: z₁·z₂ = r₁r₂ · e^{i(θ₁+θ₂)} (модулі множаться, кути додаються)
Ділення: z₁/z₂ = (r₁/r₂) · e^{i(θ₁−θ₂)}
Степінь: z^n = r^n · e^{inθ} (теорема Муавра)
Тотожність Ейлера: e^{iπ} + 1 = 0
Фазори подають синусоїдальний усталений стан як комплексні амплітуди: v(t) = Re[V̂ · e^{jωt}], де V̂ = V₀e^{jφ}. Це перетворює диференціальні рівняння в часі на алгебраїчні рівняння за ω — основа аналізу кіл змінного струму, передавальних функцій та обробки сигналів у частотній області.
7. Кватерніонна математика
Кватерніони — це стандартне подання обертань у 3D-симуляціях: вони уникають gimbal lock, плавно інтерполюються (slerp) та ефективно компонують обертання.
де i² = j² = k² = ijk = −1
Спряжений: q* = w − xi − yj − zk
Норма: |q| = √(w² + x² + y² + z²)
Обернений: q⁻¹ = q*/|q|² (для одиничного кватерніона: q⁻¹ = q*)
Множення (добуток Гамільтона):
(q₁q₂).w = w₁w₂ − x₁x₂ − y₁y₂ − z₁z₂
(q₁q₂).x = w₁x₂ + x₁w₂ + y₁z₂ − z₁y₂
(q₁q₂).y = w₁y₂ − x₁z₂ + y₁w₂ + z₁x₂
(q₁q₂).z = w₁z₂ + x₁y₂ − y₁x₂ + z₁w₂
НЕ комутативне: q₁q₂ ≠ q₂q₁ (так само, як обертання)
Вісь-кут ↔ кватерніон
q = cos(θ/2) + sin(θ/2)(n_x·i + n_y·j + n_z·k)
Обернено: θ = 2·acos(w), n̂ = (x,y,z)/sin(θ/2)
Обертання вектора v кватерніоном q:
v' = q · (0 + v) · q* (сендвіч-добуток)
Slerp (сферична лінійна інтерполяція)
Явна формула (без pow):
Ω = acos(q₀ · q₁) (скалярний добуток 4-векторів)
slerp(t) = (sin((1−t)Ω)/sinΩ) · q₀ + (sin(tΩ)/sinΩ) · q₁
Якщо q₀ · q₁ < 0: змініть знак одного кватерніона, щоб узяти коротшу дугу
Якщо Ω ≈ 0: перейдіть до nlerp (нормалізованої лінійної інтерполяції)
Експоненціальне та логарифмічне відображення
exp(q) = (cos|v|, v̂·sin|v|)
log(q) для одиничного кватерніона q = (w, v):
log(q) = (0, v̂·acos(w))
Застосування: exp/log дають кватерніонну «швидкість» (кутова швидкість ω → q(t) = exp(½ωt)) та плавну інтерполяцію в дотичному просторі.
8. Ключові тотожності
∇×(∇f) = 0 (ротор градієнта дорівнює нулю)
∇·(∇×F) = 0 (дивергенція ротора дорівнює нулю)
∇×(∇×F) = ∇(∇·F) − ∇²F (подвійний векторний добуток)
∇·(fF) = f(∇·F) + F·(∇f) (правило добутку для дивергенції)
∇×(fF) = f(∇×F) + (∇f)×F (правило добутку для ротора)
Інтегрування частинами (1D):
∫_a^b u dv = [uv]_a^b − ∫_a^b v du
Розклад Тейлора:
f(x+h) = f(x) + hf'(x) + (h²/2!)f''(x) + (h³/3!)f'''(x) + O(h⁴)
Корисні границі:
lim_{x→0} sin(x)/x = 1
lim_{n→∞} (1 + 1/n)^n = e
Похідна матриці обертання:
dR/dt = ω× · R (ω× = кососиметрична матриця кутової швидкості)
Теорема перенесення Рейнольдса (рухомий контрольний об'єм):
d/dt ∫∫∫_V(t) f dV = ∫∫∫_V ∂f/∂t dV + ∮∮_S f (v·n̂) dA