### A Pluto.jl notebook ###
# v0.20.21

using Markdown
using InteractiveUtils

# ╔═╡ fb99b46e-a0f4-499a-ab30-5f4ac1757689
begin
	using Printf
	using PlutoTeachingTools
	using PlutoUI
	using LinearAlgebra
	using CairoMakie
	ultramarine40 = RGBf(100/255.0, 143/255.0, 255/255.0)
	indigo50      = RGBf(120/255.0,  94/255.0, 240/255.0)
	magenta50     = RGBf(220/255.0,  38/255.0, 127/255.0)
	orange40      = RGBf(254/255.0,  97/255.0,   0/255.0)
	gold20        = RGBf(255/255.0, 176/255.0,   0/255.0)
	TableOfContents()
end

# ╔═╡ fac42b42-35d2-11f1-a407-bdbaa61d4b67
html"""
<h1 style="text-align:center">
	Höhere Mathematik II
</h1>
<div style="text-align:center">
	<p style="font-size: 30px; font-variant: small-caps; margin: 0px">
		Michael Schlottke-Lakemper, Manuel Torrilhon
	</p>
	<p style="font-size: 20px;">
		Universität Augsburg
	</p>
</div>
<!--
<style>
	main {
		margin: 0 auto;
		max-width: 1000px;
    	padding-left: max(160px, 10%);
    	padding-right: max(160px, 10%);
	}
</style>
-->
"""

# ╔═╡ 3b4ec4eb-af39-4f41-90cc-663d1b2eccab
md"""
# 4 Lineare Algebra II
## 4.1 Determinanten
Das lineare Gleichungssystem $A\,x=b$ mit $A\in\mathbb{R}^{n\times n}$ ist eindeutig lösbar, falls $\mathrm{rg}(A)=n$, d.h. alle Spalten von $A$ linear unabhängig sind. Zum Testen von $A$ hätten wir gerne eine Funktion $\psi:\mathbb{R}^{n\times n}\to\mathbb{R},\,A\mapsto\psi(A) = \begin{cases} 0 &\text{Spalten von A lin. abh.}\\\neq 0 &\text{Spalten von A lin. unabh.}\end{cases}$
"""

# ╔═╡ c5d2f769-f27b-40e4-9602-8b962d5d7934
md"""
##### Definition:
Für eine Permutation $\pi\in S_n$ ($S_n$ ist die symmetrische Gruppe, die Menge aller bijektiven Abbildungen auf $\{1,\ldots,n\}$ mit der Verknüpfung von Funktionen als Gruppenverknüpfung) definieren wir

$\mathrm{sign}: S_n \to \{\pm 1\}, \pi\mapsto\mathrm{sign}(\pi) = \begin{cases} +1 & \text{falls }\pi\text{ gerade} \\[2pt] -1 & \text{falls }\pi\text{ ungerade.}\end{cases}$
Un/gerade heißt un/gerade Anzahl von paarweisen Vertauschungen von $\{1,\ldots,n\}$.

##### Beispiel
$\pi = (2, 3, 1 ,4) \in S_4$

|   $i$  | 1 | 2 | 3 | 4 |
|:------:|:-:|:-:|:-:|:-:|
|$\pi(i)$| 2 | 3 | 1 | 4 |
|   (1)  | 2 | 1 | 3 | 4 |
|   (2)  | 1 | 2 | 3 | 4 |

$\Rightarrow 2 \text{ Vertauschungen} \Rightarrow \pi \text{ gerade} \Rightarrow \mathrm{sign}(\pi) = +1.$

##### Definition
Für $A = (a_{ij}) \in \mathrm{R}^{n\times n}$ definieren wir die *Determinante* von $A$ durch

$\det(A) := \sum_{\pi\in S_n} \mathrm{sign}(\pi)\cdot a_{1\pi(1)}\cdot a_{2\pi(2)}\cdot\,\cdots\,\cdot a_{n\pi(n)}$

Es gilt dann
 +  $\det(A) = 0 \Leftrightarrow A$ ist singulär $\Leftrightarrow A\,x=b$ nicht (eindeutig) lösbar
 +  $\det(A) \neq 0 \Leftrightarrow A$ ist regulär $\Leftrightarrow A\,x=b$ eindeutig lösbar

##### Beispiel:
1.  $\det\begin{bmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{bmatrix} = \underset{\pi=(1,2)\text{ gerade}}{+a_{11}\,a_{22}} - \underset{\pi=(2,1)\text{ ungerade}}{a_{12}\,a_{21}}$


2.  $\det\begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix} = a_{11}\,a_{22}\,a_{33}-a_{11}\,a_{23}\,a_{32}-a_{12}\,a_{21}\,a_{33}$\
    $\phantom{\det\begin{bmatrix}a_{00}&a_{00}&a_{00}\end{bmatrix}=}\!+a_{12}\,a_{23}\,a_{31}+a_{13}\,a_{21}\,a_{32}-a_{13}\,a_{22}\,a_{31}$


##### Satz (Laplace'sche Entwicklung für det):
Sei $A\in\mathbb{R}^{n\times n}$, dann gilt

 $\det(A) = \sum\limits_{j=1}^n(-1)^{i+j}\,a_{ij}\,\det(\hat{A}_{ij})$, 

wobei $\hat{A}_{ij}\in\mathbb{R}^{(n-1)\times(n-1)}$ die Matrix ist, die durch Streichung der $i$-ten Zeile und $j$-ten Spalte aus $A$ entsteht ($i$ beliebig, "Entwicklung nach der $i$-ten Zeile").

"""

# ╔═╡ def3641a-20ba-4961-b509-442da4ab9710
md"""

##### Beispiel:
1.  $\det\begin{bmatrix}1&2&3\\-1&0&1\\1&2&1\end{bmatrix}\overset{i=1}{=} (-1)^{1+1}\cdot 1\cdot\det(\hat{A}_{11})+(-1)^{1+2}\cdot2\cdot\det(\hat{A}_{12})$\
    $\phantom{\det\begin{bmatrix}0&-0&0\end{bmatrix}\overset{i=1}{=}}\! +(-1)^{1+3}\cdot3\cdot\det(\hat{A}_{13})$\
    $\phantom{\det\begin{bmatrix}0&-0&0\end{bmatrix}\overset{i=1}{=}}\!\!\!  = 1\cdot\det\begin{bmatrix}0&1\\2&1\end{bmatrix}-2\cdot\det\begin{bmatrix}-1&1\\1&1\end{bmatrix}+3\cdot\det\begin{bmatrix}-1&0\\1&2\end{bmatrix}$\
    $\phantom{\det\begin{bmatrix}0&-0&0\end{bmatrix}\overset{i=1}{=}}\!\!\!  =1\cdot(0\cdot1-2\cdot1)-2(-1\cdot1-1\cdot1)+3\cdot(-1\cdot2-1\cdot0)=-4.$


2.  $\det\begin{bmatrix}1&2&3&4\\1&0&1&0\\1&-1&1&-1\\4&3&2&1\end{bmatrix} \overset{i=2}{=} (-1)^{2+1}\cdot1\cdot\det(\hat{A}_{21})+(-1)^{2+2}\cdot0\cdot\det(\hat{A}_{22})$\
    $\phantom{\det\begin{bmatrix}1&-1&1&-1\end{bmatrix}\overset{i=2}{=}}\!+(-1)^{2+3}\cdot1\cdot\det(\hat{A}_{23})+(-1)^{2+4}\cdot0\cdot\det(\hat{A}_{24})$\
    $\phantom{\det\begin{bmatrix}1&-1&1&-1\end{bmatrix}\overset{i=2}{=}}\!\!\!=-\det\begin{bmatrix}2&3&4\\-1&1&-1\\3&2&1\end{bmatrix}-\det\begin{bmatrix}1&2&4\\1&-1&-1\\4&3&1\end{bmatrix}=\cdots$
"""

# ╔═╡ a193fb98-232f-491c-b192-539fc8ab6f5e
Foldable("Exkurs (Determinaten als alternierende Linearformen)", md"""##### Definition:
Eine Abbildung $\psi:\underbrace{V\times V\times \dots\times V}_{\text{n- mal}}\to W,\,(V_1,V_2,\dots,V_n)\mapsto\psi(V_1,V_2,\dots,V_n)$ mit Vektorräumen $V$ und $W$ heißt _$n$-fach linear_, falls $\psi$ in jedem Argument eine lineare Abbildung ist. Falls $W=\mathbb{R}$, so heißt $\psi$ eine $n$-fache Linearform (Für $n=2$ "Bilinearform")

Wir betrachten den Spezialfall $W=\mathbb{R}$ und $\dim(V) = n$.
		 
##### Definition:
Eine $n$-fache Linearform $\psi$ heißt alternierend, falls $\psi(\dots,V,\dots,W,\dots)= -\psi(\dots,W,\dots,V,\dots)$ gilt. D.h. Vorzeichenwechsel bei Vertauschung zweier Argumente.

##### Satz:
Für eine $n$-fache alternierende Linearform $\psi$ gilt:
1.  $\psi(\dots,V,\dots,V,\dots)=0\quad$ (zwei gleiche Argumente)
2. Mit Permutation $\pi\in S_n$ gilt $\psi(V_1,\dots,V_n)=\mathrm{sign}(\pi)\psi(V_{\pi(1)},V_{\pi(2)},\dots,V_{\pi(n)})$ 
2.  $\{V_1,V_2,\dots,V_n\}$ linear abhängig $\Rightarrow\psi(V_1,V_2,\dots,V_n)=0.$
3.  $\{V_1,V_2,\dots,V_n\}$ linear unabhängig $\Rightarrow\psi(V_1,V_2,\dots,V_n)\neq0.$

##### Beweis:
zu 1: $\psi(\dots,V,\dots,V,\dots) = -\psi(\dots,V,\dots,V,\dots) \Rightarrow \psi=0$

zu 2: Symmetrische Gruppe $S_n = \{$bijektive Abb. auf $\{1,\dots,n\}\}$ 
Definiere $\mathrm{sign}: S_n\to\{\pm1\},\,\pi\mapsto\mathrm{sign}(\pi)=\begin{cases}+1& \pi\text{gerade,}\\-1&\pi\text{ungerade.}\end{cases}$ 

"Ungerade" heißt ungerade Anzahl von paarweisen Vertauschungen von $\{1,2,\dots,n\}$

 $|S_n|=n! = 1,2,3,\dots,n$

zu 3: Annahme: $v_1 = \sum\limits_{k=2}^n\alpha_k\,v_k$ ($v_1$ wird durch $v_2,\dots,v_n$ dargstelllt)

 $\psi\left(\sum\limits_{k=2}^n\alpha_k\,v_k,v_2,\dots,v_n\right) = \sum\limits_{k=2}^n\alpha_k\psi(v_k,v_2,\dots,v_n)=0$ (wegen 1.)

zu 4: Wir wählen irgendwelche $c_1,\dots,c_n\in V$ mit $\psi(c_1,\dots,c_n)\neq 0. \{v_1,\dots,v_n\}$ linear unabhängig, also Basis. $c_i=\sum\limits_{j=1}^n\alpha_{ij}v_j$ Basisdarstellung, einsetzen in $\psi$

 $\begin{align*}0&\neq\psi(c_1,\dots,c_n) = \psi\left(\sum\limits_{j=1}^n\alpha_{1j}v_k,\dots,\sum\limits_{j=1}^n\alpha_{nj}v_j\right)\\&= \sum\limits_{j_1=1}^n\alpha_{1j_1}\sum\limits_{j_2=1}^n\alpha_{2j_2} \cdots \sum\limits_{j_n=1}^n\alpha_{nj_n}\psi(v_{j_1},v_{j_2},\dots,v_{j_n})\\&= \psi(v_1,v_2,\dots,v_n)\left(\sum\limits_{\pi\in S_n}\underbrace{\mathrm{sign}(\pi)\alpha_{1\pi(1)}\alpha_{2\pi(2)}\cdots\alpha_{n\pi(n)}}_{n! \text{ Summanden}\neq0}\right)\\&\Rightarrow \psi(v_1,v_2,\dots,v_n)\neq 0\end{align*}$

##### Bemerkung:
Nach Wahl einer Basis $\{v_1,v_2,\dots,v_n\}$ ist $\psi$ einzig durch die Wahl des Wertes $\psi(v_1,\dots,v_n)\in\mathbb{R}$ _festgelegt_. Andere Auswertungen folgen durch Basisdarstellung und obige Formel.

##### Definition:
Sei $\{b_1,\dots,b_n\}$ eine Basis von $V$ und $\psi$ eine $n$-fache alternierende Linearform. Für eine lineare Abbildung $\varphi:V\to V$ ist durch 

$\det(\varphi)=\frac{\psi(\varphi(b_1),\dots,\varphi(b_n))}{\psi(b_1,\dots,b_n)}$
die _Determinante_ von $\varphi$ definiert.

##### Bemerkung:
1. Es lässt sich zeigen, dass die Determinante unabhängig von der Basis-Wahl ist(!)
2. Es gilt wie gewünscht:

 $\det(\varphi)\neq 0$, falls $\varphi$ invertierbar, d.h. $\{\varphi(b_1),\dots,\varphi(b_n)\}$ lin. unabhängig,

 $\det(\varphi)=0$, falls $\varphi$ nicht invertierbar.

#### Berechnung der Determinante

Wir wählen die kanonische Basis $\{e_1,\dots,e_n\}$ und die lineare Abbildung $\varphi$ ist gegeben durch $\varphi(e_j)=\sum\limits_{i=1}^na_{ij}e_i$ mit der Matrix $A=(a_{ij})$

$\begin{align*}\det(A)&=\frac{\psi(\varphi(e_1),\dots,\varphi(e_n))}{\psi(e_1,\dots,e_n)}=\frac{\psi(e_1,\dots,e_n)\left(\sum\limits_{\pi\in S_n}\mathrm{sign}(\pi)a_{1,\pi(1)}a_{2,\pi(2)}\cdots a_{n,\pi(n)}\right)}{\psi(e_1,\dots,e_n)}\\&=\sum\limits_{\pi\in S_n}\mathrm{sign}(\pi)a_{1,\pi(1)}a_{2,\pi(2)}\cdots a_{n,\pi(n)}\end{align*}$

Es gilt $\det(A)=0\Leftrightarrow$ $A$ ist singulär $\Leftrightarrow A\,x=b$ ist _nicht_ eindeutig lösbar oder gar nicht.
""")

# ╔═╡ 4843a1ee-4425-4fc4-8168-066f15874621
md"""
##### Beweis (Ansatz):
Für $i=1$ vergleiche mit $\det(A)=\sum\limits_{\pi\in S_n}\mathrm{sign}(\pi)a_{1,\pi(1)}\cdots a_{n,\pi(n)}$. Das lässt sich schreiben für festes $i\in\{1,\dots,n\}: \det(A)=a_{i1}\,d_{i1}+a_{i2}\,d_{i2}+\dots+a_{in}\,d_{in}$, wobei $d_{ij}$ Summen von Produkten mit $n-1$ Faktoren _ohne_ Element $a_{ij}$ sind. Zu zeigen ist: $d_{ij} = (-1)^{i+j}\det(\tilde{A}_{ij}).$
##### Bemerkung:
1. Analog funktioniert die "Entwicklung nach der $j$-ten _Spalte_":

    $\det(A) = \sum\limits_{i=1}^n(-1)^{i+j}\,a_{ij}\,\det(\hat{A}_{ij}),\quad j$ beliebig.
2. Anzahl Multiplikationen wie in alter Formel, aber Nullen können besser ausgenutzt werden.

##### Beispiel:
 

 $\begin{align*}\det\begin{bmatrix}5&2&-2&1\\3&0&1&4\\0&0&0&2\\1&0&3&-4\end{bmatrix}&\overset{i=3}{=}(-1)^{3+4}\cdot2\cdot\det\begin{bmatrix}5&2&-2\\3&0&1\\1&0&3\end{bmatrix}\\&\overset{j=2}{=}-2\cdot(-1)^{2+1}\cdot2\cdot\det\begin{bmatrix}3&1\\1&3\end{bmatrix}=4\cdot(9-1)=32\end{align*}$
"""

# ╔═╡ cb7df674-832a-4143-a8bf-63f8143cc875
md"""
### 4.1.1 Eigenschaften der Determinante

##### Satz:
Für $A,B\in\mathbb{R}^{n\times n}$ gilt
1.  $\det(\lambda A)=\lambda^n\det(A)\quad \lambda\in\mathbb{R}$
2.  $\det(A) = \det(A^T)$
3.  $A=\begin{bmatrix}\lambda_1&0&\cdots&0\\0&\lambda_2&&\vdots\\\vdots&&\ddots&\\0&\cdots&&\lambda_n\end{bmatrix} = \mathrm{diag}(\lambda_1,\dots,\lambda_n)$ Diagonalmatrix: $\det(A)=\lambda_1\cdot\,\cdots\,\cdot\lambda_n$
3.  $\det(A\cdot B) = \det(A)\cdot \det(B) = \det(B\cdot A)$
4.  $\det(A^{-1})=\frac{1}{\det(A)}\quad (A$ invertierbar, d.h. $\det(A)\neq0$)
"""

# ╔═╡ c3698a4a-ed13-4e71-a249-e729b3cdb19d
md"""
##### Beweis:
Für 1.-3. betrachte $\det(A)=\sum\limits_{\pi\in S_n}\mathrm{sign}(\pi)\,a_{1,\pi(1)}\,\dots\,a_{n,\pi(n)}.$

zu 1: Jedes Element $a_{ij}$ wird mit $\lambda$ multipliziert $\Rightarrow \det(\lambda A)=\sum\limits_{\pi\in S_n}\mathrm{sign}(\pi)\,(\lambda a_{1,\pi(1)})\,(\lambda a_{2,\pi(2)})\,\dots = \lambda^n\det(A).$


zu 2: 
 
 $\begin{align*}\det(A)&=\sum\limits_{\pi\in S_n}\mathrm{sign}(\pi)\,a_{1,\pi(1)}\,\dots\,a_{n,\pi(n)} = \sum\limits_{\pi\in S_n}\mathrm{sign}(\pi)\,a_{\pi^{-1}(1),1}a_{\pi^{-1}(2),2}\,\dots \\&= \sum\limits_{\pi^{-1}\in S_n}\mathrm{sign}(\pi^{-1})\,a_{\pi^{-1}(1),1}\,\dots\,a_{\pi^{-1}(n),n} = \det(A^T)\end{align*}$


zu 3: Nur die Permutation $a_{11}\,a_{22}\,\dots\,a_{nn}$ ist ungleich Null.

zu 4: Seien $\varphi_A,\varphi_B$ die lineare Abbildung zu $A,B.$ ($A,B$ regulär, also $\det\neq0$).

 $\begin{align*}\det(A\,B) &= \det(\varphi_A\circ\varphi_B) = \frac{\psi(\varphi_A(\varphi_B(e_1)),\varphi_A(\varphi_B(e_2)),\dots,\varphi_A(\varphi_B(e_n)))}{\psi(e_1\dots e_n)}\\&=\frac{\psi(\varphi_A(\varphi_B(e_1)),\dots\varphi_A(\varphi_B(e_n)))}{\psi(\varphi_B(e_1),\dots,\varphi_B(e_n))}\frac{\psi(\varphi_B(e_1),\dots,\varphi_B(e_n))}{\psi(e_1\dots e_n)}\\&=\det(\varphi_A)\cdot\det(\varphi_B)=\det(A)\cdot\varphi(B)\end{align*}$

Für $A$ oder $B$ singulär, ist $A\cdot B$ auch singulär ($\det(A\,B)=0$).

zu 5: $1=\det(I)=\det(A\cdot A^{-1})=\det(A)\det(A^{-1})\Rightarrow \det(A^{-1})=\frac{1}{\det(A)}$.
"""

# ╔═╡ 1058cc8a-3d7c-4c68-ba03-c408c608bcae
md"""
##### Bemerkung:
1. Für $A$ Diagonalmatrix gilt $\det(A)=\prod\limits_{i=1}^n a_{ii}$, für $A$ obere/untere Dreiecksmatrix auch.
2. Die erlaubten Operationen im Gauß-Algorithmus haben folgende Effekte auf die Determinante:
   + Skalieren einer Zeile mit Faktor $\lambda$ skaliert Determinante um Faktor $\lambda$
   + Vertauschen zweier Zeilen ändert das Vorzeichen der Determinante
   + Addieren eines beliebigen Vielfaches einer Zeiler zu einer anderen lässt die Determinante unverändert
3. Für $\det(A+B)$ gibt es keine Vereinfachung ($\neq \det(A)+\det(B)!!!$)
"""

# ╔═╡ e2891539-b1c0-495e-a2ee-7eebcccd9ff0
md"""
## 4.2 Eigenwerte und Eigenvektoren

##### Motivation:

Eine lineare Abbildung $\varphi:V\to V$ wirkt auf die meisten Vektoren "kompliziert". Ideal wäre eine Basis, in der die zu $\varphi$ gehörende Matrix in Diagonalform ist.

Die Leitfrage hier ist: gibt es Vektoren $v\in V$, die von $\varphi$ nur gestreckt oder gestaucht werden, d.h. für die $\varphi(v) = \lambda\,v$ ($\lambda\in\mathbb{R}$) gilt?
"""

# ╔═╡ c41cf772-d812-4268-8d6d-6da462cfab90
md"""
##### Beispiel:
Gegeben eine lineare Abbildung $\varphi$ bzgl. der kanonischen Basis $\{e_1,\dots,e_n\}$

Beispielsweise für $n=2$, mit $\varphi(e_1)=\begin{bmatrix}1\\2\end{bmatrix},\, \varphi(e_2)=\begin{bmatrix}2\\-2\end{bmatrix},\, $also $A=\begin{bmatrix}1&\phantom{-}2\\2&-2\end{bmatrix}$

Wir stellen fest: $\varphi(e_1-2e_2)\mathrel{\widehat{=}} A\begin{bmatrix}\phantom{-}1\\-2\end{bmatrix} = \begin{bmatrix}-3\\\phantom{-}6\end{bmatrix}=-3\begin{bmatrix}\phantom{-}1\\-2\end{bmatrix}\mathrel{\widehat{=}}-3(e_1-2e_2)$

 $\phantom{Wir stellen fe:\!}\varphi(2e_1+e_2)\mathrel{\widehat{=}}A\begin{bmatrix}2\\1\end{bmatrix}=\begin{bmatrix}4\\2\end{bmatrix}=2\begin{bmatrix}2\\1\end{bmatrix}\mathrel{\widehat{=}}2(e_1+e_2)$

Wir wählen als neue Basis $\{v_1,v_2\}=\{e_1-2e_2,2e_1+e_2\}$

Offenbar ist $\varphi(v_1)=-3v_1,\,\varphi(v_2)=2v_2$, also $A = \begin{bmatrix}-3&0\\\phantom{-}0&2\end{bmatrix}$ bzgl. $\{v_1,v_2\}$.

Genauer: Koordinatentransformation bei Basiswechsel!

Seien $\{v_1,v_2,\dots,v_n\}$ und $\{w_1,w_2,\dots,w_n\}$ 2 Basen von $V$. Für $u\in V$ gilt $u=\sum\limits_{i=1}^nv_i\,\alpha_i=\sum\limits_{i=1}^nw_i\,\beta_i$. 

Wie hängen $\alpha_i,\beta_i$ zusammen? Dafür zunächst: wie hängen $\{v_i\}$ und $\{w_i\}$ zusammen?

Wir haben

$\begin{align*} v_1 &= w_1\,t_{11}+w_2\,t_{21}+\dots + w_n\,t_{n1}\\v_2&=w_1\,t_{12}+w_2\,t_{22}+\dots+w_n\,t_{n2}\\&\;\;\vdots\end{align*}$
also für jeden Basisvektor die Darstellung

$v_i=\sum\limits_{j=1}^nw_j\,t_{ji},$
mit $T=(t_{ij})\in\mathbb{R}^{n\times n}$ regulär (invertierbar).

Einsetzen: $u=\sum\limits_{i=1}^nv_i\,\alpha_i=\underbrace{\sum\limits_{i=1}^n\sum\limits_{j=1}^nw_j\,t_{ji}\,\alpha_i}_{=\sum\limits_{j=1}^nw_j\,\left(\sum\limits_{i=1}^nt_{ji}\,\alpha_i\right)} \overset{!}{=}\sum\limits_{j=1}^nw_j\,\beta_j\Rightarrow \sum\limits_{j=1}^nw_j\,\left(\sum\limits_{i=1}^nt_{ji}\,\alpha_i-\beta_j\right)=0$.

Also $\beta_j=\sum\limits_{i=1}^nt_{ji}\,\alpha_i$, bzw. $\tilde x = T\,x$ wobei $\tilde x$ der Koordinatenvektor bzgl. $\{w_i\}$ und $x$ der Koordinatenvektor bzgl. $\{v_i\}$ ist.

Jetzt: $\varphi:V\to V$ lineare Abbildung.\
$y=\varphi(x)$ in Basis $\{v_1,\dots,v_n\}\;\,:\, y=A\,x,\quad x,y$ Koordinaten bzgl. $\{v_i\}$,

 $\kern39pt$ in Basis $\{w_1,\dots,w_n\}:\tilde{y} = \tilde{A}\,\tilde{x},\quad \tilde{x},\tilde{y}$ Koordinaten bzgl. $\{w_i\}$.

$\Rightarrow \tilde{y}=T\,y=T\,A\,x=\underbrace{T\,A\,T^{-1}}_{\tilde{A}}\overbrace{T\,x}^{\tilde{x}}=T\,A\,T^{-1}\tilde{x}=\tilde{A}\,\tilde{x}.$

Damit erhält man mit $\tilde A = T\,A\,T^{-1}$ die Koordinatendarstellung von $\varphi$ bzgl. $\{w_i\}$.
"""

# ╔═╡ b08e67ac-2759-4041-8367-ad72b989c4fb
md"""
##### Definition:
Zwei Matrizen $A,B\in\mathbb{R}^{n\times n}$ heißen _ähnlich_, falls ein reguläres $T\in\mathbb{R}^{n\times n}$ existiert, sodass $B=T\,A\,T^{-1}$.

##### Bemerkung:
1. Ähnlichkeit erzeugt Äquivalenzklassen auf $\mathbb{R}^{n\times n}$, d.h. der Menge der Matrizen.
2. Ähnliche $A$ und $B$ haben bestimmte Dinge gemeinsam, sogenannte "Invarianten" (bzgl. Basiswechsel). Zum Beispiel:

   $\det(B) = \det(T\,A\,T^{-1}) = \det(T)\,\det(A)\,\det(T^{-1})= \det(A).$
3. Je nach Definition des Basiswechsels gilt auch $S^{-1}\,A\,S$ mit $S=T^{-1}$.
4. Ideal wäre eine einfache Form von $B$, z.B.

   $D=\begin{bmatrix}\lambda_1&0&\cdots&0\\0&\lambda_2&&\vdots\\\vdots&&\ddots&\\0&\cdots&&\lambda_n\end{bmatrix}=\mathrm{diag}(\lambda_1,\dots,\lambda_n),$
   d.h. $S^{-1}\,A\,S=D$, bzw $A\,S=S\,D$.

   Sei $S=\underbrace{\begin{bmatrix}|&|&&|\\s_1&s_2&\cdots&s_n\\|&|&&|\end{bmatrix}}_{\text{Spalten}}$, dann

   $SD = \begin{bmatrix}|&|&&|\\\lambda_1\,s_1&\lambda_2\,s_2&\cdots&\lambda_n\,s_n\\|&|&&|\end{bmatrix},\quad AS= \begin{bmatrix}|&|&&|\\A\,s_1&A\,s_2&\cdots& A\,s_n\\|&|&&|\end{bmatrix},$

   also $A\,s_i\overset{!}{=}\lambda_i\,s_i,\quad i=1,\dots,n$. Diagonalisierung ist aber nicht immer möglich.
"""

# ╔═╡ e3f03b99-68e3-45f7-b3e0-97f45e1da6b9
md"""
##### Definition:
Sei $A\in \mathbb{R}^{n\times n}$. Falls für ein $v\in\mathbb{R}^n\setminus\{0\}$ und $\lambda\in\mathbb{R}$ gilt $A\,v=\lambda\,v$, so heißt $\lambda$ _Eigenwert_ und $v$ _Eigenvektor_ von $A$. Die Menge der Eigenvektoren zum Eigenwert $\lambda$ heißt _Eigenraum_ $\mathrm{ER}(\lambda)=\{v\in\mathbb{R}^n \mid A\,v=\lambda\,v\}$. Die Menge aller Eigenwerte von $A$ heißt _Spektrum_ $\sigma(A) = \{\lambda\in \mathbb{R} \mid \exists v\in\mathbb{R}^n, A\,v=\lambda\,v\}$.
##### Bemerkung:
1.  $\lambda$ ist invariant, denn für $B=T\,A\,T^{-1}$ folgt aus \
    $T\cdot\mid\, A\,v=\lambda\,v \Leftrightarrow T\,A\,T^{-1}\,T\,v = \lambda T\,v \Leftrightarrow B\,\tilde{v}=\lambda\,\tilde{v},\quad$ mit $\tilde{v}=Tv$ Eigenvektor.
2. Später werden wir $\lambda\in\mathbb{C}$ und $v\in\mathbb{C}^n$ zulassen, selbst wenn $A\in\mathbb{R}^{n\times n}.$
"""

# ╔═╡ aa1e42de-dc2f-40e1-ad09-a3fb9f869c3f
md"""
##### Beispiel:
1. Oben $A=\begin{bmatrix} 1&\phantom{-}2\\2&-2\end{bmatrix},\, \lambda_1=-3,\,v_1=\begin{bmatrix}\phantom{-}1\\-2\end{bmatrix},\,\lambda_2=2,\, v_2=\begin{bmatrix}2\\1\end{bmatrix}$

    $\mathrm{ER}(-3)=\left\{\alpha\begin{bmatrix}\phantom{-}1\\-2\end{bmatrix}:\alpha\in\mathbb{R}\right\},\, \mathrm{ER}(2)=\left\{\alpha\begin{bmatrix}2\\1\end{bmatrix}:\alpha\in\mathbb{R}\right\}$


2.  $A=I_n,\, \lambda = 1,\, \mathrm{ER}(1) = \mathbb{R}^n$


3.  $A = \begin{bmatrix}0\end{bmatrix}\in\mathbb{R}^{n\times n},\, \lambda = 0, \mathrm{ER}(0) = \mathbb{R}^n$


4.  $A = \begin{bmatrix} 2&0&0\\0&2&0\\0&0&3\end{bmatrix},\, \lambda_1=2,\, v_1=\begin{bmatrix}1\\0\\0\end{bmatrix},\, \lambda_2 = 2,\, v_2=\begin{bmatrix}0\\1\\0\end{bmatrix},\, \lambda_3=3,\, v_3=\begin{bmatrix}0\\0\\1\end{bmatrix}$

    $\mathrm{ER}(2) = \left\{\alpha\begin{bmatrix}1\\0\\0\end{bmatrix}+\beta\begin{bmatrix}0\\1\\0\end{bmatrix}: \alpha,\beta\in\mathbb{R}\right\},\quad \mathrm{ER}(3)=\left\{\alpha\begin{bmatrix}0\\0\\1\end{bmatrix}: \alpha\in\mathbb{R}\right\}$
"""

# ╔═╡ 9faaa5df-21f9-432e-ae98-dee5c4043a57
md"""
##### Satz:
Existieren zu $A\in\mathbb{R}^{n\times n}$ $n$ linear unabhängige Eigenvektoren $v_i (i=1,\dots,n)$, genau dann ist $A$ diagonalisierbar, d.h. $A$ ist ähnlich zu einer Diagonalmatrix.

##### Beweis:
(Diagonalisierbar $\Rightarrow$ $n$ Eigenvektoren): Klar, denn $\mathrm{diag}(\lambda_1,\dots,\lambda_n)$ hat $n$ Eigenvektoren (siehe oben).

($n$ Eigenvektoren $\Rightarrow$ diagonalisierbar): Seien $v_i\in\mathbb{R}^n$ die Eigenvektoren zu Eigenwerten $\lambda_i\in\mathbb{R}$. Setze $S=\begin{bmatrix}|&|&&|\\v_1&v_2&\cdots&v_n\\|&|&&|\end{bmatrix}$, dann gilt $A\,S = \begin{bmatrix}|&&|\\\lambda_1\,s_1&\cdots&\lambda_n\,s_n\\|&&|\end{bmatrix}=S\,D$ mit $D=\mathrm{diag}(\lambda_1,\dots,\lambda_n)$, also $D=S^{-1}\,A\,S$. $A$ ist _diagonal-ähnlich_.
"""

# ╔═╡ f8998cfc-8838-45b6-82d3-bcdad20a60ee
md"""
Wir benötigen Eigenwerte und Eigenvektoren von $A$.

### 4.2.1 Berechnung der Eigenwerte
Es gilt $A\,v = \lambda\,v$, also $(\lambda\,I_n-A)\,v = 0$, d.h. die Matrix $\lambda \,I_n-A$ besitzt einen nicht-trivialen Nullraum $\Leftrightarrow$ das lineare Gleichungssystem $(\lambda\,I_n-A)\,v = 0$ ist mehrdeutig lösbar $\Leftrightarrow$ die Matrix $\lambda\,I_n-A$ ist _nicht_ regulär $\Leftrightarrow \det(\lambda\,I_n-A)=0\Leftrightarrow \mathrm{Ker}(\lambda\,I_n-A)\neq\{0\}$.

Das ist eine Gleichung für $\lambda$!

##### Satz und Definition:
Für $A\in\mathbb{R}^{n\times n}$ gilt 

 $\lambda\in\mathbb{R}$ Eigenwert von $A \Leftrightarrow \det(\lambda\,I_n-A)=0$

Die Funktion $p_A(t):= \det(t\,I_n-A)$ heißt _charakteristisches Polynom_.
"""

# ╔═╡ 16ad9117-7b0a-4e96-be3a-44bb0dea2ab8
md"""
##### Beispiel:
1.  $A = \begin{bmatrix} 1 & 2 \\ 1 & 2 \end{bmatrix},\quad \lambda\,\begin{bmatrix} 1& 0 \\ 0 & 1 \end{bmatrix} - \begin{bmatrix} 1 & 2 \\ 1 & 2 \end{bmatrix} = \begin{bmatrix} \lambda - 1 & -2 \\ -1 & \lambda - 2\end{bmatrix},$

    $p_A(t) = \det(t\,I - A) = \det\left(\begin{bmatrix} t - 1 & -2 \\ -1 & t - 2 \end{bmatrix}\right) = (t-1)(t-2) - 2 = t^2 - 3t,$

    $p_A(t) \overset{!}{=} 0 \Rightarrow t^2 - 3t = 0 \Rightarrow t_1 = 0, t_2 = 3.$


2.  $A = \begin{bmatrix} 0 & 1 & 0 \\ 1 & 1 & 1 \\ 1 & 2 & 2 \end{bmatrix},\quad \lambda\,\begin{bmatrix} 1&0&0\\ 0 & 1&0 \\ 0&0&1 \end{bmatrix} - \begin{bmatrix} 1 & 1 & 0 \\ 1 & 1 & 1 \\ 1 & 2 & 2 \end{bmatrix} = \begin{bmatrix} \lambda & -1 & 0 \\ -1 & \lambda-1 & -1 \\ -1 & -2 & \lambda-2 \end{bmatrix},$

    $p_A(t) = \det(t\,I - A) = \det\left(\begin{bmatrix} t & -1 & 0 \\ -1 & t-1 & -1 \\ -1 & -2 & t-2 \end{bmatrix}\right)$

    $\phantom{p_A(t) = \det(t\,I - A) }= t((t-1)(t-2) - 2) - (t - 2) - 1 = t^3 - 3t^2 -t + 1.$
"""

# ╔═╡ adb1b0c5-3441-486f-b677-b47f54bc68c3
md"""
##### Satz:
Für $A\in\mathbb{R}^{n\times n}$ hat das charakteristische Polynom die Form 

$p_A(t) = t^n-\mathrm{sp}(A)\,t^{n-1}+\dots+(-1)^n\,\det(A),$
wobei $\mathrm{sp}(A)=\sum\limits_{i=1}^na_{ii}$ die "Spur" von $A$ ist.

##### Beweis:
 $\begin{align*}\det(\overbrace{\lambda I_n-A}^{=:(b_{ij)})})&=\det\begin{bmatrix}\lambda-a_{11}&-a_{12}&\cdots&\cdots\\-a_{21}&\lambda-a_{22}\\\vdots&&\ddots&\\\vdots&&&\lambda-a_{nn}\end{bmatrix}\\&=\sum\limits_{\pi\in S_n}\mathrm{sign}(\pi)\,b_{1,\pi(1)}\,\cdots\,b_{n,\pi(n)}\\&=(\lambda-a_{11})\,(\lambda-a_{22})\,\cdots\,(\lambda-a_{nn})+\overbrace{\sum\limits_{\pi\in S_n\setminus\{\mathrm{id}\}}\mathrm{sign}(\pi)\,b_{1,\pi(1)}\,\cdots\,b_{n,\pi(n)}}^{\text{max. }n-2\text{ Diagonalelemente}}\\&=\lambda^n-(\underbrace{a_{11}+a_{22}+\dots+a_{nn}}_{\mathrm{sp}(A)})\,\lambda^{n-1}+\dots\lambda^{n-2}+\dots\end{align*}$

Konstanter Koeffizient von $p_A(\lambda)$ ist $p_A(0)=\det(-A)=(-1)^n\,\det(A)$.
"""

# ╔═╡ 59d1416f-4a17-41f7-91ef-61b619b69af0
md"""
##### Bemerkung:
1.  $p_A(\lambda)$ ist invariant unter Basiswechsel, denn

    $\begin{align*}B&=T\,A\,T^{-1},\, p_B(\lambda)=\det(\lambda\,I_n -B)=\det(\lambda\,T\,T^{-1} -T\,A\,T^{-1})\\&=\det(T\,(\lambda\,I_n-A)\,T^{-1})=\det(T)\,p_A(\lambda)\,\det(T^{-1})=p_A(\lambda).\end{align*}$

   Insbesondere ist $\mathrm{sp}(A)$ invariant.


2.  $\lambda = 0 \Leftrightarrow 0\in\sigma(A)\Leftrightarrow p_A(0)=0\Leftrightarrow \det(A)=0$, also $A$ singulär.


3.  $\mathrm{Ker}(\lambda\,I_n-A) = \mathrm{ER}(\lambda) \Rightarrow$ Eigenvektoren befinden sich im Kern.
"""

# ╔═╡ 2ca178fb-0d09-49af-88bd-37aa02d229ba
md"""
### 4.2.2 Vorgehen bei Diagonalisierung von $A$

1. Berechnung des charakteristischen Polynoms $p_A(t)=\det(t\,I_n -A)$
2. Finden der Nullstellen $p_A(\lambda_i)=0,\quad i=1,2,\dots,n$
3. Lösen des LGS $(\lambda_i\,I_n - A)v=0,\quad i=1,\dots,n$
4. Bilden der Transformationsmatrix $S=\begin{bmatrix}|&|&&|\\v_1&v_2&\cdots&v_n\\|&|&&|\end{bmatrix}$ mit $n$ _linear unabhängigen_ Eigenvektoren. $\Rightarrow S^{-1}\,A\,S =\mathrm{diag}(\lambda_1,\dots,\lambda_n)$ mit $\lambda_i$ Eigenwerte zu $v_i.$

_Achtung_: Lassen sich keine $n$ linear unabhängige Eigenvektoren finden, ist $A$ _nicht_ diagonalisierbar.
"""

# ╔═╡ 36bbca21-c2a7-4e91-b0e4-9bc08c45a042


# ╔═╡ 029fd333-ad3f-4867-8250-7285bb483602
md"""
##### Satz:
Sei $\lambda$ Eigenwert zu $A\in\mathbb{R}^{n\times n}$ und $\mathrm{dim}(\mathrm{ER}(\lambda))=\mathrm{dim}(\mathrm{Ker}(\lambda I_n-A))$ die Anzahl linear unabhängiger Eigenvektoren zu $\lambda$. Dann gilt 

$1\leq \mathrm{dim}(\mathrm{ER}(\lambda))\leq K_\lambda,$
wobei $K_\lambda$ die Vielfachheit der Nullstelle $\lambda$ von $p_A(t)$ ist.

##### Bemerkung:
1. Das heißt zu einem Eigenwert $\lambda$ gibt es mindestens einen linear unabhängigen Eigenvektor und maximal $K_\lambda$ linear unabhängige Eigenvektoren.
2. Erinnere: z.B. $x^3-x^2-8x+12 = (x+3)(x-4x+4)=(x+3)(x-2)^2$, wobei $-3$ einfache Nullstelle und $2$ doppelte Nullstelle.
3. Sprechweise: $\;\,K_\lambda \kern38pt=:$ "algebraische Vielfachheit" von $\lambda$,\
   $\phantom{Sprechweise}\mathrm{dim}(\mathrm{ER}(\lambda))=:$ "geometrische Vielfachheit" von $\lambda$.
"""

# ╔═╡ 73a5b4bc-ff97-433f-bb50-7a2a3e9e55ad
md"""
##### Beispiel:
1.  $A = \begin{bmatrix} 3 & -1 \\ 1 & \phantom{-}1 \end{bmatrix}$, $\det\begin{bmatrix} \lambda-3 & 1 \\ -1 & \lambda-1 \end{bmatrix} = (\lambda-3)\,(\lambda-1)+1 = \lambda^2 - 4\lambda - 4 = (\lambda - 2)^2$

    $p_A(\lambda) = (\lambda - 2)^2$, $\lambda_{1,2}=2$, alg. Vielfachheit $2$.

    $\lambda_1 = 2: (\lambda\,I_2 - A)\,v = \begin{bmatrix} -1 & 1 \\ -1 & 1 \end{bmatrix}\,v = 0$

    $\mathrm{ER}(2) = \left\{\begin{bmatrix} \alpha\\\alpha\end{bmatrix}, \alpha\in\mathbb{R}\right\}$, nicht diagonalisierbar, da geometrische Vielfachheit $1$!


2.  $A = \begin{bmatrix} -3 & 2 & \phantom{-}1 \\\phantom{-}2 & 0 & \phantom{-}2\\\phantom{-}1 & 2 & -3\end{bmatrix}$, $\det\begin{bmatrix} \lambda+3 & -2 & -1 \\-2 & \lambda & -2\\-1 & -2 & \lambda+3\end{bmatrix}=\lambda^3 + 6\lambda^2 - 32$

    $p_A(\lambda) = \lambda^3 + 6\lambda^2 - 32, \lambda_1 = 2, \Rightarrow p_A(\lambda) = (\lambda-2)\,(\lambda+4)^2$

    $\lambda_1 = 2$, alg. Vielfachheit $1$.

    $\mathrm{ER}(2) = \left\{\alpha\begin{bmatrix} \phantom{-}9 \\ -2 \\\phantom{-}1\end{bmatrix} : \alpha \in \mathbb{R}\right\}$

    $\lambda_2 = -4$, alg. Vielfachheit $2$.

    $\mathrm{ER}(-4) = \left\{\begin{bmatrix} -2\beta - \alpha \\ \beta \\ \alpha \end{bmatrix}: \alpha,\beta\in\mathbb{R} \right\}$, z.B. $v_2 = \begin{bmatrix} -1\\0\\1\end{bmatrix}, v_3 = \begin{bmatrix} -2\\1\\0\end{bmatrix}$.

   Damit diagonalisierbar.
"""

# ╔═╡ e69cb10f-709a-4a4f-be30-be962d74ff22
md"""
##### Beweis:

 $\dim(\mathrm{ER}) \geq 1$, klar per Konstruktion, denn $\det(\lambda\,I_n-A) = 0 \Rightarrow \mathrm{Ker}(\lambda\,I_n - A) \neq \{0\}$.

Sei $\{v_1,\dots,v_m\}$ Basis von $\mathrm{ER}(\lambda_0)$, d.h. $\mathrm{dim}(\mathrm{ER})=m$. Wir basteln eine Basis $\{v_1,\dots,v_m,w_{m+1},\dots,w_n\}$ des gesamten Raums. Bezüglich dieser Basis hat die lineare Abbildung $\varphi_A$ die Matrix-Koordinaten

$B = \begin{bmatrix} \lambda_0 & \cdots & 0 \\ \vdots & \ddots & \vdots & \star \\ 0 & \cdots & \lambda_0\\ & 0 & & \tilde{A} \end{bmatrix}$

Dieses $B$ hat dasselbe charakteristische Polynom wie $A$. 

 $p_B(t)=p_A(t)=\det\begin{bmatrix} t-\lambda_0 & \cdots & 0 \\ \vdots & \ddots & \vdots & \star \\ 0 & \cdots & t-\lambda_0\\ & 0 & & t\,I_{n-m}-\tilde{A} \end{bmatrix}$

 $\phantom{p_B(t)=p_A(t)}=(t-\lambda_0)^m\det(t\,I_{n-m}-\tilde{A})\Rightarrow m = \mathrm{dim}(\mathrm{ER}(\lambda_v))\leq K_{\lambda_0}.$
"""

# ╔═╡ 79b9e65d-84af-480e-ba32-8fa09367c48c
md"""
##### Bemerkung:
1. Hat $p_A(t)$ $n$ Nullstellen $\lambda_i,\,i=1,\dots,n$, mit Vielfachheit gezählt _und_ ist die algebraische gleich der geometrischen Vielfachheit, so ist die Matrix $A$ diagonalisierbar.
2. Hat $p_A(t)$ $n$ _verschiedene_ Nullstellen, so ist $A$ diagonalisierbar.
3. Die Bedingung von $n$ Nullstellen für $p_A(t)$ mit Grad $n$ legt nahe, $\lambda_i\in\mathbb{C}$ zuzulassen.
"""

# ╔═╡ eceefaa1-1bcc-4515-ab40-4ee58825ab04
md"""
##### Beispiel:
 $A=\begin{bmatrix}\phantom{-}2&1\\-2&4\end{bmatrix},\, \det\begin{bmatrix}\lambda-2&-1\\2&\lambda-4\end{bmatrix}=(\lambda-2)(\lambda-4)+2=\lambda^2-6\lambda + 10$

 $\lambda_{1,2}=3\pm\sqrt{9-10}=3\pm i$

Einsetzen von $\lambda_1$ liefert:\
$\begin{bmatrix}1+i&-1\\2&-1+i\end{bmatrix}\,x=0\Rightarrow \begin{bmatrix}2&-1+i\\1+i&-1\end{bmatrix}\,x=0\Rightarrow\begin{bmatrix}2&-1+i\\0&0\end{bmatrix}\,x=0$\
$x_2 = \alpha,\quad x_1 = \frac12(1-i)\alpha$

 $\mathrm{ER}(3+1)=\left\{\begin{bmatrix}1-i\\2\end{bmatrix}\alpha:\alpha\in\mathbb{R}\right\},\quad \mathrm{ER}(3-i)=\left\{\begin{bmatrix}1+i\\2\end{bmatrix}\alpha:\alpha\in\mathbb{R}\right\}$\
$\Rightarrow$ diagonalisierbar in $\mathbb{C}^{n\times n}$ (nicht in $\mathbb{R}^{n\times n}$!)

 $\begin{bmatrix}3+i&0\\0&3-i\end{bmatrix}=S^{-1}\,A\,S$ mit $S=\begin{bmatrix}1-i&1+i\\2&2\end{bmatrix}$
"""

# ╔═╡ 030934c2-c218-4036-80f1-264ff86f8e9f
md"""
## 4.3 Spektralsatz
"""

# ╔═╡ a837ff7b-e137-4e37-b27b-27b7bcbc7b2b
md"""
##### Satz (Spektralsatz):
Erfüllt eine Matrix $A\in\mathbb{R}^{n\times n}$ die Eigenschaft $A^T\,A=A\,A^T$, sowie $\sigma(A) \subset \mathbb{R}$, genau dann ist $A$ diagonalisierbar _mit orthonormalen_ Eigenvektoren.

##### Bemerkung:
1.  $\{A\in\mathbb{R}^{n\times n} : A^T\,A = A\,A^T \} \subset \{A\in\mathbb{R}^{n\times n} : A \text{ diagonalisierbar}\} \subset \mathbb{R}^{n\times n}$
2. Die Matrix $A$ mit $A^TA=AA^T$ heißt "normal". z.B. $A=\begin{bmatrix}1&2\\-2&1\end{bmatrix}$ oder $A=\begin{bmatrix}2&3\\3&-1\end{bmatrix}$
3. Beweis folgt später
"""

# ╔═╡ 8f585b55-b23f-4007-a677-11ff85b038b4
md"""
##### Definition:
Sei $\varphi: V\to V$ eine lineare Abbildung in $V$ und $V$ habe ein Skalarprodukt $\langle \cdot,\cdot\rangle$. Die _adjungierte Abbildung_ $\varphi^\star$ ist definiert durch

$\langle \varphi(v),w\rangle = \langle v,\varphi^\star(w)\rangle\quad \forall v,w\in V$

##### Satz:
Eigenschaften von $\varphi^*$ und der Adjunktion
1.  $\varphi^*$ ist eindeutig und existiert.
2. Die Adjunktion $(\cdot)^*$ ist linear, d.h. $(\alpha\varphi+\beta\psi)^*=\alpha\varphi^*+\beta\psi^*\quad \alpha,\beta\in\mathbb{R},\,\varphi,\psi$ lineare Abbildungen
3.  $(\varphi\circ\psi)^*=\psi^*\circ\varphi^*\quad \varphi,\psi\in V$
4.  $(\varphi^*)^*=\varphi$
5. Falls $A$ die Matrix zu $\varphi$ ist (bzgl. orthonormaler Basis), so ist $A^T$ die Matrix zu $\varphi^*$.

##### Beweis:
Zu 3: $\langle \underbrace{\varphi(\psi(v))}_{\varphi\circ\psi},w\rangle = \langle \psi(v),\varphi^*(w)\rangle = \langle v,\underbrace{\psi^*(\varphi^*(w))}_{(\varphi\circ\psi)^*}\rangle$

Zu 5: $\langle \cdot,\cdot\rangle$ Euklidische Skalarprodukt, d.h. $\langle v,w\rangle = \sum\limits_{i=1}^n v_i\,w_i$ mit $v=\sum\limits_{i=1}^nv_i\,b_i,\,w=\sum\limits_{i=1}^nw_i\,b_i,\,\{b_i\}$ orthonormale Basis

 $u=\varphi(v),\, u_i=\sum\limits_{j=1}^na_{ij}\,v_j.$

 $\langle \varphi(v),w\rangle = \sum\limits_{i=1}^n\sum\limits_{j=1}^n a_{ij}\,v_j\,w_i=\sum\limits_{j=1}^nv_j\,\sum\limits_{i=1}^na_{ij}\,w_i$

 $y = \varphi^*(w),\, y_j=\sum\limits_{i=1}^na_{ji}^*\,w_i.$

 $\langle\varphi(v),w\rangle = \sum\limits_{j=1}^nv_j\,\underbrace{\sum\limits_{i=1}^n a_{ij}\,w_i}_{\overset{!}{=}\sum\limits_{i=1}^na_{ji}^*\,w_i} = \langle v,\varphi^*(w)\rangle \Rightarrow a_{ji^*}=a_{ij},\quad$ d.h. $A^*=A^T$.
"""

# ╔═╡ ffc7bc79-1275-455c-9977-44271d674874
md"""
##### Bemerkung:
1.  $\langle x,y\rangle$ kann in $\mathbb{R}^n$ als $x^T\,y$ geschreiben werden. Damit gilt $\langle A\,v,w\rangle = (A\,v)^T\,w = v^T\,A^T\,w=v^T(\underbrace{A^T\,w}_{\varphi^*(w)})\widehat{=}\langle v,A^T\,w\rangle$
2. Wegen $(\varphi\circ\psi)^*=\psi^*\circ\varphi^*$ gilt $(A\,B)^T=B^T\,A^T$

##### Definition:
Eine Abbildung $\varphi:V\to V$ heißt _selbst-adjungiert_, falls gilt $\varphi=\varphi^*$.
##### Bemerkung:
1. Für die Matrizen gilt dann $A^T=A$, die Matrix ist _symmetrisch_.
2. Symmetrische Matrizen sind "normal", d.h. $A^T\,A=A\,A^T=A^2.$
"""

# ╔═╡ d8fbdb5a-83ff-4ba1-80ce-20e8cf404695
md"""
##### Definition:
Eine Abbildung $\varphi:V\to V$ heißt _orthogonal_, falls gilt $\langle \varphi(x),\varphi(y)\rangle = \langle x,y\rangle\quad\forall x,y\in V.$

##### Satz:
Für $\varphi$ orthogonal gilt $\varphi^*=\varphi^{-1}$
##### Beweis:
 $\langle \varphi(x),\varphi(y)\rangle=\langle x,\varphi^*(\varphi(y))\rangle = \langle x,y\rangle \Leftrightarrow \langle x,\underbrace{\varphi^*(\varphi(y))-y}_{=0}\rangle = 0\quad \forall x,y\in V$\

Also gilt $\varphi^*(\varphi(y))=y.$
"""

# ╔═╡ bb223846-09ef-410d-837e-d04c6407ed4c
md"""
##### Bemerkung;
1. Orthogonale Matrizen sind normale Matrizen:

    $A^T=A^{-1}\Rightarrow A^T\,A=A^{-1}\,A=I_n=A\,A^{-1}=A\,A^T$


2. Orthogonale Abbildungen erhalten die Norm ("Länge")

    $\lVert \varphi(x)\rVert^2 = \langle \varphi(x),\varphi(x)\rangle =\langle x,x\rangle = \lVert x \rVert^2\quad \forall x\in V$ (Drehung/Spiegelung)
##### Beispiel:
 $A=\begin{bmatrix}\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{6}}&-\frac{1}{\sqrt{3}}\\0&\frac{2}{\sqrt{6}}&\frac{1}{\sqrt{3}}\\\frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{6}}&\frac{1}{\sqrt{3}}\end{bmatrix},\, A^T=\begin{bmatrix}\frac{1}{\sqrt{2}}&0&\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{6}}&\frac{2}{\sqrt{6}}&-\frac{1}{\sqrt{6}}\\-\frac{1}{\sqrt{3}}&\frac{1}{\sqrt{3}}&\frac{1}{\sqrt{3}}\end{bmatrix}$

 $A^T\,A = \begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix} = A\,A^T$
"""

# ╔═╡ 0bcf3c7c-de4b-4b98-b429-1cd5002b1fe4
md"""
##### Bemerkung:
1. Wird $B=S^{-1}\,A\,S=T\,A\,T^{-1}$ bezüglich einer orthonormierten Basis gemacht, so gilt $S^{-1}=S^T$ also $B=S^T\,A\,S$, d.h. $S$ orthogonal (bzw. $T=S^T$ und $B=T\,A\,T^{-1})$.
2. Für normale Abbildungen $\varphi\circ\varphi^*=\varphi^*\circ\varphi$ gilt (bzgl orthonormaler Basis) $A\,A^T=A^T\,A$. Dies ist invariant: Für $B=S^T\,A\,S$ gilt:

   $\begin{align*}B\,B^T&=S^T\,A\,S(S^T\,A\,S)^T = S^T\,A\underbrace{S\,S^T}_{I}A^T\,S\\&=S^T\underbrace{A\,A^T}_{=A^T\,A}S=S^T\,A^T\,S\,S^T\,A\,S\\&=\underbrace{S^T\,A^T\,S}_{(S^T\,A\,S)^T}\,S^T\,A\,S=B^T\,B.\end{align*}$

    $\Rightarrow B$ ist normal.
"""

# ╔═╡ 9f3be73c-80b6-4460-b256-b7cdd56803bc
md"""
##### Beweis (Spektralsatz):
Zu zeigen: $\varphi\circ\varphi^*=\varphi^*\circ\varphi\Rightarrow$ diagonalisierbar mit orthonormalen Eigenvektoren.

Induktion über $n=\mathrm{dim}(V)$: Induktionsverankerung $n=1$: $A\in\mathbb{R}^{1\times1}(a_{11})$

Induktionsschrit ($n-1\to n$) Voraussetzung: $\tilde{A}\in\mathbb{R}^{(n-1)\times(n-1)\$ mit $\tilde{A}\,\tilde{A}^T=\tilde{A}^T\,\tilde{A}$ ist diagonalisierbar mit orthogonalen Eigenvektoren. Zu zeigen: $A\in\mathbb{R}^{n\times n}$ mit $A\,A^T=A^T\,A$ auch diagonalisierbar.

Sei $\lambda$ Eigenwert von $A$ (eventuell $\lambda\in\mathbb{C}$) mit $A\,v=\lambda\,v$ ($v$ ist Eigenvektor).
1. Wir zeigen $\lambda$ Eigenwert von $A^T$ mit $A^T\,v=\lambda\,v$ (gleicher Eigenvektor!) Betrachte dazu Skalarprodukt: 

    $\begin{align*}(A^T\,v-\lambda\,v)^T\,(A^T\,v-\lambda\,v) &= v^T\,A\,A^T\,v-v^T\,A\,\lambda\,v-\lambda\,v^T\,A^T\,v+\lambda^2 v^T\,v\\&=v^T\,(A\,A^T-A\,\lambda-\lambda\,A^T+\lambda^2\,I)\,v\\&=(A\,v-\lambda\,v)^T\,(A\,v-\lambda\,v)=0,\end{align*}$

   Denn $A\,v = \lambda\,v$.


2. Sei $\{v,w_1,\dots,w_{m-1}\}$ eine Orthonormalbasis. Bezüglich dieser Basis hat $\varphi_A$ die Matrix
    $B = \begin{bmatrix} \lambda & \alpha_1 & \cdots &\alpha_{n-1} \\ 0 \\ \vdots & & \tilde{A} \\0 \end{bmatrix}$, mit $\varphi(v) = \lambda\,v$ und $\varphi(w_i)=\alpha_i\,v + \sum_{j=1}^{n-1}\tilde{a}_{ij}\,w_j$.

    $\varphi_A^\star$ hat demnach die folgende Matrixdarstellung:

    $B = \begin{bmatrix} \lambda & 0 & \cdots & 0 \\ \alpha_1 \\ \vdots & & \tilde{A} \\ \alpha_{n-1} \end{bmatrix}$, aber auch $\varphi_A^\star(v) = \lambda\,v$, d.h. $B^T\,v = \lambda\,v$.

    $\Rightarrow \alpha_i=0$.

    $B$ erfüllt $B^T\,B=B\,B^T$ ($\varphi$ normal, invariant für orthonormale Basis), also

    $B = \begin{bmatrix} \lambda^2 & 0 & \cdots & 0 \\ 0 \\ \vdots & & \tilde{A}^T\,\tilde{A} \\0 \end{bmatrix} = \begin{bmatrix} \lambda^2 & 0 & \cdots & 0 \\ 0 \\ \vdots & & \tilde{A}\,\tilde{A}^T \\0 \end{bmatrix}$, da $\tilde{A}$ normal ist.

   Nach Induktionsvoraussetzung ist $\tilde{A}$ diagonalisierbar mit orthogonalen Eigenvektoren.
"""

# ╔═╡ 910abed2-28f6-4078-8841-7ff4f9a75bd4
md"""
### 4.3.1 Anwendungen
##### Satz:
 $A$ orthogonal $\Rightarrow A$ diagonalisierbar mit orthonormaler Basis. Für Eigenwert $\lambda\in\mathbb{C}$ gilt $|\lambda|=1.$
##### Beweis:
 $A\,A^T=A^T\,A=I$, d.h. $A$ normal. $A\,v=\lambda v,\, \lVert v\rVert^2 = \lVert A\,v\rVert^2=\lVert \lambda v\rVert^2=|\lambda|\Rightarrow \lambda = 1$

"""

# ╔═╡ ac374485-d23a-4371-bbeb-fbc9f58be638
md"""
##### Beispiel:
Drehung in 2D mit $A=\begin{bmatrix}\cos(\alpha)&-\sin(\alpha)\\\sin(\alpha)&\cos(\alpha)\end{bmatrix}.$

 $A\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}x\cos(\alpha)-y\sin(\alpha)\\x\sin(\alpha)+y\cos(\alpha)\end{bmatrix}$

 $\Rightarrow\det(\lambda I-A)=\begin{bmatrix}\lambda-\cos(\alpha)&\sin(\alpha)\\-\sin(\alpha)&\lambda-\cos(\alpha)\end{bmatrix}=\lambda^2-2\cos(\alpha)\lambda+1$

 $\lambda_{1,2}=\cos(\alpha)\pm\underbrace{\sqrt{\cos^2(\alpha)-1}}_{-\sin^2(\alpha)}=\cos(\alpha)\pm i\sin(\alpha)\Rightarrow |\lambda|^2 = \cos^2(\alpha)+\sin^2(\alpha)=1$

Zum Beispiel: $\alpha=\frac{\pi}{2},\, A=\begin{bmatrix}0&-1\\1&0\end{bmatrix},\ \lambda_{1,2}=\pm i,\, v_{1,2}=\begin{bmatrix}\pm i\\1\end{bmatrix}$ (Drehung um 90°)
"""

# ╔═╡ 95b1c356-83dc-4450-bbc0-429152ef066f
md"""
##### Satz:
Für Matrix $A$ symmetrisch ($A=A^T$) ist $A$ diagonalisierbar mit orthonormaler Basis und alle Eigenwerte sind reell. Die Eigenvektoren in $\mathbb{R}^n$ heißen _Hauptachsen_ von $A$.
##### Beweis:
 $A^TA=A^2=A\,A^T,\,$ also $A$ normal. Annahme: $\lambda,\overline{\lambda}$ sind komplex konjugierte Eigenwerte und $v,\overline{v}$ sind Eigenwerte. Es gilt

 $\begin{align*}\lambda v^T\,\overline{v} &=(\lambda v)^T\,\overline{v}\\&=(A\,v)^T\,\overline{v}=v^T\,\underset{=A}{A^T}\,\overline{v}\\&=v^T\,(A\,\overline{v}) = v^T\,(\overline{\lambda}\,\overline{v})\\&=\overline{\lambda}\,v^T\,v\Rightarrow \lambda=\overline{\lambda}.\end{align*}$
"""

# ╔═╡ ae076f7b-4b9d-4beb-8352-66eee44a30be
md"""
##### Beispiel:
 $A = \begin{bmatrix} 3&2&4\\2&0&2\\4&2&3\end{bmatrix}$ 
 $\det(\lambda I-A)=\begin{bmatrix}\lambda-3&-2&-4\\-2&\lambda&-2\\-4&-2&\lambda-3\end{bmatrix}=\lambda^3-6\lambda^2-15\lambda-8=(\lambda-8)(\lambda+1)^2$

Eigenwert $\lambda_1 = 8$, algebraische Vielfachheit $1\Rightarrow 1$ linear unabängiger Eigenvektor.

 $\begin{bmatrix}5&-2&-4\\-2&8&-2\\-4&-2&5\end{bmatrix}v=0\Rightarrow v=\alpha\begin{bmatrix}2\\1\\2\end{bmatrix},\,\alpha\in\mathbb{R},$ z.B. $v_1=\begin{bmatrix}2\\1\\2\end{bmatrix}$

Eigenwert $\lambda_{2,3} = -1$, algebraische Vielfachheit $2\Rightarrow$ mindestens $1$ linear unabhängiger Eigenvektor, höchstens $2$. 

Aber: $A$ ist symmetrisch, also diagonalisierbar, d.h. es müssen auf jeden Fall $2$ linear unabhängige Eigenvektoren entstehen.

 $\begin{bmatrix} -4&-2&-4\\-2&-1&-2\\-4&-2&-4\end{bmatrix}v=0\Rightarrow v=\alpha\begin{bmatrix}1\\-4\\1\end{bmatrix}+\beta\begin{bmatrix}1\\-2\\0\end{bmatrix},\,$ z.B. $v_2=\begin{bmatrix}1\\-4\\1\end{bmatrix}, v_3=\begin{bmatrix}1\\-2\\0\end{bmatrix}$

Beachte $v_1$ ist orthogonal zu $v_2$ und $v_3$. Wir können zusätzlich $v_2$ orthogonal zu $v_3$ wählen, z.B. $v_2=\begin{bmatrix}1\\-4\\1\end{bmatrix},\,v_3=\begin{bmatrix}-1\\0\\1\end{bmatrix}$

Orthonormierte Basis aus Eigenvektoren $\left\{\begin{bmatrix}\frac{2}{3}\\\frac{1}{3}\\\frac{2}{3}\end{bmatrix},\begin{bmatrix}\frac{1}{\sqrt{18}}\\-\frac{4}{\sqrt{18}}\\\frac{1}{\sqrt{18}}\end{bmatrix},\begin{bmatrix}-\frac{1}{\sqrt{2}}\\0\\\frac{1}{\sqrt{2}}\end{bmatrix}\right\}$ (Spalten von $S$)

 $S^{-1}\,A\,S=S^T\,A\,S=\begin{bmatrix}8&0&0\\0&-1&0\\0&0&-1\end{bmatrix}$
"""

# ╔═╡ c1d1ff69-73c8-476c-a7ab-bd3c4ce699a8
md"""
##### Bemerkung:
1. Der Spannungstensor $T\in\mathbb{R}^{3\times 3}$ in einem Material, liefert Spannungen $s\in\mathbb{R}^3$ auf einer Schnittfläche mit Normalenrichtung $n$, $s = T\,n$, ist immer symmetrisch, d.h. es gibt immer $3$ orthogonale Schnittflächen auf denen nur Druck- oder Zugkräfte herrschen.


2. Gilt algebraische Vielfachheit $\neq$ geometrische Vielfachheit, so ist die Matrix $A$ _nicht_ diagonalisierbar. Es gibt jedoch eine Basis-Transformation $S$ so, dass $A$ _Jordan-Form_ bekommt:

    $S^{-1}\,A\,S = \begin{bmatrix} J_1 & 0 & \cdots & 0 \\ 0 & J_2 & \ddots & \vdots \\ \vdots & \ddots & \ddots & 0 \\ 0 & \cdots & 0 & J_q \end{bmatrix} \in \mathbb{C}^{n\times n}$

    $\sigma(A) = \{\lambda_1, \ldots, \lambda_q\}$, die $q$ Eigenwerte von $A$ sind echt voneinander verschieden, mit jeweils $K_q$ als die algebraischen Vielfachheiten und $\ell_q$ als die geometrischen Vielfachheiten der Eigenwerte.

   Jordanblöcke sind $J_i = \begin{bmatrix} \lambda_i & 1 & 0 & \cdots & 0 \\ 0 & \lambda_i & \ddots & \ddots & \vdots \\ \vdots & \ddots & \ddots & 1 & 0 \\ 0 & & 0 & \lambda_{K_i -\ell_i} & 0 \\ 0 & \cdots & \cdots & 0 & \lambda_{K_i}\end{bmatrix}\in\mathbb{C}^{K_i\times K_i}$
"""

# ╔═╡ 01bbdd70-bcce-4201-8843-5e7ca611e245
md"""
### 4.3.2 Ausblick

Wir lösen das lineare Gleichungssystem $A\,x=b$ mit Eigenwerten und Eigenvektoren! Zum Beispiel $f''=g$ als Funktion mit linearem Operator (der zweiten Ableitung).

Annahme: Wir haben eine orthonormale Basis aus Eigenvektoren $\{v_1,\dots,v_n\}$ des Operators in einem geeigneten Funktionenraum. Ansatz für die Lösung: $x=\sum\limits_{i=1}^n\alpha_i\,v_i\Rightarrow v_i$ bekannt, $\alpha_i\in\mathbb{R} =?$

Idee: Schreibe $b=\sum\limits_{i=1}^n\beta_i\,v_i$, dann sind die $\beta_i,v_i$ bekannt, z.B. $\beta_i=\langle v_i,b\rangle$

Einsetzen: $A\,x = A\left(\sum\limits_{i=1}^n\alpha_i\,v_i\right)=\sum\limits_{i=1}^n\alpha_i\,A\,v_i=\sum\limits_{i=1}^n\alpha_i\,\lambda_i\,v_i\overset{!}{=}b=\sum\limits_{i=1}^n\beta_i\,v_i$

Lösung: $\alpha_i=\frac{1}{\lambda_i}\,\beta_i$
"""

# ╔═╡ 00000000-0000-0000-0000-000000000001
PLUTO_PROJECT_TOML_CONTENTS = """
[deps]
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
PlutoTeachingTools = "661c6b06-c737-4d37-b85c-46df65de6f69"
PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"

[compat]
CairoMakie = "~0.15.9"
PlutoTeachingTools = "~0.4.7"
PlutoUI = "~0.7.80"
"""

# ╔═╡ 00000000-0000-0000-0000-000000000002
PLUTO_MANIFEST_TOML_CONTENTS = """
# This file is machine-generated - editing it directly is not advised

julia_version = "1.12.4"
manifest_format = "2.0"
project_hash = "dde5c7ad58f978ca3db549599a8bdf3bca8bbb9d"

[[deps.AbstractFFTs]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef"
uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c"
version = "1.5.0"
weakdeps = ["ChainRulesCore", "Test"]

    [deps.AbstractFFTs.extensions]
    AbstractFFTsChainRulesCoreExt = "ChainRulesCore"
    AbstractFFTsTestExt = "Test"

[[deps.AbstractPlutoDingetjes]]
deps = ["Pkg"]
git-tree-sha1 = "6e1d2a35f2f90a4bc7c2ed98079b2ba09c35b83a"
uuid = "6e696c72-6542-2067-7265-42206c756150"
version = "1.3.2"

[[deps.AbstractTrees]]
git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177"
uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
version = "0.4.5"

[[deps.Adapt]]
deps = ["LinearAlgebra", "Requires"]
git-tree-sha1 = "0761717147821d696c9470a7a86364b2fbd22fd8"
uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
version = "4.5.2"
weakdeps = ["SparseArrays", "StaticArrays"]

    [deps.Adapt.extensions]
    AdaptSparseArraysExt = "SparseArrays"
    AdaptStaticArraysExt = "StaticArrays"

[[deps.AdaptivePredicates]]
git-tree-sha1 = "7e651ea8d262d2d74ce75fdf47c4d63c07dba7a6"
uuid = "35492f91-a3bd-45ad-95db-fcad7dcfedb7"
version = "1.2.0"

[[deps.AliasTables]]
deps = ["PtrArrays", "Random"]
git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff"
uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8"
version = "1.1.3"

[[deps.Animations]]
deps = ["Colors"]
git-tree-sha1 = "e092fa223bf66a3c41f9c022bd074d916dc303e7"
uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340"
version = "0.4.2"

[[deps.ArgTools]]
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
version = "1.1.2"

[[deps.Artifacts]]
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
version = "1.11.0"

[[deps.Automa]]
deps = ["PrecompileTools", "SIMD", "TranscodingStreams"]
git-tree-sha1 = "a8f503e8e1a5f583fbef15a8440c8c7e32185df2"
uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b"
version = "1.1.0"

[[deps.AxisAlgorithms]]
deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"]
git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712"
uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950"
version = "1.1.0"

[[deps.AxisArrays]]
deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"]
git-tree-sha1 = "4126b08903b777c88edf1754288144a0492c05ad"
uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9"
version = "0.4.8"

[[deps.Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
version = "1.11.0"

[[deps.BaseDirs]]
git-tree-sha1 = "bca794632b8a9bbe159d56bf9e31c422671b35e0"
uuid = "18cc8868-cbac-4acf-b575-c8ff214dc66f"
version = "1.3.2"

[[deps.Bzip2_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "1b96ea4a01afe0ea4090c5c8039690672dd13f2e"
uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0"
version = "1.0.9+0"

[[deps.CEnum]]
git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc"
uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82"
version = "0.5.0"

[[deps.CRC32c]]
uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc"
version = "1.11.0"

[[deps.CRlibm]]
deps = ["CRlibm_jll"]
git-tree-sha1 = "66188d9d103b92b6cd705214242e27f5737a1e5e"
uuid = "96374032-68de-5a5b-8d9e-752f78720389"
version = "1.0.2"

[[deps.CRlibm_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "e329286945d0cfc04456972ea732551869af1cfc"
uuid = "4e9b3aee-d8a1-5a3d-ad8b-7d824db253f0"
version = "1.0.1+0"

[[deps.Cairo]]
deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"]
git-tree-sha1 = "71aa551c5c33f1a4415867fe06b7844faadb0ae9"
uuid = "159f3aea-2a34-519c-b102-8c37f9878175"
version = "1.1.1"

[[deps.CairoMakie]]
deps = ["CRC32c", "Cairo", "Cairo_jll", "Colors", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"]
git-tree-sha1 = "fa072933899aae6dc61dde934febed8254e66c6a"
uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
version = "0.15.9"

[[deps.Cairo_jll]]
deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"]
git-tree-sha1 = "d0efe2c6fdcdaa1c161d206aa8b933788397ec71"
uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a"
version = "1.18.6+0"

[[deps.ChainRulesCore]]
deps = ["Compat", "LinearAlgebra"]
git-tree-sha1 = "12177ad6b3cad7fd50c8b3825ce24a99ad61c18f"
uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
version = "1.26.1"
weakdeps = ["SparseArrays"]

    [deps.ChainRulesCore.extensions]
    ChainRulesCoreSparseArraysExt = "SparseArrays"

[[deps.CodecZstd]]
deps = ["TranscodingStreams", "Zstd_jll"]
git-tree-sha1 = "da54a6cd93c54950c15adf1d336cfd7d71f51a56"
uuid = "6b39b394-51ab-5f42-8807-6242bab2b4c2"
version = "0.8.7"

[[deps.ColorBrewer]]
deps = ["Colors", "JSON"]
git-tree-sha1 = "07da79661b919001e6863b81fc572497daa58349"
uuid = "a2cac450-b92f-5266-8821-25eda20663c8"
version = "0.4.2"

[[deps.ColorSchemes]]
deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"]
git-tree-sha1 = "b0fd3f56fa442f81e0a47815c92245acfaaa4e34"
uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4"
version = "3.31.0"

[[deps.ColorTypes]]
deps = ["FixedPointNumbers", "Random"]
git-tree-sha1 = "67e11ee83a43eb71ddc950302c53bf33f0690dfe"
uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f"
version = "0.12.1"
weakdeps = ["StyledStrings"]

    [deps.ColorTypes.extensions]
    StyledStringsExt = "StyledStrings"

[[deps.ColorVectorSpace]]
deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"]
git-tree-sha1 = "8b3b6f87ce8f65a2b4f857528fd8d70086cd72b1"
uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4"
version = "0.11.0"
weakdeps = ["SpecialFunctions"]

    [deps.ColorVectorSpace.extensions]
    SpecialFunctionsExt = "SpecialFunctions"

[[deps.Colors]]
deps = ["ColorTypes", "FixedPointNumbers", "Reexport"]
git-tree-sha1 = "37ea44092930b1811e666c3bc38065d7d87fcc74"
uuid = "5ae59095-9a9b-59fe-a467-6f913c188581"
version = "0.13.1"

[[deps.Compat]]
deps = ["TOML", "UUIDs"]
git-tree-sha1 = "9d8a54ce4b17aa5bdce0ea5c34bc5e7c340d16ad"
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
version = "4.18.1"
weakdeps = ["Dates", "LinearAlgebra"]

    [deps.Compat.extensions]
    CompatLinearAlgebraExt = "LinearAlgebra"

[[deps.CompilerSupportLibraries_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
version = "1.3.0+1"

[[deps.ComputePipeline]]
deps = ["Observables", "Preferences"]
git-tree-sha1 = "3b4be73db165146d8a88e47924f464e55ab053cd"
uuid = "95dc2771-c249-4cd0-9c9f-1f3b4330693c"
version = "0.1.7"

[[deps.ConstructionBase]]
git-tree-sha1 = "b4b092499347b18a015186eae3042f72267106cb"
uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9"
version = "1.6.0"
weakdeps = ["IntervalSets", "LinearAlgebra", "StaticArrays"]

    [deps.ConstructionBase.extensions]
    ConstructionBaseIntervalSetsExt = "IntervalSets"
    ConstructionBaseLinearAlgebraExt = "LinearAlgebra"
    ConstructionBaseStaticArraysExt = "StaticArrays"

[[deps.Contour]]
git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8"
uuid = "d38c429a-6771-53c6-b99e-75d170b6e991"
version = "0.6.3"

[[deps.CoreMath]]
deps = ["CoreMath_jll"]
git-tree-sha1 = "8c0480f92b1b1796239156a1b9b1bfb1b39499b4"
uuid = "b7a15901-be09-4a0e-87d2-2e66b0e09b5a"
version = "0.1.0"

[[deps.CoreMath_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "a692a4c1dc59a4b8bc0b6403876eb3250fde2bc3"
uuid = "a38c48d9-6df1-5ac9-9223-b6ada3b5572b"
version = "0.1.0+0"

[[deps.DataAPI]]
git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe"
uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a"
version = "1.16.0"

[[deps.DataStructures]]
deps = ["OrderedCollections"]
git-tree-sha1 = "e86f4a2805f7f19bec5129bc9150c38208e5dc23"
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
version = "0.19.4"

[[deps.DataValueInterfaces]]
git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6"
uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464"
version = "1.0.0"

[[deps.Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
version = "1.11.0"

[[deps.DelaunayTriangulation]]
deps = ["AdaptivePredicates", "EnumX", "ExactPredicates", "Random"]
git-tree-sha1 = "c55f5a9fd67bdbc8e089b5a3111fe4292986a8e8"
uuid = "927a84f5-c5f4-47a5-9785-b46e178433df"
version = "1.6.6"

[[deps.Distributed]]
deps = ["Random", "Serialization", "Sockets"]
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
version = "1.11.0"

[[deps.Distributions]]
deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"]
git-tree-sha1 = "e421c1938fafab0165b04dc1a9dbe2a26272952c"
uuid = "31c24e10-a181-5473-b8eb-7969acd0382f"
version = "0.25.125"

    [deps.Distributions.extensions]
    DistributionsChainRulesCoreExt = "ChainRulesCore"
    DistributionsDensityInterfaceExt = "DensityInterface"
    DistributionsTestExt = "Test"

    [deps.Distributions.weakdeps]
    ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
    DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d"
    Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[[deps.DocStringExtensions]]
git-tree-sha1 = "7442a5dfe1ebb773c29cc2962a8980f47221d76c"
uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
version = "0.9.5"

[[deps.Downloads]]
deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"]
uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
version = "1.7.0"

[[deps.EarCut_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053"
uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5"
version = "2.2.4+0"

[[deps.EnumX]]
git-tree-sha1 = "c49898e8438c828577f04b92fc9368c388ac783c"
uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56"
version = "1.0.7"

[[deps.ExactPredicates]]
deps = ["IntervalArithmetic", "Random", "StaticArrays"]
git-tree-sha1 = "83231673ea4d3d6008ac74dc5079e77ab2209d8f"
uuid = "429591f6-91af-11e9-00e2-59fbe8cec110"
version = "2.2.9"

[[deps.Expat_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "27af30de8b5445644e8ffe3bcb0d72049c089cf1"
uuid = "2e619515-83b5-522b-bb60-26c02a35a201"
version = "2.7.3+0"

[[deps.Extents]]
git-tree-sha1 = "b309b36a9e02fe7be71270dd8c0fd873625332b4"
uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910"
version = "0.1.6"

[[deps.FFMPEG_jll]]
deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libva_jll", "libvorbis_jll", "x264_jll", "x265_jll"]
git-tree-sha1 = "66381d7059b5f3f6162f28831854008040a4e905"
uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5"
version = "8.0.1+1"

[[deps.FFTA]]
deps = ["AbstractFFTs", "DocStringExtensions", "LinearAlgebra", "MuladdMacro", "Primes", "Random", "Reexport"]
git-tree-sha1 = "65e55303b72f4a567a51b174dd2c47496efeb95a"
uuid = "b86e33f2-c0db-4aa1-a6e0-ab43e668529e"
version = "0.3.1"

[[deps.FileIO]]
deps = ["Pkg", "Requires", "UUIDs"]
git-tree-sha1 = "6522cfb3b8fe97bec632252263057996cbd3de20"
uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
version = "1.18.0"

    [deps.FileIO.extensions]
    HTTPExt = "HTTP"

    [deps.FileIO.weakdeps]
    HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3"

[[deps.FilePaths]]
deps = ["FilePathsBase", "MacroTools", "Reexport"]
git-tree-sha1 = "a1b2fbfe98503f15b665ed45b3d149e5d8895e4c"
uuid = "8fc22ac5-c921-52a6-82fd-178b2807b824"
version = "0.9.0"

    [deps.FilePaths.extensions]
    FilePathsGlobExt = "Glob"
    FilePathsURIParserExt = "URIParser"
    FilePathsURIsExt = "URIs"

    [deps.FilePaths.weakdeps]
    Glob = "c27321d9-0574-5035-807b-f59d2c89b15c"
    URIParser = "30578b45-9adc-5946-b283-645ec420af67"
    URIs = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4"

[[deps.FilePathsBase]]
deps = ["Compat", "Dates"]
git-tree-sha1 = "3bab2c5aa25e7840a4b065805c0cdfc01f3068d2"
uuid = "48062228-2e41-5def-b9a4-89aafe57970f"
version = "0.9.24"
weakdeps = ["Mmap", "Test"]

    [deps.FilePathsBase.extensions]
    FilePathsBaseMmapExt = "Mmap"
    FilePathsBaseTestExt = "Test"

[[deps.FileWatching]]
uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"
version = "1.11.0"

[[deps.FillArrays]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "2f979084d1e13948a3352cf64a25df6bd3b4dca3"
uuid = "1a297f60-69ca-5386-bcde-b61e274b549b"
version = "1.16.0"
weakdeps = ["PDMats", "SparseArrays", "StaticArrays", "Statistics"]

    [deps.FillArrays.extensions]
    FillArraysPDMatsExt = "PDMats"
    FillArraysSparseArraysExt = "SparseArrays"
    FillArraysStaticArraysExt = "StaticArrays"
    FillArraysStatisticsExt = "Statistics"

[[deps.FixedPointNumbers]]
deps = ["Statistics"]
git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172"
uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93"
version = "0.8.5"

[[deps.Fontconfig_jll]]
deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"]
git-tree-sha1 = "f85dac9a96a01087df6e3a749840015a0ca3817d"
uuid = "a3f928ae-7b40-5064-980b-68af3947d34b"
version = "2.17.1+0"

[[deps.Format]]
git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc"
uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8"
version = "1.3.7"

[[deps.FreeType]]
deps = ["CEnum", "FreeType2_jll"]
git-tree-sha1 = "907369da0f8e80728ab49c1c7e09327bf0d6d999"
uuid = "b38be410-82b0-50bf-ab77-7b57e271db43"
version = "4.1.1"

[[deps.FreeType2_jll]]
deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"]
git-tree-sha1 = "70329abc09b886fd2c5d94ad2d9527639c421e3e"
uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7"
version = "2.14.3+1"

[[deps.FreeTypeAbstraction]]
deps = ["BaseDirs", "ColorVectorSpace", "Colors", "FreeType", "GeometryBasics", "Mmap"]
git-tree-sha1 = "4ebb930ef4a43817991ba35db6317a05e59abd11"
uuid = "663a7486-cb36-511b-a19d-713bb74d65c9"
version = "0.10.8"

[[deps.FriBidi_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "7a214fdac5ed5f59a22c2d9a885a16da1c74bbc7"
uuid = "559328eb-81f9-559d-9380-de523a88c83c"
version = "1.0.17+0"

[[deps.GeometryBasics]]
deps = ["EarCut_jll", "Extents", "IterTools", "LinearAlgebra", "PrecompileTools", "Random", "StaticArrays"]
git-tree-sha1 = "1f5a80f4ed9f5a4aada88fc2db456e637676414b"
uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326"
version = "0.5.10"

    [deps.GeometryBasics.extensions]
    GeometryBasicsGeoInterfaceExt = "GeoInterface"

    [deps.GeometryBasics.weakdeps]
    GeoInterface = "cf35fbd7-0cd7-5166-be24-54bfbe79505f"

[[deps.GettextRuntime_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll"]
git-tree-sha1 = "45288942190db7c5f760f59c04495064eedf9340"
uuid = "b0724c58-0f36-5564-988d-3bb0596ebc4a"
version = "0.22.4+0"

[[deps.Ghostscript_jll]]
deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Zlib_jll"]
git-tree-sha1 = "38044a04637976140074d0b0621c1edf0eb531fd"
uuid = "61579ee1-b43e-5ca0-a5da-69d92c66a64b"
version = "9.55.1+0"

[[deps.Giflib_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "6570366d757b50fabae9f4315ad74d2e40c0560a"
uuid = "59f7168a-df46-5410-90c8-f2779963d0ec"
version = "5.2.3+0"

[[deps.Glib_jll]]
deps = ["Artifacts", "GettextRuntime_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"]
git-tree-sha1 = "24f6def62397474a297bfcec22384101609142ed"
uuid = "7746bdde-850d-59dc-9ae8-88ece973131d"
version = "2.86.3+0"

[[deps.Graphics]]
deps = ["Colors", "LinearAlgebra", "NaNMath"]
git-tree-sha1 = "a641238db938fff9b2f60d08ed9030387daf428c"
uuid = "a2bd30eb-e257-5431-a919-1863eab51364"
version = "1.1.3"

[[deps.Graphite2_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "8a6dbda1fd736d60cc477d99f2e7a042acfa46e8"
uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472"
version = "1.3.15+0"

[[deps.GridLayoutBase]]
deps = ["GeometryBasics", "InteractiveUtils", "Observables"]
git-tree-sha1 = "93d5c27c8de51687a2c70ec0716e6e76f298416f"
uuid = "3955a311-db13-416c-9275-1d80ed98e5e9"
version = "0.11.2"

[[deps.Grisu]]
git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2"
uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe"
version = "1.0.2"

[[deps.HarfBuzz_jll]]
deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll"]
git-tree-sha1 = "f923f9a774fcf3f5cb761bfa43aeadd689714813"
uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566"
version = "8.5.1+0"

[[deps.HypergeometricFunctions]]
deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"]
git-tree-sha1 = "68c173f4f449de5b438ee67ed0c9c748dc31a2ec"
uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a"
version = "0.3.28"

[[deps.Hyperscript]]
deps = ["Test"]
git-tree-sha1 = "179267cfa5e712760cd43dcae385d7ea90cc25a4"
uuid = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91"
version = "0.0.5"

[[deps.HypertextLiteral]]
deps = ["Tricks"]
git-tree-sha1 = "7134810b1afce04bbc1045ca1985fbe81ce17653"
uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2"
version = "0.9.5"

[[deps.IOCapture]]
deps = ["Logging", "Random"]
git-tree-sha1 = "0ee181ec08df7d7c911901ea38baf16f755114dc"
uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89"
version = "1.0.0"

[[deps.ImageAxes]]
deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"]
git-tree-sha1 = "e12629406c6c4442539436581041d372d69c55ba"
uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac"
version = "0.6.12"

[[deps.ImageBase]]
deps = ["ImageCore", "Reexport"]
git-tree-sha1 = "eb49b82c172811fd2c86759fa0553a2221feb909"
uuid = "c817782e-172a-44cc-b673-b171935fbb9e"
version = "0.1.7"

[[deps.ImageCore]]
deps = ["ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"]
git-tree-sha1 = "8c193230235bbcee22c8066b0374f63b5683c2d3"
uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534"
version = "0.10.5"

[[deps.ImageIO]]
deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs", "WebP"]
git-tree-sha1 = "696144904b76e1ca433b886b4e7edd067d76cbf7"
uuid = "82e4d734-157c-48bb-816b-45c225c6df19"
version = "0.6.9"

[[deps.ImageMetadata]]
deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"]
git-tree-sha1 = "2a81c3897be6fbcde0802a0ebe6796d0562f63ec"
uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49"
version = "0.9.10"

[[deps.Imath_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "dcc8d0cd653e55213df9b75ebc6fe4a8d3254c65"
uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1"
version = "3.2.2+0"

[[deps.IndirectArrays]]
git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f"
uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959"
version = "1.0.0"

[[deps.Inflate]]
git-tree-sha1 = "d1b1b796e47d94588b3757fe84fbf65a5ec4a80d"
uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9"
version = "0.1.5"

[[deps.IntegerMathUtils]]
git-tree-sha1 = "4c1acff2dc6b6967e7e750633c50bc3b8d83e617"
uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235"
version = "0.1.3"

[[deps.InteractiveUtils]]
deps = ["Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
version = "1.11.0"

[[deps.Interpolations]]
deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"]
git-tree-sha1 = "65d505fa4c0d7072990d659ef3fc086eb6da8208"
uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59"
version = "0.16.2"

    [deps.Interpolations.extensions]
    InterpolationsForwardDiffExt = "ForwardDiff"
    InterpolationsUnitfulExt = "Unitful"

    [deps.Interpolations.weakdeps]
    ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
    Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"

[[deps.IntervalArithmetic]]
deps = ["CRlibm", "CoreMath", "MacroTools", "OpenBLASConsistentFPCSR_jll", "Printf", "Random", "RoundingEmulator"]
git-tree-sha1 = "f1c42fcaca2d8034fe392f3e86c2e0809f75b2a1"
uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253"
version = "1.0.6"

    [deps.IntervalArithmetic.extensions]
    IntervalArithmeticArblibExt = "Arblib"
    IntervalArithmeticDiffRulesExt = "DiffRules"
    IntervalArithmeticForwardDiffExt = "ForwardDiff"
    IntervalArithmeticIntervalSetsExt = "IntervalSets"
    IntervalArithmeticIrrationalConstantsExt = "IrrationalConstants"
    IntervalArithmeticLinearAlgebraExt = "LinearAlgebra"
    IntervalArithmeticRecipesBaseExt = "RecipesBase"
    IntervalArithmeticSparseArraysExt = "SparseArrays"

    [deps.IntervalArithmetic.weakdeps]
    Arblib = "fb37089c-8514-4489-9461-98f9c8763369"
    DiffRules = "b552c78f-8df3-52c6-915a-8e097449b14b"
    ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
    IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953"
    IrrationalConstants = "92d709cd-6900-40b7-9082-c6be49f344b6"
    LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
    RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
    SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"

[[deps.IntervalSets]]
git-tree-sha1 = "79d6bd28c8d9bccc2229784f1bd637689b256377"
uuid = "8197267c-284f-5f27-9208-e0e47529a953"
version = "0.7.14"

    [deps.IntervalSets.extensions]
    IntervalSetsRandomExt = "Random"
    IntervalSetsRecipesBaseExt = "RecipesBase"
    IntervalSetsStatisticsExt = "Statistics"

    [deps.IntervalSets.weakdeps]
    Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
    RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
    Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"

[[deps.InverseFunctions]]
git-tree-sha1 = "a779299d77cd080bf77b97535acecd73e1c5e5cb"
uuid = "3587e190-3f89-42d0-90ee-14403ec27112"
version = "0.1.17"
weakdeps = ["Dates", "Test"]

    [deps.InverseFunctions.extensions]
    InverseFunctionsDatesExt = "Dates"
    InverseFunctionsTestExt = "Test"

[[deps.IrrationalConstants]]
git-tree-sha1 = "b2d91fe939cae05960e760110b328288867b5758"
uuid = "92d709cd-6900-40b7-9082-c6be49f344b6"
version = "0.2.6"

[[deps.Isoband]]
deps = ["isoband_jll"]
git-tree-sha1 = "f9b6d97355599074dc867318950adaa6f9946137"
uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4"
version = "0.1.1"

[[deps.IterTools]]
git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023"
uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e"
version = "1.10.0"

[[deps.IteratorInterfaceExtensions]]
git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856"
uuid = "82899510-4779-5014-852e-03e436cf321d"
version = "1.0.0"

[[deps.JLLWrappers]]
deps = ["Artifacts", "Preferences"]
git-tree-sha1 = "0533e564aae234aff59ab625543145446d8b6ec2"
uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
version = "1.7.1"

[[deps.JSON]]
deps = ["Dates", "Logging", "Parsers", "PrecompileTools", "StructUtils", "UUIDs", "Unicode"]
git-tree-sha1 = "67c6f1f085cb2671c93fe34244c9cccde30f7a26"
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
version = "1.5.0"

    [deps.JSON.extensions]
    JSONArrowExt = ["ArrowTypes"]

    [deps.JSON.weakdeps]
    ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd"

[[deps.JpegTurbo]]
deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"]
git-tree-sha1 = "9496de8fb52c224a2e3f9ff403947674517317d9"
uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0"
version = "0.1.6"

[[deps.JpegTurbo_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "c0c9b76f3520863909825cbecdef58cd63de705a"
uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8"
version = "3.1.5+0"

[[deps.JuliaSyntaxHighlighting]]
deps = ["StyledStrings"]
uuid = "ac6e5ff7-fb65-4e79-a425-ec3bc9c03011"
version = "1.12.0"

[[deps.KernelDensity]]
deps = ["Distributions", "DocStringExtensions", "FFTA", "Interpolations", "StatsBase"]
git-tree-sha1 = "4260cfc991b8885bf747801fb60dd4503250e478"
uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b"
version = "0.6.11"

[[deps.LAME_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "059aabebaa7c82ccb853dd4a0ee9d17796f7e1bc"
uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d"
version = "3.100.3+0"

[[deps.LERC_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "17b94ecafcfa45e8360a4fc9ca6b583b049e4e37"
uuid = "88015f11-f218-50d7-93a8-a6af411a945d"
version = "4.1.0+0"

[[deps.LLVMOpenMP_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "eb62a3deb62fc6d8822c0c4bef73e4412419c5d8"
uuid = "1d63c593-3942-5779-bab2-d838dc0a180e"
version = "18.1.8+0"

[[deps.LaTeXStrings]]
git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c"
uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f"
version = "1.4.0"

[[deps.Latexify]]
deps = ["Format", "Ghostscript_jll", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"]
git-tree-sha1 = "44f93c47f9cd6c7e431f2f2091fcba8f01cd7e8f"
uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316"
version = "0.16.10"

    [deps.Latexify.extensions]
    DataFramesExt = "DataFrames"
    SparseArraysExt = "SparseArrays"
    SymEngineExt = "SymEngine"
    TectonicExt = "tectonic_jll"

    [deps.Latexify.weakdeps]
    DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
    SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
    SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8"
    tectonic_jll = "d7dd28d6-a5e6-559c-9131-7eb760cdacc5"

[[deps.LazyModules]]
git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e"
uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e"
version = "0.3.1"

[[deps.LibCURL]]
deps = ["LibCURL_jll", "MozillaCACerts_jll"]
uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"
version = "0.6.4"

[[deps.LibCURL_jll]]
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll", "Zlib_jll", "nghttp2_jll"]
uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
version = "8.15.0+0"

[[deps.LibGit2]]
deps = ["LibGit2_jll", "NetworkOptions", "Printf", "SHA"]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
version = "1.11.0"

[[deps.LibGit2_jll]]
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll"]
uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5"
version = "1.9.0+0"

[[deps.LibSSH2_jll]]
deps = ["Artifacts", "Libdl", "OpenSSL_jll"]
uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
version = "1.11.3+1"

[[deps.Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
version = "1.11.0"

[[deps.Libffi_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "c8da7e6a91781c41a863611c7e966098d783c57a"
uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490"
version = "3.4.7+0"

[[deps.Libglvnd_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll", "Xorg_libXext_jll"]
git-tree-sha1 = "d36c21b9e7c172a44a10484125024495e2625ac0"
uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29"
version = "1.7.1+1"

[[deps.Libiconv_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "be484f5c92fad0bd8acfef35fe017900b0b73809"
uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531"
version = "1.18.0+0"

[[deps.Libmount_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "cc3ad4faf30015a3e8094c9b5b7f19e85bdf2386"
uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9"
version = "2.42.0+0"

[[deps.Libtiff_jll]]
deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"]
git-tree-sha1 = "f04133fe05eff1667d2054c53d59f9122383fe05"
uuid = "89763e89-9b03-5906-acba-b20f662cd828"
version = "4.7.2+0"

[[deps.Libuuid_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "d620582b1f0cbe2c72dd1d5bd195a9ce73370ab1"
uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700"
version = "2.42.0+0"

[[deps.LinearAlgebra]]
deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"]
uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
version = "1.12.0"

[[deps.LogExpFunctions]]
deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"]
git-tree-sha1 = "13ca9e2586b89836fd20cccf56e57e2b9ae7f38f"
uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688"
version = "0.3.29"

    [deps.LogExpFunctions.extensions]
    LogExpFunctionsChainRulesCoreExt = "ChainRulesCore"
    LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables"
    LogExpFunctionsInverseFunctionsExt = "InverseFunctions"

    [deps.LogExpFunctions.weakdeps]
    ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
    ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0"
    InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112"

[[deps.Logging]]
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
version = "1.11.0"

[[deps.MIMEs]]
git-tree-sha1 = "c64d943587f7187e751162b3b84445bbbd79f691"
uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65"
version = "1.1.0"

[[deps.MacroTools]]
git-tree-sha1 = "1e0228a030642014fe5cfe68c2c0a818f9e3f522"
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
version = "0.5.16"

[[deps.Makie]]
deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "ComputePipeline", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageBase", "ImageIO", "InteractiveUtils", "Interpolations", "IntervalSets", "InverseFunctions", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "PNGFiles", "Packing", "Pkg", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"]
git-tree-sha1 = "68af66ec16af8b152309310251ecb4fbfe39869f"
uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a"
version = "0.24.9"

    [deps.Makie.extensions]
    MakieDynamicQuantitiesExt = "DynamicQuantities"

    [deps.Makie.weakdeps]
    DynamicQuantities = "06fc5a27-2a28-4c7c-a15d-362465fb6821"

[[deps.MappedArrays]]
git-tree-sha1 = "0ee4497a4e80dbd29c058fcee6493f5219556f40"
uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900"
version = "0.4.3"

[[deps.Markdown]]
deps = ["Base64", "JuliaSyntaxHighlighting", "StyledStrings"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
version = "1.11.0"

[[deps.MathTeXEngine]]
deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"]
git-tree-sha1 = "7eb8cdaa6f0e8081616367c10b31b9d9b34bb02a"
uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53"
version = "0.6.7"

[[deps.Missings]]
deps = ["DataAPI"]
git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d"
uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28"
version = "1.2.0"

[[deps.Mmap]]
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
version = "1.11.0"

[[deps.MosaicViews]]
deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"]
git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe"
uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389"
version = "0.3.4"

[[deps.MozillaCACerts_jll]]
uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
version = "2025.11.4"

[[deps.MuladdMacro]]
git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab"
uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221"
version = "0.2.4"

[[deps.NaNMath]]
deps = ["OpenLibm_jll"]
git-tree-sha1 = "9b8215b1ee9e78a293f99797cd31375471b2bcae"
uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
version = "1.1.3"

[[deps.Netpbm]]
deps = ["FileIO", "ImageCore", "ImageMetadata"]
git-tree-sha1 = "d92b107dbb887293622df7697a2223f9f8176fcd"
uuid = "f09324ee-3d7c-5217-9330-fc30815ba969"
version = "1.1.1"

[[deps.NetworkOptions]]
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
version = "1.3.0"

[[deps.Observables]]
git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225"
uuid = "510215fc-4207-5dde-b226-833fc4488ee2"
version = "0.5.5"

[[deps.OffsetArrays]]
git-tree-sha1 = "117432e406b5c023f665fa73dc26e79ec3630151"
uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881"
version = "1.17.0"
weakdeps = ["Adapt"]

    [deps.OffsetArrays.extensions]
    OffsetArraysAdaptExt = "Adapt"

[[deps.Ogg_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "b6aa4566bb7ae78498a5e68943863fa8b5231b59"
uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051"
version = "1.3.6+0"

[[deps.OpenBLASConsistentFPCSR_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"]
git-tree-sha1 = "f2b3b9e52a5eb6a3434c8cca67ad2dde011194f4"
uuid = "6cdc7f73-28fd-5e50-80fb-958a8875b1af"
version = "0.3.30+0"

[[deps.OpenBLAS_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"]
uuid = "4536629a-c528-5b80-bd46-f80d51c5b363"
version = "0.3.29+0"

[[deps.OpenEXR]]
deps = ["Colors", "FileIO", "OpenEXR_jll"]
git-tree-sha1 = "97db9e07fe2091882c765380ef58ec553074e9c7"
uuid = "52e1d378-f018-4a11-a4be-720524705ac7"
version = "0.3.3"

[[deps.OpenEXR_jll]]
deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"]
git-tree-sha1 = "9ac7c730c53b3b5d9a73fb900ac4b4fc263774db"
uuid = "18a262bb-aa17-5467-a713-aee519bc75cb"
version = "3.4.9+0"

[[deps.OpenLibm_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "05823500-19ac-5b8b-9628-191a04bc5112"
version = "0.8.7+0"

[[deps.OpenSSL_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95"
version = "3.5.4+0"

[[deps.OpenSpecFun_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"]
git-tree-sha1 = "1346c9208249809840c91b26703912dff463d335"
uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e"
version = "0.5.6+0"

[[deps.Opus_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "e2bb57a313a74b8104064b7efd01406c0a50d2ff"
uuid = "91d4177d-7536-5919-b921-800302f37372"
version = "1.6.1+0"

[[deps.OrderedCollections]]
git-tree-sha1 = "05868e21324cede2207c6f0f466b4bfef6d5e7ee"
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
version = "1.8.1"

[[deps.PCRE2_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15"
version = "10.44.0+1"

[[deps.PDMats]]
deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"]
git-tree-sha1 = "e4cff168707d441cd6bf3ff7e4832bdf34278e4a"
uuid = "90014a1f-27ba-587c-ab20-58faa44d9150"
version = "0.11.37"
weakdeps = ["StatsBase"]

    [deps.PDMats.extensions]
    StatsBaseExt = "StatsBase"

[[deps.PNGFiles]]
deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"]
git-tree-sha1 = "cf181f0b1e6a18dfeb0ee8acc4a9d1672499626c"
uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883"
version = "0.4.4"

[[deps.Packing]]
deps = ["GeometryBasics"]
git-tree-sha1 = "bc5bf2ea3d5351edf285a06b0016788a121ce92c"
uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566"
version = "0.5.1"

[[deps.PaddedViews]]
deps = ["OffsetArrays"]
git-tree-sha1 = "0fac6313486baae819364c52b4f483450a9d793f"
uuid = "5432bcbf-9aad-5242-b902-cca2824c8663"
version = "0.5.12"

[[deps.Pango_jll]]
deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"]
git-tree-sha1 = "58e5ed5e386e156bd93e86b305ebd21ac63d2d04"
uuid = "36c8627f-9965-5494-a995-c6b170f724f3"
version = "1.57.1+0"

[[deps.Parsers]]
deps = ["Dates", "PrecompileTools", "UUIDs"]
git-tree-sha1 = "7d2f8f21da5db6a806faf7b9b292296da42b2810"
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
version = "2.8.3"

[[deps.Pixman_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"]
git-tree-sha1 = "db76b1ecd5e9715f3d043cec13b2ec93ce015d53"
uuid = "30392449-352a-5448-841d-b1acce4e97dc"
version = "0.44.2+0"

[[deps.Pkg]]
deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
version = "1.12.1"
weakdeps = ["REPL"]

    [deps.Pkg.extensions]
    REPLExt = "REPL"

[[deps.PkgVersion]]
deps = ["Pkg"]
git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da"
uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688"
version = "0.3.3"

[[deps.PlotUtils]]
deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "StableRNGs", "Statistics"]
git-tree-sha1 = "26ca162858917496748aad52bb5d3be4d26a228a"
uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043"
version = "1.4.4"

[[deps.PlutoTeachingTools]]
deps = ["Downloads", "HypertextLiteral", "Latexify", "Markdown", "PlutoUI"]
git-tree-sha1 = "90b41ced6bacd8c01bd05da8aed35c5458891749"
uuid = "661c6b06-c737-4d37-b85c-46df65de6f69"
version = "0.4.7"

[[deps.PlutoUI]]
deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "Downloads", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"]
git-tree-sha1 = "fbc875044d82c113a9dee6fc14e16cf01fd48872"
uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8"
version = "0.7.80"

[[deps.PolygonOps]]
git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6"
uuid = "647866c9-e3ac-4575-94e7-e3d426903924"
version = "0.1.2"

[[deps.PrecompileTools]]
deps = ["Preferences"]
git-tree-sha1 = "07a921781cab75691315adc645096ed5e370cb77"
uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
version = "1.3.3"

[[deps.Preferences]]
deps = ["TOML"]
git-tree-sha1 = "8b770b60760d4451834fe79dd483e318eee709c4"
uuid = "21216c6a-2e73-6563-6e65-726566657250"
version = "1.5.2"

[[deps.Primes]]
deps = ["IntegerMathUtils"]
git-tree-sha1 = "25cdd1d20cd005b52fc12cb6be3f75faaf59bb9b"
uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae"
version = "0.5.7"

[[deps.Printf]]
deps = ["Unicode"]
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
version = "1.11.0"

[[deps.ProgressMeter]]
deps = ["Distributed", "Printf"]
git-tree-sha1 = "fbb92c6c56b34e1a2c4c36058f68f332bec840e7"
uuid = "92933f4c-e287-5a05-a399-4b506db050ca"
version = "1.11.0"

[[deps.PtrArrays]]
git-tree-sha1 = "4fbbafbc6251b883f4d2705356f3641f3652a7fe"
uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d"
version = "1.4.0"

[[deps.QOI]]
deps = ["ColorTypes", "FileIO", "FixedPointNumbers"]
git-tree-sha1 = "472daaa816895cb7aee81658d4e7aec901fa1106"
uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65"
version = "1.0.2"

[[deps.QuadGK]]
deps = ["DataStructures", "LinearAlgebra"]
git-tree-sha1 = "5e8e8b0ab68215d7a2b14b9921a946fee794749e"
uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc"
version = "2.11.3"

    [deps.QuadGK.extensions]
    QuadGKEnzymeExt = "Enzyme"

    [deps.QuadGK.weakdeps]
    Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9"

[[deps.REPL]]
deps = ["InteractiveUtils", "JuliaSyntaxHighlighting", "Markdown", "Sockets", "StyledStrings", "Unicode"]
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
version = "1.11.0"

[[deps.Random]]
deps = ["SHA"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
version = "1.11.0"

[[deps.RangeArrays]]
git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5"
uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d"
version = "0.3.2"

[[deps.Ratios]]
deps = ["Requires"]
git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b"
uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439"
version = "0.4.5"
weakdeps = ["FixedPointNumbers"]

    [deps.Ratios.extensions]
    RatiosFixedPointNumbersExt = "FixedPointNumbers"

[[deps.Reexport]]
git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b"
uuid = "189a3867-3050-52da-a836-e630ba90ab69"
version = "1.2.2"

[[deps.RelocatableFolders]]
deps = ["SHA", "Scratch"]
git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864"
uuid = "05181044-ff0b-4ac5-8273-598c1e38db00"
version = "1.0.1"

[[deps.Requires]]
deps = ["UUIDs"]
git-tree-sha1 = "62389eeff14780bfe55195b7204c0d8738436d64"
uuid = "ae029012-a4dd-5104-9daa-d747884805df"
version = "1.3.1"

[[deps.Rmath]]
deps = ["Random", "Rmath_jll"]
git-tree-sha1 = "5b3d50eb374cea306873b371d3f8d3915a018f0b"
uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa"
version = "0.9.0"

[[deps.Rmath_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "58cdd8fb2201a6267e1db87ff148dd6c1dbd8ad8"
uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f"
version = "0.5.1+0"

[[deps.RoundingEmulator]]
git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b"
uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705"
version = "0.2.1"

[[deps.SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
version = "0.7.0"

[[deps.SIMD]]
deps = ["PrecompileTools"]
git-tree-sha1 = "e24dc23107d426a096d3eae6c165b921e74c18e4"
uuid = "fdea26ae-647d-5447-a871-4b548cad5224"
version = "3.7.2"

[[deps.Scratch]]
deps = ["Dates"]
git-tree-sha1 = "9b81b8393e50b7d4e6d0a9f14e192294d3b7c109"
uuid = "6c6a2e73-6563-6170-7368-637461726353"
version = "1.3.0"

[[deps.Serialization]]
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
version = "1.11.0"

[[deps.ShaderAbstractions]]
deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays"]
git-tree-sha1 = "818554664a2e01fc3784becb2eb3a82326a604b6"
uuid = "65257c39-d410-5151-9873-9b3e5be5013e"
version = "0.5.0"

[[deps.SharedArrays]]
deps = ["Distributed", "Mmap", "Random", "Serialization"]
uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383"
version = "1.11.0"

[[deps.Showoff]]
deps = ["Dates", "Grisu"]
git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de"
uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f"
version = "1.0.3"

[[deps.SignedDistanceFields]]
deps = ["Statistics"]
git-tree-sha1 = "3949ad92e1c9d2ff0cd4a1317d5ecbba682f4b92"
uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96"
version = "0.4.1"

[[deps.SimpleTraits]]
deps = ["InteractiveUtils", "MacroTools"]
git-tree-sha1 = "be8eeac05ec97d379347584fa9fe2f5f76795bcb"
uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d"
version = "0.9.5"

[[deps.Sixel]]
deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"]
git-tree-sha1 = "0494aed9501e7fb65daba895fb7fd57cc38bc743"
uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47"
version = "0.1.5"

[[deps.Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
version = "1.11.0"

[[deps.SortingAlgorithms]]
deps = ["DataStructures"]
git-tree-sha1 = "64d974c2e6fdf07f8155b5b2ca2ffa9069b608d9"
uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c"
version = "1.2.2"

[[deps.SparseArrays]]
deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"]
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
version = "1.12.0"

[[deps.SpecialFunctions]]
deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"]
git-tree-sha1 = "2700b235561b0335d5bef7097a111dc513b8655e"
uuid = "276daf66-3868-5448-9aa4-cd146d93841b"
version = "2.7.2"
weakdeps = ["ChainRulesCore"]

    [deps.SpecialFunctions.extensions]
    SpecialFunctionsChainRulesCoreExt = "ChainRulesCore"

[[deps.StableRNGs]]
deps = ["Random"]
git-tree-sha1 = "4f96c596b8c8258cc7d3b19797854d368f243ddc"
uuid = "860ef19b-820b-49d6-a774-d7a799459cd3"
version = "1.0.4"

[[deps.StackViews]]
deps = ["OffsetArrays"]
git-tree-sha1 = "be1cf4eb0ac528d96f5115b4ed80c26a8d8ae621"
uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15"
version = "0.1.2"

[[deps.StaticArrays]]
deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"]
git-tree-sha1 = "246a8bb2e6667f832eea063c3a56aef96429a3db"
uuid = "90137ffa-7385-5640-81b9-e52037218182"
version = "1.9.18"
weakdeps = ["ChainRulesCore", "Statistics"]

    [deps.StaticArrays.extensions]
    StaticArraysChainRulesCoreExt = "ChainRulesCore"
    StaticArraysStatisticsExt = "Statistics"

[[deps.StaticArraysCore]]
git-tree-sha1 = "6ab403037779dae8c514bad259f32a447262455a"
uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
version = "1.4.4"

[[deps.Statistics]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0"
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
version = "1.11.1"
weakdeps = ["SparseArrays"]

    [deps.Statistics.extensions]
    SparseArraysExt = ["SparseArrays"]

[[deps.StatsAPI]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "178ed29fd5b2a2cfc3bd31c13375ae925623ff36"
uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0"
version = "1.8.0"

[[deps.StatsBase]]
deps = ["AliasTables", "DataAPI", "DataStructures", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"]
git-tree-sha1 = "aceda6f4e598d331548e04cc6b2124a6148138e3"
uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
version = "0.34.10"

[[deps.StatsFuns]]
deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"]
git-tree-sha1 = "91f091a8716a6bb38417a6e6f274602a19aaa685"
uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c"
version = "1.5.2"
weakdeps = ["ChainRulesCore", "InverseFunctions"]

    [deps.StatsFuns.extensions]
    StatsFunsChainRulesCoreExt = "ChainRulesCore"
    StatsFunsInverseFunctionsExt = "InverseFunctions"

[[deps.StructArrays]]
deps = ["ConstructionBase", "DataAPI", "Tables"]
git-tree-sha1 = "ad8002667372439f2e3611cfd14097e03fa4bccd"
uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a"
version = "0.7.3"

    [deps.StructArrays.extensions]
    StructArraysAdaptExt = "Adapt"
    StructArraysGPUArraysCoreExt = ["GPUArraysCore", "KernelAbstractions"]
    StructArraysLinearAlgebraExt = "LinearAlgebra"
    StructArraysSparseArraysExt = "SparseArrays"
    StructArraysStaticArraysExt = "StaticArrays"

    [deps.StructArrays.weakdeps]
    Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
    GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527"
    KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c"
    LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
    SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
    StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"

[[deps.StructUtils]]
deps = ["Dates", "UUIDs"]
git-tree-sha1 = "aab80fbf866600f3299dd7f6656d80e7be177cfe"
uuid = "ec057cc2-7a8d-4b58-b3b3-92acb9f63b42"
version = "2.7.2"

    [deps.StructUtils.extensions]
    StructUtilsMeasurementsExt = ["Measurements"]
    StructUtilsStaticArraysCoreExt = ["StaticArraysCore"]
    StructUtilsTablesExt = ["Tables"]

    [deps.StructUtils.weakdeps]
    Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
    StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
    Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"

[[deps.StyledStrings]]
uuid = "f489334b-da3d-4c2e-b8f0-e476e12c162b"
version = "1.11.0"

[[deps.SuiteSparse]]
deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"]
uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9"

[[deps.SuiteSparse_jll]]
deps = ["Artifacts", "Libdl", "libblastrampoline_jll"]
uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c"
version = "7.8.3+2"

[[deps.TOML]]
deps = ["Dates"]
uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
version = "1.0.3"

[[deps.TableTraits]]
deps = ["IteratorInterfaceExtensions"]
git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39"
uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c"
version = "1.0.1"

[[deps.Tables]]
deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"]
git-tree-sha1 = "f2c1efbc8f3a609aadf318094f8fc5204bdaf344"
uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
version = "1.12.1"

[[deps.Tar]]
deps = ["ArgTools", "SHA"]
uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"
version = "1.10.0"

[[deps.TensorCore]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6"
uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50"
version = "0.1.1"

[[deps.Test]]
deps = ["InteractiveUtils", "Logging", "Random", "Serialization"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
version = "1.11.0"

[[deps.TiffImages]]
deps = ["CodecZstd", "ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "PrecompileTools", "ProgressMeter", "SIMD", "UUIDs"]
git-tree-sha1 = "9ca5f1f2d42f80df4b8c9f6ab5a64f438bbd9976"
uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69"
version = "0.11.9"

[[deps.TranscodingStreams]]
git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742"
uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa"
version = "0.11.3"

[[deps.Tricks]]
git-tree-sha1 = "311349fd1c93a31f783f977a71e8b062a57d4101"
uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775"
version = "0.1.13"

[[deps.TriplotBase]]
git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b"
uuid = "981d1d27-644d-49a2-9326-4793e63143c3"
version = "0.1.0"

[[deps.URIs]]
git-tree-sha1 = "bef26fb046d031353ef97a82e3fdb6afe7f21b1a"
uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4"
version = "1.6.1"

[[deps.UUIDs]]
deps = ["Random", "SHA"]
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
version = "1.11.0"

[[deps.Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
version = "1.11.0"

[[deps.UnicodeFun]]
deps = ["REPL"]
git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf"
uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1"
version = "0.4.1"

[[deps.Unitful]]
deps = ["Dates", "LinearAlgebra", "Random"]
git-tree-sha1 = "57e1b2c9de4bd6f40ecb9de4ac1797b81970d008"
uuid = "1986cc42-f94f-5a68-af5c-568840ba703d"
version = "1.28.0"

    [deps.Unitful.extensions]
    ConstructionBaseUnitfulExt = "ConstructionBase"
    ForwardDiffExt = "ForwardDiff"
    InverseFunctionsUnitfulExt = "InverseFunctions"
    LatexifyExt = ["Latexify", "LaTeXStrings"]
    NaNMathExt = "NaNMath"
    PrintfExt = "Printf"

    [deps.Unitful.weakdeps]
    ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9"
    ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
    InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112"
    LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f"
    Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316"
    NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
    Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"

[[deps.WebP]]
deps = ["CEnum", "ColorTypes", "FileIO", "FixedPointNumbers", "ImageCore", "libwebp_jll"]
git-tree-sha1 = "aa1ca3c47f119fbdae8770c29820e5e6119b83f2"
uuid = "e3aaa7dc-3e4b-44e0-be63-ffb868ccd7c1"
version = "0.1.3"

[[deps.WoodburyMatrices]]
deps = ["LinearAlgebra", "SparseArrays"]
git-tree-sha1 = "248a7031b3da79a127f14e5dc5f417e26f9f6db7"
uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6"
version = "1.1.0"

[[deps.XZ_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "b29c22e245d092b8b4e8d3c09ad7baa586d9f573"
uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800"
version = "5.8.3+0"

[[deps.Xorg_libX11_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"]
git-tree-sha1 = "808090ede1d41644447dd5cbafced4731c56bd2f"
uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc"
version = "1.8.13+0"

[[deps.Xorg_libXau_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "aa1261ebbac3ccc8d16558ae6799524c450ed16b"
uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec"
version = "1.0.13+0"

[[deps.Xorg_libXdmcp_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "52858d64353db33a56e13c341d7bf44cd0d7b309"
uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05"
version = "1.1.6+0"

[[deps.Xorg_libXext_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"]
git-tree-sha1 = "1a4a26870bf1e5d26cd585e38038d399d7e65706"
uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3"
version = "1.3.8+0"

[[deps.Xorg_libXfixes_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"]
git-tree-sha1 = "75e00946e43621e09d431d9b95818ee751e6b2ef"
uuid = "d091e8ba-531a-589c-9de9-94069b037ed8"
version = "6.0.2+0"

[[deps.Xorg_libXrender_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"]
git-tree-sha1 = "7ed9347888fac59a618302ee38216dd0379c480d"
uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa"
version = "0.9.12+0"

[[deps.Xorg_libpciaccess_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"]
git-tree-sha1 = "4909eb8f1cbf6bd4b1c30dd18b2ead9019ef2fad"
uuid = "a65dc6b1-eb27-53a1-bb3e-dea574b5389e"
version = "0.18.1+0"

[[deps.Xorg_libxcb_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXau_jll", "Xorg_libXdmcp_jll"]
git-tree-sha1 = "bfcaf7ec088eaba362093393fe11aa141fa15422"
uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b"
version = "1.17.1+0"

[[deps.Xorg_xtrans_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "a63799ff68005991f9d9491b6e95bd3478d783cb"
uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10"
version = "1.6.0+0"

[[deps.Zlib_jll]]
deps = ["Libdl"]
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
version = "1.3.1+2"

[[deps.Zstd_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "446b23e73536f84e8037f5dce465e92275f6a308"
uuid = "3161d3a3-bdf6-5164-811a-617609db77b4"
version = "1.5.7+1"

[[deps.isoband_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c"
uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4"
version = "0.2.3+0"

[[deps.libaom_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "850b06095ee71f0135d644ffd8a52850699581ed"
uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b"
version = "3.13.3+0"

[[deps.libass_jll]]
deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Zlib_jll"]
git-tree-sha1 = "125eedcb0a4a0bba65b657251ce1d27c8714e9d6"
uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0"
version = "0.17.4+0"

[[deps.libblastrampoline_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "8e850b90-86db-534c-a0d3-1478176c7d93"
version = "5.15.0+0"

[[deps.libdrm_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libpciaccess_jll"]
git-tree-sha1 = "63aac0bcb0b582e11bad965cef4a689905456c03"
uuid = "8e53e030-5e6c-5a89-a30b-be5b7263a166"
version = "2.4.125+1"

[[deps.libfdk_aac_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "646634dd19587a56ee2f1199563ec056c5f228df"
uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280"
version = "2.0.4+0"

[[deps.libpng_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"]
git-tree-sha1 = "e51150d5ab85cee6fc36726850f0e627ad2e4aba"
uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f"
version = "1.6.58+0"

[[deps.libsixel_jll]]
deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "libpng_jll"]
git-tree-sha1 = "c1733e347283df07689d71d61e14be986e49e47a"
uuid = "075b6546-f08a-558a-be8f-8157d0f608a5"
version = "1.10.5+0"

[[deps.libva_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll", "Xorg_libXext_jll", "Xorg_libXfixes_jll", "libdrm_jll"]
git-tree-sha1 = "7dbf96baae3310fe2fa0df0ccbb3c6288d5816c9"
uuid = "9a156e7d-b971-5f62-b2c9-67348b8fb97c"
version = "2.23.0+0"

[[deps.libvorbis_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll"]
git-tree-sha1 = "11e1772e7f3cc987e9d3de991dd4f6b2602663a5"
uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a"
version = "1.3.8+0"

[[deps.libwebp_jll]]
deps = ["Artifacts", "Giflib_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libglvnd_jll", "Libtiff_jll", "libpng_jll"]
git-tree-sha1 = "4e4282c4d846e11dce56d74fa8040130b7a95cb3"
uuid = "c5f90fcd-3b7e-5836-afba-fc50a0988cb2"
version = "1.6.0+0"

[[deps.nghttp2_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
version = "1.64.0+1"

[[deps.p7zip_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"]
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
version = "17.7.0+0"

[[deps.x264_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "14cc7083fc6dff3cc44f2bc435ee96d06ed79aa7"
uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a"
version = "10164.0.1+0"

[[deps.x265_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "e7b67590c14d487e734dcb925924c5dc43ec85f3"
uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76"
version = "4.1.0+0"
"""

# ╔═╡ Cell order:
# ╟─fac42b42-35d2-11f1-a407-bdbaa61d4b67
# ╟─fb99b46e-a0f4-499a-ab30-5f4ac1757689
# ╟─3b4ec4eb-af39-4f41-90cc-663d1b2eccab
# ╟─c5d2f769-f27b-40e4-9602-8b962d5d7934
# ╟─def3641a-20ba-4961-b509-442da4ab9710
# ╟─a193fb98-232f-491c-b192-539fc8ab6f5e
# ╟─4843a1ee-4425-4fc4-8168-066f15874621
# ╟─cb7df674-832a-4143-a8bf-63f8143cc875
# ╟─c3698a4a-ed13-4e71-a249-e729b3cdb19d
# ╟─1058cc8a-3d7c-4c68-ba03-c408c608bcae
# ╟─e2891539-b1c0-495e-a2ee-7eebcccd9ff0
# ╟─c41cf772-d812-4268-8d6d-6da462cfab90
# ╟─b08e67ac-2759-4041-8367-ad72b989c4fb
# ╟─e3f03b99-68e3-45f7-b3e0-97f45e1da6b9
# ╟─aa1e42de-dc2f-40e1-ad09-a3fb9f869c3f
# ╟─9faaa5df-21f9-432e-ae98-dee5c4043a57
# ╟─f8998cfc-8838-45b6-82d3-bcdad20a60ee
# ╟─16ad9117-7b0a-4e96-be3a-44bb0dea2ab8
# ╟─adb1b0c5-3441-486f-b677-b47f54bc68c3
# ╟─59d1416f-4a17-41f7-91ef-61b619b69af0
# ╟─2ca178fb-0d09-49af-88bd-37aa02d229ba
# ╟─36bbca21-c2a7-4e91-b0e4-9bc08c45a042
# ╟─029fd333-ad3f-4867-8250-7285bb483602
# ╟─73a5b4bc-ff97-433f-bb50-7a2a3e9e55ad
# ╟─e69cb10f-709a-4a4f-be30-be962d74ff22
# ╟─79b9e65d-84af-480e-ba32-8fa09367c48c
# ╟─eceefaa1-1bcc-4515-ab40-4ee58825ab04
# ╟─030934c2-c218-4036-80f1-264ff86f8e9f
# ╟─a837ff7b-e137-4e37-b27b-27b7bcbc7b2b
# ╟─8f585b55-b23f-4007-a677-11ff85b038b4
# ╟─ffc7bc79-1275-455c-9977-44271d674874
# ╟─d8fbdb5a-83ff-4ba1-80ce-20e8cf404695
# ╟─bb223846-09ef-410d-837e-d04c6407ed4c
# ╟─0bcf3c7c-de4b-4b98-b429-1cd5002b1fe4
# ╟─9f3be73c-80b6-4460-b256-b7cdd56803bc
# ╟─910abed2-28f6-4078-8841-7ff4f9a75bd4
# ╟─ac374485-d23a-4371-bbeb-fbc9f58be638
# ╟─95b1c356-83dc-4450-bbc0-429152ef066f
# ╟─ae076f7b-4b9d-4beb-8352-66eee44a30be
# ╟─c1d1ff69-73c8-476c-a7ab-bd3c4ce699a8
# ╟─01bbdd70-bcce-4201-8843-5e7ca611e245
# ╟─00000000-0000-0000-0000-000000000001
# ╟─00000000-0000-0000-0000-000000000002
