From 61b5ce20f25c5785e41574998a12c6d06eb05a5e Mon Sep 17 00:00:00 2001 From: Thomas Albers Date: Wed, 8 Mar 2023 23:43:00 +0100 Subject: Restructure build system and directory structures --- src/math/cylindrical_coordinates.org | 36 +++++++++ src/math/derivatives.org | 26 +++++++ src/math/diff.org | 100 +++++++++++++++++++++++++ src/math/fft.org | 141 +++++++++++++++++++++++++++++++++++ src/math/index.org | 19 +++++ src/math/integrals.org | 35 +++++++++ src/math/lagrange.org | 23 ++++++ src/math/laplace.org | 39 ++++++++++ src/math/levi_cevita.org | 25 +++++++ src/math/matrices.org | 33 ++++++++ src/math/orbit.org | 89 ++++++++++++++++++++++ src/math/polar_coordinates.org | 34 +++++++++ src/math/spherical-harmonics.org | 119 +++++++++++++++++++++++++++++ src/math/spherical_coordinates.org | 38 ++++++++++ src/math/trigonometry.org | 55 ++++++++++++++ src/math/variation.org | 19 +++++ src/math/vectors.org | 56 ++++++++++++++ 17 files changed, 887 insertions(+) create mode 100644 src/math/cylindrical_coordinates.org create mode 100644 src/math/derivatives.org create mode 100644 src/math/diff.org create mode 100644 src/math/fft.org create mode 100644 src/math/index.org create mode 100644 src/math/integrals.org create mode 100644 src/math/lagrange.org create mode 100644 src/math/laplace.org create mode 100644 src/math/levi_cevita.org create mode 100644 src/math/matrices.org create mode 100644 src/math/orbit.org create mode 100644 src/math/polar_coordinates.org create mode 100644 src/math/spherical-harmonics.org create mode 100644 src/math/spherical_coordinates.org create mode 100644 src/math/trigonometry.org create mode 100644 src/math/variation.org create mode 100644 src/math/vectors.org (limited to 'src/math') diff --git a/src/math/cylindrical_coordinates.org b/src/math/cylindrical_coordinates.org new file mode 100644 index 0000000..bfb6d57 --- /dev/null +++ b/src/math/cylindrical_coordinates.org @@ -0,0 +1,36 @@ +#+title:Cylindrical Coordinates +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* Coordinate transformations +\begin{align*} +x &= r \cos\varphi\\ +y &= r \sin\varphi\\ +z &= z +\end{align*} + +* Local unit vectors +\begin{align*} +\unitv{r} &= \cos\theta \unitv{x} + \sin\theta \unitv{y}\\ +\unitv{\theta} &= -\sin\theta \unitv{x} + \cos\theta \unitv{y}\\ +\unitv{z} &= \unitv{z} +\end{align*} + +* Kinematic in cylindrical coordinates +** Time derivatives of the local unit vectors +\begin{align*} +\deriv{\unitv{r}}{t} &= \dot{\theta}\unitv{\theta}\\ +\deriv{\unitv{\theta}}{t} &= -\dot{\theta}\unitv{r}\\ +\deriv{\unitv{z}}{t} &= 0 +\end{align*} + +** Position vector and its time derivatives +\begin{align*} +\bm{r} &= r\unitv{r} + z\unitv{z}\\ +\bm{v} &= \dot{r}\unitv{r} + r\dot\theta\unitv{\theta} + \dot{z}\unitv{z}\\ +\bm{a} &= \left(\ddot{r}-r\dot{\theta}^2\right)\unitv{r} + \left(2\dot{r}\dot{\theta}+r\ddot{\theta}\right)\unitv{\theta} + \ddot{z}\unitv{z} +\end{align*} diff --git a/src/math/derivatives.org b/src/math/derivatives.org new file mode 100644 index 0000000..b9d431d --- /dev/null +++ b/src/math/derivatives.org @@ -0,0 +1,26 @@ +#+title:Table of Derivatives +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* General Properties of the Derivative +Let $f$ and $g$ be real valued functions and $c$ some real constant: +\begin{align*} +\dcoff{(cf)} &= c\sdcoff{f}\\ +\dcoff{(f \pm g)} &= \sdcoff{f} \pm \sdcoff{g}\\ +\dcoff{(fg)} &= \sdcoff{f}g + f\sdcoff{g}\\ +\dcoff{\left(\frac{f}{g}\right)} &= \frac{\sdcoff{f}g - f\sdcoff{g}}{g^2} +\end{align*} + +* Trigonometric Funtions +\begin{align*} +\ddx{\sin(x)} &= \cos(x)\\ +\ddx{\cos(x)} &= -\sin(x)\\ +\ddx{\tan(x)} &= \sec^2(x)\\ +\ddx{\sec(x)} &= \sec(x)\tan(x)\\ +\ddx{\csc(x)} &= \csc(x)\cot(x)\\ +\ddx{\csc(x)} &= -\csc^2(x) +\end{align*} diff --git a/src/math/diff.org b/src/math/diff.org new file mode 100644 index 0000000..bbb8fa6 --- /dev/null +++ b/src/math/diff.org @@ -0,0 +1,100 @@ +#+title: Method for solving first order and Bernoulli's differential equations +#+author: Thomas Albers Raviola +#+date: 2022-10-01 +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* History +I came across the method concerning this article in an old math book from Doctor +Granville (Elements of differential and integral calculus - ISBN-13: +978-968-18-1178-5). It doesn't appear to be a popular technique as when using it +for my assignments I always had to explain what I was doing. As of yet, I still +haven't found another text referencing it, which is why I decided to include it +in my website. + +In the original book this procedure is shown but never really explained, it is +left as a sort of "it just works" thing. Here is my attempt to it clear. + +* Theory +Throughout this article we'll consider first order differential equations with +function coefficients just as a special case of the Bernoulli's differential +equation with $n = 0$. + +Consider now the following ODE: +\begin{equation*} +y' + P(x)y = Q(x)y^n +\end{equation*} + +let $y$ be the product of two arbitrary functions $w$ and $z$ such that + +\begin{align*} +y &= wz \\ +y' &= w'z + wz' +\end{align*} + +we now restrict $z$ to be the solution of the ODE + +\begin{equation*} +z' + P(x)z = 0 +\end{equation*} + +with this it is possible to solve for $z$ by integrating + +\begin{equation*} +\frac{z'}{z} = - P(x) \\ +\end{equation*} + +using $z$ we solve for $w$ by replacing $y$ inside the original ODE + +\begin{align*} +w'z + wz' + P(x)wz &= Q(x)w^nz^n \\ +w'z + w\left(z' + P(x)z\right) &= Q(x)w^nz^n \\ +w'z &= Q(x)w^nz^n \\ +\frac{w'}{w^n} &= Q(x)z^{n-1} \\ +\end{align*} + +the general solution to our original ODE can be simply obtained by multiplying +$w$ and $z$. + +* Comments +This method, while functional, may not always be the most practical. In some +cases the differential equations for $w$ and $z$ may not have closed algebraic +solutions. A more traditional substitution may in some situations also be easier +than this method. Like always it is up to one to know which tool to apply for a +given problem. + +* Example +Let's solve an example to show the method in practice + +\begin{align*} +y' - 3x^2y &= -x^2y^3 \\ +w'z + wz' - 3x^2wz &= -x^2w^3z^3 \\ +w'z + w\left(z' - 3x^2z\right) &= -x^2w^3z^3 +\end{align*} + +solve now for $z$ + +\begin{align*} +z' - 3x^2z &= 0 \\ +\frac{z'}{z} &= 3x^2 \\ +z &= c e^{x^3} +\end{align*} + +replace $z$ in the equation + +\begin{align*} +w' &= -x^2w^3z^2 \\ +- \frac{w'}{w^3} &= c^2 e^(2x^3)x^2 \\ +\frac{1}{2 w^2} &= c^2\left(\frac{e^{2x^3}}{6} + k\right) \\ +w &= \pm \frac{1}{c} \sqrt{\frac{3}{e^{2x^3} + k}} +\end{align*} + +finally with $w$ and $z$ get $y$ + +\begin{equation*} +y = \pm e^{x^3} \sqrt{\frac{3}{e^{2x^3} + k}} +\end{equation*} diff --git a/src/math/fft.org b/src/math/fft.org new file mode 100644 index 0000000..45e9595 --- /dev/null +++ b/src/math/fft.org @@ -0,0 +1,141 @@ +#+title: Fast Fourier Transform +#+subtitle: Implementation in Common Lisp +#+author: Thomas Albers Raviola +#+date: <2023-03-06> +#+setupfile: ../../math_options.org + +In this article I attept to explain the principles of the fast fourier transform +(FFT) and develop in incremental steps an implementation in common lisp. + +*NOTE*: This is part of my personal notes and as such may contain mistakes or +not be correct at all. If you find any issues please contact me at my email +address. + +* Introduction + +The FFT is an algorithm for computing the discrete fourier transform (DFT) of an +array of values that is meant to be faster than the usual naive implementation. +Instead of having the usual \[ O(n^2) \] behaviour it is an \[ O(n\log(n)) \] +algorithm. + +* Derivation + +To derive the FFT we first consider the definition of the DFT + +Let \[ \xi_k \] be an array of N, possible complex, numbers. The DFT of \[ \xi_k +\] is an array of the same length \[ x_k \] defined as: + +{{{beg-eqn}}} +x_k = \sum_{n=0}^{N-1} \xi_n e^{- \frac{2 \pi i}{N} n k} +{{{end-eqn}}} + +A possible implementation of this in code would be something like the following: + +#+begin_src common-lisp + (defun dft (x) + "Naive discrete fourier transform, not fft" + (flet ((transform (k) + (loop :with i = (complex 0 1) + :for n :below (length x) + :sum (* (aref x n) (exp (- (/ (* 2 pi i k n) (length x)))))))) + (map-seq-iota #'transform (length x)))) +#+end_src + +But we can do a lot better in terms of performance. To this end we first split +the sum {{{ref}}} into even and odd members + +{{{beg-align}}} +x_k &= \sum_{n=0}^{N/2-1} \xi_{2n} e^{- \frac{2 \pi i}{N} (2n) k} + +\sum_{n=0}^{N/2-1} \xi_{2n+1} e^{- \frac{2 \pi i}{N} (2n+1) k}\\ +&= \sum_{n=0}^{N/2-1} \xi_{2n} e^{- \frac{2 \pi i}{N/2} n k} + +e^{-\frac{2 \pi i}{N}k} \sum_{n=0}^{N/2-1} \xi_{2n+1} e^{- \frac{2 \pi i}{N/2} n +k}\\ +&=E_k + e^{-\frac{2 \pi i}{N}k} O_k +{{{end-align}}} + +Where \[ E_k \] and \[ O_k \] themselves are FFTs of a smaller array each. +Furthermore notice how thanks to the cyclic nature of the complex exponential +function it is possible to half the number of computations: + +{{{beg-align}}} +x_{k+\frac{N}{2}} &= E_{k+\frac{N}{2}} + e^{-\frac{2 \pi i}{N} (k + +\frac{N}{2})} O_{k+\frac{N}{2}}\\ +&= E_k - e^{-\frac{2 \pi i}{N} k} O_k +{{{end-align}}} + +Thus + +{{{beg-eqn}}} +\begin{aligned} +x_k &= E_k + e^{-\frac{2 \pi i}{N} k} O_k\\ +x_{k+\frac{N}{2}} &= E_k - e^{-\frac{2 \pi i}{N} k} O_k +\end{aligned}\,\text{,}\quad k=0,\dots,\frac{N}{2}-1 +{{{end-eqn}}} + +* Implementing the FFT + +With the reduction identities we derived for the FFT a preliminary +implementation could be: + +#+begin_src common-lisp + (defun fft (sequence) + (labels + ((fft-step (n step offset) + (let ((ret (make-array n))) + (if (= n 1) + (setf (aref ret 0) (aref sequence offset)) + (loop + :with n2 = (/ n 2) + :with ek = (fft-step n2 (* 2 step) offset) + :with ok = (fft-step n2 (* 2 step) (+ offset step)) + :for k :below n2 + :for c = (exp (- (/ (* 2 pi (complex 0 1) k) n))) + :do + (setf (aref ret k) (+ (aref ek k) (* c (aref ok k))) + (aref ret (+ k n2)) (- (aref ek k) (* c (aref ok k)))))) + ret))) + (fft-step (length sequence) 1 0))) +#+end_src + +The function ~fft-step~ needs to be able to access both even and odd terms, for +this we use the ~step~ and ~offset~ arguments. ~step~ indicate the distance +between consecutive elements of the input to the fft. If we wanted to compute +the FFT of the even terms, this distance would be 2. For the fft inside this +outer fft of the even entries we also want to split further into even an odd +members, this ~step~ needs to be 4 and so on. ~offset~ represents how many +elements must be skipped until the first element of the subarray. + +Notice that we are allocating in each step a new array to return. The FFT can +however be computed with a single array allocation. For that we store the values +of \[ E_k \] in the first half of the return array and the values of \[ O_k \] +in the second half. Finally we use the so called "butterfly" operations to +compute the final result. + +#+caption: Diagram of the abstract data flow inside the FFT. Observe how the FFT itself is define recursively halving the number of items in each step +[[/svg/fft.svg]] + +#+begin_src common-lisp + (defun fft* (sequence) + (let ((result (make-array (length sequence)))) + (labels ((fft-step (n step offset roffset) + (if (= n 1) + (setf (aref result roffset) (aref sequence offset)) + (let ((n2 (/ n 2))) + (fft-step n2 (* 2 step) offset roffset) ; e_k + (fft-step n2 (* 2 step) (+ offset step) (+ roffset n2)) ; o_k + (loop :for k :below n2 + :for j = (+ roffset k) + :for c = (exp (- (/ (* 2 pi (complex 0d0 1d0) k) n))) + :for ek = (aref result j) + :for ok = (aref result (+ j n2)) + :do + (setf (aref result j) (+ ek (* c ok)) + (aref result (+ j n2)) (- ek (* c ok)))))))) + (fft-step (length sequence) 1 0 0) + result))) +#+end_src + +There are still many optimizations that could be made to speed up our code, like +twiddle factors, cache optimizations and more. But this goes beyond the scope I +planned for this article. Many would probably be also beyond the scope of my +current abilities. diff --git a/src/math/index.org b/src/math/index.org new file mode 100644 index 0000000..38e2eaa --- /dev/null +++ b/src/math/index.org @@ -0,0 +1,19 @@ +#+title: Math and Physics articles +#+setupfile: ../../math_options.org + +- [[file:vectors.org][Cross Product]] +- [[file:cylindrical_coordinates.org][Cylindrical Coordinates]] +- [[file:fft.org][Fast Fourier Transform]] +- [[file:lagrange.org][Lagrange Mechanics]] +- [[file:laplace.org][Laplace Transformations]] +- [[file:matrices.org][Matrix Properties]] +- [[file:diff.org][Method for solving first order and Bernoulli's differential equations]] +- [[file:orbit.org][Orbit]] +- [[file:polar_coordinates.org][Polar Coordinates]] +- [[file:spherical-harmonics.org][Solving the laplace equation in Spherical coordinates]] +- [[file:spherical_coordinates.org][Spherical Coordinates]] +- [[file:derivatives.org][Table of Derivatives]] +- [[file:integrals.org][Table of Integrals]] +- [[file:levi_cevita.org][The Levi Cevita Symbol]] +- [[file:trigonometry.org][Trigonometric identities]] +- [[file:variation.org][Variation Calculus]] \ No newline at end of file diff --git a/src/math/integrals.org b/src/math/integrals.org new file mode 100644 index 0000000..a8e9677 --- /dev/null +++ b/src/math/integrals.org @@ -0,0 +1,35 @@ +#+title:Table of Integrals +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* $a + bx$ +\begin{align*} +\intg{(a + bx)^n}{\frac{(a+bx)^{n+1}}{b(n+1)}}\\ +\int\frac{\D{x}}{a + bx} &= \frac{1}{b}\log(a+bx) + C\\ +\int\frac{x\D{x}}{a + bx} &= \frac{1}{b^2}(a + bx - a\log(a+bx)) + C +\end{align*} + +* Trigonometric Funtions +\begin{align*} +\intg{\sin(x)}{-\cos(x)}\\ +\intg{\cos(x)}{\sin(x)}\\ +\intg{\tan(x)}{-\ln(\cos(x))}\\ +\intg{\sec(x)}{\ln(\sec(x) + \tan(x))}\\ +\intg{\csc(x)}{-\ln(\csc(x) + \cot(x))}\\ +\intg{\cot(x)}{\ln(\sin(x))} +\end{align*} +* Hyperbolic Funtions as results +\begin{align*} +\int\frac{\text{d}x}{\sqrt{x^2 + a^2}} &= \arsinh{\frac{x}{a}} + C\\ +\int\frac{\text{d}x}{\sqrt{x^2 - a^2}} &= \arcosh{\frac{x}{a}} + C\\ +\int\frac{\text{d}x}{a^2 - x^2} &= \frac{1}{a}\artanh{\frac{x}{a}} + C\\ +%\int\frac{\text{d}x}{x^2 - a^2} &= -\frac{1}{a}\arcoth{\frac{x}{a}} + C\\ +\int\frac{\text{d}x}{x\sqrt{a^2 - x^2}} &= -\frac{1}{a}\arsech{\frac{x}{a}} + C\\ +\int\frac{\text{d}x}{x\sqrt{x^2 + a^2}} &= -\frac{1}{a}\arcsch{\frac{x}{a}} + C\\ +\intg{\sqrt{x^2+a^2}}{\frac{x}{2}\sqrt{x^2+a^2} + \frac{a^2}{2}\arsinh{\frac{x}{a}}}\\ +\intg{\sqrt{x^2-a^2}}{\frac{x}{2}\sqrt{x^2-a^2} - \frac{a^2}{2}\arcosh{\frac{x}{a}}} +\end{align*} diff --git a/src/math/lagrange.org b/src/math/lagrange.org new file mode 100644 index 0000000..565c7e7 --- /dev/null +++ b/src/math/lagrange.org @@ -0,0 +1,23 @@ +#+title:Lagrange Mechanics +#+author: Thomas Albers Raviola +#+date: 2022-10-01 +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* Eliminating the constraints +\begin{align*} +m_i \ddot{x}_i &= F_i + \sum_{n=1}^R \lambda_n \pderiv{g_n}{x_i}\\ +m_i \ddot{x}_i \pderiv{x_i}{q_k} &= F_i \pderiv{x_i}{q_k} + \sum_{n=1}^R \lambda_n \pderiv{g_n}{x_i} \pderiv{x_i}{q_k}\\ +\sum_{i=1}^{3N} m_i \ddot{x}_i \pderiv{x_i}{q_k} &= \sum_{i=1}^{3N}F_i \pderiv{x_i}{q_k} + \sum_{n=1}^R \lambda_n \sum_{i=1}^{3N} \pderiv{g_n}{x_i} \pderiv{x_i}{q_k}\\ +\sum_{i=1}^{3N} m_i \ddot{x}_i \pderiv{x_i}{q_k} &= \sum_{i=1}^{3N}F_i \pderiv{x_i}{q_k} + \sum_{n=1}^R \lambda_n \deriv{g_n}{q_k}\\ +\sum_{i=1}^{3N} m_i \ddot{x}_i \pderiv{x_i}{q_k} &= \sum_{i=1}^{3N}F_i \pderiv{x_i}{q_k}\\ +\deriv{}{t}\pderiv{(T - U)}{\dot{q}_k} - \pderiv{T}{q_k} &= \sum_{i=1}^{3N}F_i \pderiv{x_i}{q_k}\\ +\deriv{}{t}\pderiv{(T - U)}{\dot{q}_k} - \pderiv{T}{q_k} &= - \sum_{i=1}^{3N}\pderiv{U}{x_i} \pderiv{x_i}{q_k}\\ +\deriv{}{t}\pderiv{(T - U)}{\dot{q}_k} - \left(\pderiv{T}{q_k} - \pderiv{U}{q_k}\right) &= 0\\ +\deriv{}{t}\pderiv{(T - U)}{\dot{q}_k} - \pderiv{T - U}{q_k} &= 0\\ +\deriv{}{t}\pderiv{\mathcal{L}}{\dot{q}_k} - \pderiv{\mathcal{L}}{q_k} &= 0 +\end{align*} diff --git a/src/math/laplace.org b/src/math/laplace.org new file mode 100644 index 0000000..ea2c638 --- /dev/null +++ b/src/math/laplace.org @@ -0,0 +1,39 @@ +#+title:Laplace Transformations +#+author: Thomas Albers Raviola +#+date: 2022-10-01 +#+setupfile: ../../math_options.org + +\begin{align*} +\delta(t) & 1\\ +\delta(t - a) & e^{as}\\ +1 & \frac{1}{s}\\ +t & \frac{1}{s^2}\\ +\frac{t^{n-1}}{(n-1)!} & \frac{1}{s^n}, n \in \mathbb{N}\\ +\frac{t^{a-1}}{\Gamma(a)} & \frac{1}{s^a}\\ +e^{-at} & \frac{1}{s+a}\\ +\frac{t^{n-1}e^{-at}}{(n-1)!} & \frac{1}{(s+a)^n}, n \in \mathbb{N}\\ +\frac{e^{-at}-e^{-bt}}{b - a} & \frac{1}{(s+a)(s+b)}, a \neq b\\ +\frac{1}{a}\sin(at) & \frac{1}{s^2 + a^2}\\ +\cos(at) & \frac{s}{s^2+a^2}\\ +\frac{1}{a}\sinh(at) & \frac{1}{s^2-a^2}\\ +\cosh(at) & \frac{s}{s^2-a^2}\\ +\frac{1-\cos(at)}{a^2} & \frac{1}{s(s^2+a^2)}\\ +\frac{at - \sin(at)}{a^3} & \frac{1}{s^2(s^2 + a^2)}\\ +\frac{\sin(at) - at\cos(at)}{2a^3} & \frac{1}{(s^2 + a^2)^2}\\ + +\frac{t\sin(at)}{2a} & \frac{s}{(s^2+a^2)^2}\\ +\frac{\sin(at) + at\cos(at)}{2a} & \frac{s^2}{(s^2 + a^2)^2}\\ +\frac{b\sin(at) - a\sin(bt)}{ab(b^2 - a^2)} & \frac{1}{(s^2+a^2)(s^2+b^2)}, a^2 \neq b^2 +\frac{\cos(at) - \cos(bt)}{b^2 - a^2} & \frac{s}{(s^2+a^2)(s^2+b^2)}, a^2 \neq b^2 +\frac{1}{b}e^{-at}\sin(bt) & \frac{1}{(s+a)^2 + b^2}\\ +e^{-at}\cos(bt) & \frac{s+a}{(s+a)^2 + b^2}\\ +\frac{\sinh(at) - \sin(at)}{2a^3} & \frac{1}{s^4 - a^4}\\ +\frac{\sin(at)\sinh(at)}{2a^2} & \frac{s}{s^4+4a^4}\\ +\frac{1}{\sqrt{\pi t}} & \frac{1}{\sqrt{s}}\\ +\frac{\sin{at}{t}} & \arctan{\frac{a}{s}}\\ +u(t) - u(t-k) & \frac{1-e^{-ks}}{s}\\ +\frac{(t-k)^{a-1}}{\Gamma(a)}u(t-k) & \frac{1}{s^a}e^{-ks}, a > 0\\ +\sum_{n=0}^\inf u(t-nk) & \frac{1}{s(1-e^{-ks})}\\ +\frac{1}{2}(\sin(t) + \|\sin(t)\|) & \frac{1}{(s^2 + 1)(1 - e^{\pi s})}\\ +\|\sin(at)\| & \frac{a\coth(\frac{\pi s}{2 a})}{s^2 + a^2} +\end{align*} diff --git a/src/math/levi_cevita.org b/src/math/levi_cevita.org new file mode 100644 index 0000000..983130e --- /dev/null +++ b/src/math/levi_cevita.org @@ -0,0 +1,25 @@ +#+title: The Levi Cevita Symbol +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* Levi Cevita symbol +\begin{equation*} +\varepsilon_{ijk} = \left\{\begin{array}{rl} +1,&(i,j,k) \in \{(1,2,3), (2,3,1), (3,1,2)\}\\ +-1,&(i,j,k) \in \{(3,2,1), (2,1,3), (1,3,2)\}\\ +0,&\text{otherwise} +\right{} +\end{array} +\end{equation*} + +\begin{equation*} +\varepsilon_{ijk} = \varepsilon_{jki} = \varepsilon_{kij} = - \varepsilon_{ikj} = - \varepsilon_{jik} = - \varepsilon_{kji} = 1 +\end{equation*} + +\begin{align*} +\sum_{k=1}^3 \varepsilon_{ijk}\varepsilon_{kmn} = \delta_{im} \delta_{jn} - \delta_{in} \delta_{jm} +\end{align*} diff --git a/src/math/matrices.org b/src/math/matrices.org new file mode 100644 index 0000000..c968f8c --- /dev/null +++ b/src/math/matrices.org @@ -0,0 +1,33 @@ +#+title:Matrix Properties +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* Basic properties +\begin{align*} +A + B = B + A +\end{align*} + +* Dot product +\begin{align*} +(A^\text{T})^\text{T} &= A\\ +(A + B)^\text{T} &= A^\text{T} + B^\text{T}\\ +(AB)^\text{T} &= B^\text{T}A^\text{T} +\end{align*} + +* Transpose +\begin{align*} +\bm{a} \cdot \bm{b} &= \overline{\bm{b}} \cdot \bm{a}\\ +\bm{a} \cdot \bm{b} &= \bm{a}^\text{T} \bm{b} +\end{align*} + +* Hermitian transpose +\begin{align*} +A^\ast &= \left[\overline{a_{ij}}\right]\\ +(\lambda A)^\ast &= \left[\overline{\lambda a_{ij}}\right] = \overline{\lambda} \left[a_{ij}\right]^\ast = \overline{\lambda}\,\overline{A}\\ +A^\dag &= (A^\ast)^\text{T}\\ +A^{\dag\dag} &= A +\end{align*} diff --git a/src/math/orbit.org b/src/math/orbit.org new file mode 100644 index 0000000..5e4040a --- /dev/null +++ b/src/math/orbit.org @@ -0,0 +1,89 @@ +#+title:Orbit +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* Deriving Kepler's first law from Newton's law of universal gravitation + +The movement of an object with mass $m$ orbiting another body with mass $M$ is +given by Newton's law of gravitation. If $m \ll M$ it is possible to consider +the position of the larger object constant and use it as the origin of our +coordinate system. Then the following equation applies for movement of the +smaller object: + +{{{beg-eqn}}} +m\ddot{\bm{r}} = - \frac{GMm}{r^3}\bm{r} \Leftrightarrow \ddot{\bm{r}} = - \frac{GM}{r^3}\bm{r} +{{{end-eqn}}} + +In order to solve this differential equation we first consider the angular +momentum of or object around its orbit. + +{{{beg-eqn}}} +\bm{L} = \bm{r} \times m \dot{\bm{r}} +{{{end-eqn}}} + +In the abscense of external toques, because the only force acting on the object +is parallel to its position, the angular momentum is conserved. + +{{{beg-eqn}}} +\deriv{\bm{L}}{t} = \dot{\bm{r}} \times m \dot{\bm{r}} + \bm{r} \times m \ddot{\bm{r}} = 0 +{{{end-eqn}}} + +We now multiply both sides of our equation from the right by the angular +momentum and develop the right side of the equation using vector identities. + +{{{beg-align}}} +\ddot{\bm{r}} \times \bm{L} &= -GM\frac{\bm{r} \times \left(\bm{r} \times m \dot{\bm{r}}\right)}{r^3}\\ +&= - \frac{GMm}{r^3} \left(\left(\bm{r} \cdot \dot{\bm{r}}\right)\bm{r} - \left(\bm{r} \cdot \bm{r}\right)\dot{\bm{r}}\right)\\ +&= GMm\left(\frac{\left(\bm{r} \cdot \bm{r}\right)\dot{\bm{r}}}{r^3} - \frac{\left(\bm{r} \cdot \dot{\bm{r}}\right)\bm{r}}{r^3}\right)\\ +&= GMm\left(\frac{\dot{\bm{r}}}{r} - \frac{\left(\bm{r} \cdot \dot{\bm{r}}\right)\bm{r}}{r^3}\right)\\ +&= GMm\left(\frac{1}{r} \deriv{\bm{r}}{t} + \deriv{}{t}\left(\frac{1}{r}\right)\bm{r}\right)\\ +&= GMm\deriv{}{t}\left(\frac{\bm{r}}{r}\right) +{{{end-align}}} + +We observe that each side of our equation is a derivative of a quantity. We know +integrate both sides and take the integrations constant into account. + +{{{beg-align}}} +& \deriv{}{t} \left(\dot{\bm{r}} \times \bm{L}\right) = GM \deriv{}{t}\left(\frac{\bm{r}}{r}\right)\\ +\Leftrightarrow \quad & \dot{\bm{r}} \times \bm{L} = GM \frac{\bm{r}}{r} + \bm{a} +{{{end-align}}} + +Our objective is now to solve the equation for $r$, so we multiply both sides by $\bm{r}$: + +{{{beg-align}}} +\dot{\bm{r}} \times \left(\bm{r} \times \dot{\bm{r}}\right) &= GM \frac{\bm{r}}{r} + \bm{a}\\ +\bm{r} \cdot \left(\dot{\bm{r}} \times \left(\bm{r} \times \dot{\bm{r}}\right)\right) &= GMr + \bm{r} \cdot \bm{a} +{{{end-align}}} + +By applying a cyclic permutation of the resulting triple product and using the +known property of the scalar product we now express the equation only in terms +of the magnitudes of the vectors. + +{{{beg-align}}} +\left(\bm{r} \times \dot{\bm{r}}\right) \cdot \left(\bm{r} \times \dot{\bm{r}}\right) &= GMr + \bm{r} \cdot \bm{a}\\ +\left(\frac{L}{m}\right)^2 &= GMr + \bm{r} \cdot \bm{a}\\ +\left(\frac{L}{m}\right)^2 &= GMr + r a \cos\theta +{{{end-align}}} + +The last steps are to solve for $r$ + +{{{beg-align}}} +r &= \left(\frac{L}{m}\right)^2 \frac{1}{GM + a \cos\theta}\\ +&= \left(\frac{L}{m}\right)^2 \frac{1}{GM} \frac{1}{1 + \frac{a}{GM} \cos\theta}\\ +&= \left(\frac{L}{m}\right)^2 \frac{1}{GM} \frac{1}{1 + e\cos\theta} +{{{end-align}}} + +Finally we reach our result. Objects orbiting according to Newton's Law of +Gravitation follow paths that correspond to the conic sections. Here is Kepler's +first Law a special case, where our object has a stable orbit around the larger +body. + +{{{beg-eqn}}} +r &= \frac{L^2}{GM m^2} \frac{1}{1 + e\cos\theta} +{{{end-eqn}}} + +* Deriving a physical interpretation of the excentricity of the orbit diff --git a/src/math/polar_coordinates.org b/src/math/polar_coordinates.org new file mode 100644 index 0000000..0d26138 --- /dev/null +++ b/src/math/polar_coordinates.org @@ -0,0 +1,34 @@ +#+title:Polar Coordinates +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* Coordinate transformations +\begin{align*} +x &= r \cos\theta\\ +y &= r \sin\theta +\end{align*} + +* Local unit vectors +\begin{align*} +\unitv{r} &= \cos\theta \unitv{x} + \sin\theta \unitv{y}\\ +\unitv{\theta} &= -\sin\theta \unitv{x} + \cos\theta \unitv{y} +\end{align*} + +* Kinematic in polar coordinates +** Time derivatives of the local unit vectors +\begin{align*} +\deriv{\unitv{r}}{t} &= \dot{\theta}\unitv{\theta}\\ +\deriv{\unitv{\theta}}{t} &= -\dot{\theta}\unitv{r} +\end{align*} + +** Position vector and its time derivatives +\begin{align*} +\bm{r} &= r\unitv{r}\\ +\bm{v} &= \dot{r}\unitv{r} + r\dot\theta\unitv{\theta}\\ +\bm{a} &= \left(\ddot{r} - r\dot\theta^2\right)\unitv{r} ++ \left(2\dot{r}\dot\theta + r\ddot\theta\right)\unitv{\theta} +\end{align*} diff --git a/src/math/spherical-harmonics.org b/src/math/spherical-harmonics.org new file mode 100644 index 0000000..b5183b5 --- /dev/null +++ b/src/math/spherical-harmonics.org @@ -0,0 +1,119 @@ +#+title: Solving the laplace equation in Spherical coordinates +#+author: Thomas Albers Raviola +#+date: 2022-12-15 +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* Laplace equation + +{{{beg-eqn}}} +\Delta \phi = 0 +{{{end-eqn}}} + +Solutions to this equation are called harmonics + +* Laplace equation in spherical coordinates + +Using the definition for the laplace operator in spherical coordinates, it +follows: + +{{{beg-align}}} +\frac{1}{r^2}\pderiv{}{r}\left(r^2 \pderiv{\phi}{r}\right) + \frac{1}{r^2\sin\theta} \pderiv{}{\theta}\left(\sin\theta\pderiv{\phi}{\theta}\right) + \frac{1}{r^2\sin^2\theta}\frac{\partial^2\phi}{\partial\varphi^2} &= 0\\ +\pderiv{}{r}\left(r^2 \pderiv{\phi}{r}\right) + \frac{1}{\sin\theta} \pderiv{}{\theta}\left(\sin\theta\pderiv{\phi}{\theta}\right) + \frac{1}{\sin^2\theta}\frac{\partial^2\phi}{\partial\varphi^2} &= 0 +{{{end-align}}} + +Using sepration of variables $\phi$ becomes +{{{beg-eqn}}} +\phi(r, \theta, \varphi) = R(r)Y(\theta, \varphi) +{{{end-eqn}}} + +Applying this to the original equation produces + +{{{beg-align}}} +\pderiv{}{r}\left(r^2 \pderiv{R}{r}\right)Y(\theta, \phi) + \left(\frac{1}{\sin\theta} \pderiv{}{\theta}\left(\sin\theta\pderiv{\phi}{\theta}\right) + \frac{1}{\sin^2\theta}\frac{\partial^2\phi}{\partial\varphi^2}\right)R(r) &= 0\\ +\frac{1}{R(r)}\pderiv{}{r}\left(r^2 \pderiv{R}{r}\right) + \frac{1}{Y(\theta, \phi)}\left(\frac{1}{\sin\theta} \pderiv{}{\theta}\left(\sin\theta\pderiv{\phi}{\theta}\right) + \frac{1}{\sin^2\theta}\frac{\partial^2\phi}{\partial\varphi^2}\right) &= 0 +{{{end-align}}} + +Because the terms depend on different independant variables, the only way the +equation holds is if both terms are constant. + +{{{beg-align}}} +&\frac{1}{R(r)}\pderiv{}{r}\left(r^2 \pderiv{R}{r}\right) = \lambda\\ +&\frac{1}{Y(\theta, \phi)}\left(\frac{1}{\sin\theta} \pderiv{}{\theta}\left(\sin\theta\pderiv{Y}{\theta}\right)+ \frac{1}{\sin^2\theta}\frac{\partial^2Y}{\partial\varphi^2}\right) = -\lambda +{{{end-align}}} + +* Angle dependant term +We again use separation of variables to solve the partial differential equation +of the angle dependant term. + +{{{beg-eqn}}} +Y(\theta, \varphi) = \Theta(\theta)\Phi(\varphi) +{{{end-eqn}}} + +Replacing into the equation + +{{{beg-eqn}}} +\lambda\sin^2\theta + \frac{\sin\theta}{\Theta(\theta)}\pderiv{}{\theta}\left(\sin\theta\pderiv{\Theta}{\theta}\right) ++ \frac{1}{\Phi(\varphi)}\frac{\partial^2\Phi}{\partial\varphi^2} = 0 +{{{end-eqn}}} + +Based on a similar argument it follows that both terms must be constant, with +this we may now solve for $\Phi$ + +{{{beg-eqn}}} +\frac{1}{\Phi(\varphi)}\frac{\partial^2\Phi}{\partial\varphi^2} = -m^2 +{{{end-eqn}}} + +{{{beg-eqn}}} +\Phi(\varphi) = e^{-m\varphi{}i} +{{{end-eqn}}} + +{{{beg-eqn}}} +\lambda\sin^2\theta + \frac{\sin\theta}{\Theta(\theta)}\pderiv{}{\theta}\left(\sin\theta\pderiv{\Theta}{\theta}\right) = m^2 +{{{end-eqn}}} + +{{{beg-eqn}}} +l(l+1)\sin^2(\theta)\Theta(\theta) + \pderiv{}{\theta}\left(\sin\theta\pderiv{\Theta}{\theta}\right) = m^2\Theta(\theta) +{{{end-eqn}}} + +{{{beg-eqn}}} +l(l+1)\sin^2(\theta)\Theta(\theta) + \sin(\theta)\left(\cos(\theta) \Theta'(\theta) + \sin(\theta) \Theta''(\theta)\right) = m^2\Theta(\theta) +{{{end-eqn}}} + +{{{beg-eqn}}} +\sin^2(\theta) \Theta''(\theta) + \sin(\theta)\cos(\theta) \Theta'(\theta) + (l(l+1)\sin^2(\theta) - m^2)\Theta(\theta) = 0 +{{{end-eqn}}} + +{{{beg-eqn}}} +\Theta''(\theta) + \cot(\theta)\Theta'(\theta) + \left(l(l+1) - \frac{m^2}{\sin^2\theta}\right)\Theta(\theta) = 0 +{{{end-eqn}}} + +{{{beg-eqn}}} +\Theta(\theta) = P(\cos \theta) +{{{end-eqn}}} + +{{{beg-eqn}}} +\cot(\theta)\Theta'(\theta) = \cot(\theta) \deriv{}{\theta}P(\cos \theta)=-\cos(\theta) P'(\cos\theta) +{{{end-eqn}}} + +{{{beg-eqn}}} +\frac{\text{d}^2}{\text{d}\theta^2}(P(\cos\theta)) = \sin^2(\theta) P''(\cos\theta) - \cos(\theta) P'(\cos\theta) +{{{end-eqn}}} + +{{{beg-eqn}}} +\sin^2(\theta) P''(\cos\theta) - 2\cos(\theta) P'(\cos\theta) + \left(l(l+1)-\frac{m^2}{\sin^2\theta}\right)P(\cos\theta) = 0 +{{{end-eqn}}} + +{{{beg-eqn}}} +x = \cos\theta +{{{end-eqn}}} + +{{{beg-eqn}}} +(1 - x^2)P''(x) - 2xP'(x) + \left(l(l+1)-\frac{m^2}{1-x^2}\right)P(x) = 0 +{{{end-eqn}}} + +Solve using Frobenius Method diff --git a/src/math/spherical_coordinates.org b/src/math/spherical_coordinates.org new file mode 100644 index 0000000..bf3b8d0 --- /dev/null +++ b/src/math/spherical_coordinates.org @@ -0,0 +1,38 @@ +#+title:Spherical Coordinates +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* Coordinate transformations +\begin{align*} +x &= r \sin\theta \cos\varphi\\ +y &= r \sin\theta \sin\varphi\\ +z &= r \cos\theta +\end{align*} + +* Local unit vectors +\begin{align*} +\bm{\hat{e}}_r &= \sin\theta \cos\varphi \bm{\hat{e}}_x + \sin\theta \sin\varphi \bm{\hat{e}}_y + \cos\theta \bm{\hat{e}}_z\\ +\bm{\hat{e}}_\theta &= \cos\theta \cos\varphi \bm{\hat{e}}_x + \cos\theta \sin\varphi \bm{\hat{e}}_y - \sin\theta \bm{\hat{e}}_z\\ +\bm{\hat{e}}_\varphi &= - \sin\theta \sin\varphi \bm{\hat{e}}_x + \sin\theta \cos\varphi \bm{\hat{e}}_y +\end{align*} + +* Kinematic in spherical coordinates +** Time derivatives of the local unit vectors +\begin{align*} +\deriv{\unitv{r}}{t} &= \dot{\theta}\unitv{\theta} + \dot{\varphi}\sin\theta \unitv{\varphi}\\ +\deriv{\unitv{\theta}}{t} &= -\dot{\theta}\unitv{r} + \dot{\varphi}\cos\theta \unitv{\varphi}\\ +\deriv{\unitv{\varphi}}{t} &= -\dot{\varphi} \left(\sin\theta\unitv{r} + \cos\theta\unitv{\theta}\right) +\end{align*} + +** Position vector and its time derivatives +\begin{align*} +\bm{r} &= r\unitv{r}\\ +\bm{v} &= \dot{r}\unitv{r} + r\dot\theta\unitv{\theta} + r\dot\varphi\sin\theta\unitv{\varphi}\\ +\bm{a} &= \left(\ddot{r} - r\dot\theta^2 - r\dot\varphi^2\sin^2\theta\right)\unitv{r} ++ \left(2\dot{r}\dot\theta + r\ddot\theta - r\dot\varphi^2\sin\theta\cos\theta\right)\unitv{\theta} ++ \left(2\dot{r}\dot\varphi\sin\theta + 2r\dot\theta\dot\varphi\cos\theta + r\ddot\varphi\sin\theta\right)\unitv{\varphi} +\end{align*} diff --git a/src/math/trigonometry.org b/src/math/trigonometry.org new file mode 100644 index 0000000..d2afc32 --- /dev/null +++ b/src/math/trigonometry.org @@ -0,0 +1,55 @@ +#+title:Trigonometric identities +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* Pythagorean identities +\begin{align*} +&\cos^2\left(x\right) + \sin^2\left(x\right) = 1\\ +&\tan^2\left(x\right) + 1 = \sec^2\left(x\right)\\ +&1 + \cot^2\left(x\right) = \csc^2\left(x\right) +\end{align*} + +* Sum of angles +\begin{align*} +&\sin\left(a \pm b\right) = \sin\left(a\right)\cos\left(b\right) \pm \cos\left(a\right)\sin\left(b\right)\\ +&\cos\left(a \pm b\right) = \cos\left(a\right)\cos\left(b\right) \mp \sin\left(a\right)\sin\left(b\right)\\ +&\tan(a \pm b) = \frac{\tan(a) \pm \tan(b)}{1 \mp \tan(a) \tan(b)} +\end{align*} + +* Multiple angles +\begin{align*} +&\sin(2\theta) = 2\sin(\theta)\cos(\theta)\\ +&\cos(2\theta) = \cos^2\theta - \sin^2\theta = 2\cos^2\theta - 1 = 1 - 2\sin^2\theta +\end{align*} + +* Half-angle formulae +\begin{align*} +&\sin \frac{\theta}{2} = \pm \sqrt{\frac{1-\cos\theta}{2}}\\ +&\cos \frac{\theta}{2} = \pm \sqrt{\frac{1+\cos\theta}{2}} +\end{align*} + +* Power-reduction formulae +\begin{align*} +&\sin^2\theta = \frac{1 - \cos(2\theta)}{2}\\ +&\cos^2\theta = \frac{1 + \cos(2\theta)}{2} +\end{align*} + +* Product-to-sum formulae +\begin{align*} +&2 \cos\theta \cos\varphi = \cos(\theta-\varphi) + \cos(\theta+\varphi)\\ +&2 \sin\theta \sin\varphi = \cos(\theta-\varphi) - \cos(\theta+\varphi)\\ +&2 \sin\theta \cos\varphi = \sin(\theta+\varphi) + \sin(\theta-\varphi)\\ +&2\cos\theta\sin\varphi = \sin(\theta+\varphi) - \sin(\theta-\varphi) +\end{align*} + +* Sum-to-product formulae +\begin{align*} +&\sin\theta \pm \sin\varphi = 2 \sin\left(\frac{\theta\pm\varphi}{2}\right) \cos\left(\frac{\theta\mp\varphi}{2}\right)\\ +&\cos\theta + \cos\varphi = 2 \cos\left(\frac{\theta+\varphi}{2}\right) \cos\left(\frac{\theta-\varphi}{2}\right)\\ +&\tan\theta \pm \tan\varphi = \frac{\sin(\theta\pm\varphi)}{\cos\theta \cos\varphi}\\ +&\cos\theta - \cos\varphi = - 2 \sin\left(\frac{\theta+\varphi}{2}\right) \sin\left(\frac{\theta-\varphi}{2}\right) +\end{align*} diff --git a/src/math/variation.org b/src/math/variation.org new file mode 100644 index 0000000..fcbfb14 --- /dev/null +++ b/src/math/variation.org @@ -0,0 +1,19 @@ +#+title:Variation Calculus +#+author: Thomas Albers Raviola +#+date: 2022-10-01 +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* Beltrami identity +\begin{align*} +\deriv{}{x}\pderiv{F}{\dot{y}} &= \pderiv{F}{y}\\ +\deriv{}{x}\left(\pderiv{F}{\dot{y}}\right)\deriv{y}{x} &= \pderiv{F}{y}\deriv{y}{x}\\ +\deriv{}{x}\left(\pderiv{F}{\dot{y}}\right)\deriv{y}{x} + \pderiv{F}{\dot{y}}\deriv{\dot{y}}{x} + \pderiv{F}{x} &= \pderiv{F}{y}\deriv{y}{x} + \pderiv{F}{\dot{y}} \deriv{\dot{y}}{x} + \pderiv{F}{x}\\ +\deriv{}{x}\left(\pderiv{F}{\dot{y}}\dot{y}\right) + \pderiv{F}{x} &= \deriv{F}{x}\\ +\deriv{}{x}\left(\pderiv{F}{\dot{y}}\dot{y} - F\right) &= - \pderiv{F}{x}\\ +\pderiv{F}{\dot{y}}\dot{y} - F\right &= C +\end{align*} diff --git a/src/math/vectors.org b/src/math/vectors.org new file mode 100644 index 0000000..ceab691 --- /dev/null +++ b/src/math/vectors.org @@ -0,0 +1,56 @@ +#+title:Cross Product +#+setupfile: ../../math_options.org + +* Disclaimer +This site as of now just a technology demonstration and its claims +should not be taken as true (even though I myself am pretty confident +they are) + +* Definition +We shall define the cross product in terms of two properties we are +interested in: + +- Distributive: $\bm{a} \times \left(\bm{b} + \bm{c}\right) = \bm{a} \times \bm{b} + \bm{a} \times \bm{c}$ +- Orthogonal: $\bm{a} \times \bm{b} = \bm{c} \implies \bm{c} \cdot \bm{a} = \bm{0} \land \bm{c} \cdot \bm{b} = \bm{0}$ + +It is worth mentioning that given a pair of vectors in $\mathbb{R}^3$ +there exist an infinite amount of vectors that satisfy these +properties, so it is also necessary to introduce the following +relations between the basis vectors to properly define the cross +product. + +\begin{align*} +\bm{e}_1 &= \bm{e}_2 \times \bm{e}_3\\ +\bm{e}_2 &= \bm{e}_3 \times \bm{e}_1\\ +\bm{e}_3 &= \bm{e}_1 \times \bm{e}_2\\ +\bm{e}_i \times \bm{e}_i &= \bm{0},\qquad\text{For}\quad i = 1,2,3 +\end{align*} + +We introduce the Levi-Civita symbol to condense our calculations. + +\begin{equation*} +\epsilon_{ijk} \coloneqq \bm{e}_i \cdot \left(\bm{e}_j \times \bm{e}_k\right) +\end{equation*} + +Based on this we may now derive a way to compute the cross product of +two vectors + +\begin{align*} +\left[\bm{a} \times \bm{b}\right]_i &= \left[\left(\sum_j a_j \bm{e}_j\right) \times \left(\sum_k b_k \bm{e_k}\right)\right]_i\\ +&= \left[\sum_{jk} a_j b_k \left(\bm{e}_j \times \bm{e}_k\right)\right]_i\\ +&= \sum_{jk} a_j b_k \bm{e}_i \cdot \left(\bm{e}_j \times \bm{e}_k\right)\\ +&= \sum_{jk} \epsilon_{ijk} a_j b_k\\ +\bm{a} \times \bm{b} &= \sum_{ijk} \epsilon_{ijk} a_i b_j \bm{e}_k +\end{align*} + +* Properties +\begin{align*} +&\bm{a} \times \bm{b} = - \bm{b} \times \bm{a}\\ +&\bm{a} \cdot \left(\bm{b} \times \bm{c}\right) += \bm{b} \cdot \left(\bm{c} \times \bm{a}\right) += \bm{c} \cdot \left(\bm{a} \times \bm{b}\right)\\ +&\bm{a} \times \left(\bm{b} \times \bm{c}\right) += \left(\bm{a} \cdot \bm{c}\right)\bm{b} - \left(\bm{a} \cdot \bm{b}\right)\bm{c}\\ +&\left(\bm{a} \times \bm{b}\right) \times \left(\bm{c} \times \bm{d}\right) += \left(\bm{a}\cdot\bm{c}\right) \left(\bm{b}\cdot\bm{d}\right) - \left(\bm{a}\cdot\bm{d}\right) \left(\bm{b}\cdot\bm{c}\right) +\end{align*} -- cgit v1.2.3