From e91ad0e6bfcafc9aed35c9f3d8c43902ebc5981f Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Sat, 2 Aug 2025 21:39:18 +1000 Subject: [PATCH 01/17] proof and theorem env update proof and thm env --- lectures/orth_proj.md | 56 +++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index 9e1da6a1..d54761ad 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -131,7 +131,10 @@ What vector within a linear subspace of $\mathbb R^n$ best approximates a given The next theorem answers this question. -**Theorem** (OPT) Given $y \in \mathbb R^n$ and linear subspace $S \subset \mathbb R^n$, +```{prf:theorem} Orthogonal Projection Theorem +:label: opt + +Given $y \in \mathbb R^n$ and linear subspace $S \subset \mathbb R^n$, there exists a unique solution to the minimization problem $$ @@ -144,6 +147,7 @@ The minimizer $\hat y$ is the unique vector in $\mathbb R^n$ that satisfies * $y - \hat y \perp S$ The vector $\hat y$ is called the **orthogonal projection** of $y$ onto $S$. +``` The next figure provides some intuition @@ -179,7 +183,7 @@ $$ y \in Y\; \mapsto \text{ its orthogonal projection } \hat y \in S $$ -By the OPT, this is a well-defined mapping or *operator* from $\mathbb R^n$ to $\mathbb R^n$. +By the {prf:ref}`opt`, this is a well-defined mapping or *operator* from $\mathbb R^n$ to $\mathbb R^n$. In what follows we denote this operator by a matrix $P$ @@ -192,7 +196,7 @@ The operator $P$ is called the **orthogonal projection mapping onto** $S$. ``` -It is immediate from the OPT that for any $y \in \mathbb R^n$ +It is immediate from the {prf:ref}`opt` that for any $y \in \mathbb R^n$ 1. $P y \in S$ and 1. $y - P y \perp S$ @@ -224,9 +228,12 @@ such that $y = x_1 + x_2$. Moreover, $x_1 = \hat E_S y$ and $x_2 = y - \hat E_S y$. -This amounts to another version of the OPT: +This amounts to another version of the {prf:ref}`opt`: -**Theorem**. If $S$ is a linear subspace of $\mathbb R^n$, $\hat E_S y = P y$ and $\hat E_{S^{\perp}} y = M y$, then +```{prf:theorem} Orthogonal Projection Theorem (another version) +:label: opt_another + +If $S$ is a linear subspace of $\mathbb R^n$, $\hat E_S y = P y$ and $\hat E_{S^{\perp}} y = M y$, then $$ P y \perp M y @@ -234,6 +241,7 @@ P y \perp M y y = P y + M y \quad \text{for all } \, y \in \mathbb R^n $$ +``` The next figure illustrates @@ -285,7 +293,7 @@ Combining this result with {eq}`pob` verifies the claim. When a subspace onto which we project is orthonormal, computing the projection simplifies: -**Theorem** If $\{u_1, \ldots, u_k\}$ is an orthonormal basis for $S$, then +```{prf:theorem} If $\{u_1, \ldots, u_k\}$ is an orthonormal basis for $S$, then ```{math} :label: exp_for_op @@ -294,8 +302,9 @@ P y = \sum_{i=1}^k \langle y, u_i \rangle u_i, \quad \forall \; y \in \mathbb R^n ``` +``` -Proof: Fix $y \in \mathbb R^n$ and let $P y$ be defined as in {eq}`exp_for_op`. +```{prf:proof} Fix $y \in \mathbb R^n$ and let $P y$ be defined as in {eq}`exp_for_op`. Clearly, $P y \in S$. @@ -312,6 +321,7 @@ $$ $$ (Why is this sufficient to establish the claim that $y - P y \perp S$?) +``` ## Projection Via Matrix Algebra @@ -327,13 +337,17 @@ Evidently $Py$ is a linear function from $y \in \mathbb R^n$ to $P y \in \mathb [This reference](https://en.wikipedia.org/wiki/Linear_map#Matrices) is useful. -**Theorem.** Let the columns of $n \times k$ matrix $X$ form a basis of $S$. Then +```{prf:theorem} +:label: proj_matrix + +Let the columns of $n \times k$ matrix $X$ form a basis of $S$. Then $$ P = X (X'X)^{-1} X' $$ +``` -Proof: Given arbitrary $y \in \mathbb R^n$ and $P = X (X'X)^{-1} X'$, our claim is that +```{prf:proof} Given arbitrary $y \in \mathbb R^n$ and $P = X (X'X)^{-1} X'$, our claim is that 1. $P y \in S$, and 2. $y - P y \perp S$ @@ -367,6 +381,7 @@ y] $$ The proof is now complete. +``` ### Starting with the Basis @@ -378,7 +393,7 @@ $$ Then the columns of $X$ form a basis of $S$. -From the preceding theorem, $P = X (X' X)^{-1} X' y$ projects $y$ onto $S$. +From the {prf:ref}`proj_matrix`, $P = X (X' X)^{-1} X' y$ projects $y$ onto $S$. In this context, $P$ is often called the **projection matrix** @@ -428,15 +443,16 @@ By approximate solution, we mean a $b \in \mathbb R^k$ such that $X b$ is close The next theorem shows that a best approximation is well defined and unique. -The proof uses the OPT. +The proof uses the {prf:ref}`opt`. -**Theorem** The unique minimizer of $\| y - X b \|$ over $b \in \mathbb R^K$ is +```{prf:theorem} The unique minimizer of $\| y - X b \|$ over $b \in \mathbb R^K$ is $$ \hat \beta := (X' X)^{-1} X' y $$ +``` -Proof: Note that +```{prf:proof} Note that $$ X \hat \beta = X (X' X)^{-1} X' y = @@ -458,6 +474,7 @@ $$ $$ This is what we aimed to show. +``` ## Least Squares Regression @@ -594,9 +611,9 @@ Here are some more standard definitions: > TSS = ESS + SSR -We can prove this easily using the OPT. +We can prove this easily using the {prf:ref}`opt`. -From the OPT we have $y = \hat y + \hat u$ and $\hat u \perp \hat y$. +From the {prf:ref}`opt` we have $y = \hat y + \hat u$ and $\hat u \perp \hat y$. Applying the Pythagorean law completes the proof. @@ -611,7 +628,7 @@ The next section gives details. (gram_schmidt)= ### Gram-Schmidt Orthogonalization -**Theorem** For each linearly independent set $\{x_1, \ldots, x_k\} \subset \mathbb R^n$, there exists an +```{prf:theorem} For each linearly independent set $\{x_1, \ldots, x_k\} \subset \mathbb R^n$, there exists an orthonormal set $\{u_1, \ldots, u_k\}$ with $$ @@ -620,6 +637,7 @@ $$ \quad \text{for} \quad i = 1, \ldots, k $$ +``` The **Gram-Schmidt orthogonalization** procedure constructs an orthogonal set $\{ u_1, u_2, \ldots, u_n\}$. @@ -639,12 +657,13 @@ In some exercises below, you are asked to implement this algorithm and test it u The following result uses the preceding algorithm to produce a useful decomposition. -**Theorem** If $X$ is $n \times k$ with linearly independent columns, then there exists a factorization $X = Q R$ where +```{prf:theorem} If $X$ is $n \times k$ with linearly independent columns, then there exists a factorization $X = Q R$ where * $R$ is $k \times k$, upper triangular, and nonsingular * $Q$ is $n \times k$ with orthonormal columns +``` -Proof sketch: Let +```{prf:proof} Let * $x_j := \col_j (X)$ * $\{u_1, \ldots, u_k\}$ be orthonormal with the same span as $\{x_1, \ldots, x_k\}$ (to be constructed using Gram--Schmidt) @@ -658,6 +677,7 @@ x_j = \sum_{i=1}^j \langle u_i, x_j \rangle u_i $$ Some rearranging gives $X = Q R$. +``` ### Linear Regression via QR Decomposition From 38fe9d82d836956b51f6df8212dabdbef0d263d1 Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Sat, 2 Aug 2025 21:52:58 +1000 Subject: [PATCH 02/17] Update orth_proj_thm2.tex --- .../lecture_specific/orth_proj/orth_proj_thm2.tex | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.tex b/lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.tex index 993b693b..0144581c 100644 --- a/lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.tex +++ b/lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.tex @@ -3,9 +3,11 @@ \usetikzlibrary{arrows.meta, arrows} \begin{document} -%.. tikz:: \begin{tikzpicture} -[scale=5, axis/.style={<->, >=stealth'}, important line/.style={thick}, dotted line/.style={dotted, thick,red}, dashed line/.style={dashed, thin}, every node/.style={color=black}] \coordinate(O) at (0,0); +[scale=5, axis/.style={<->, >=stealth'}, important line/.style={thick}, +dotted line/.style={dotted, thick,red}, dashed line/.style={dashed, thin}, +every node/.style={color=black}] + \coordinate(O) at (0,0); \coordinate (y') at (-0.4,0.1); \coordinate (Py) at (0.6,0.3); \coordinate (y) at (0.4,0.7); @@ -14,11 +16,12 @@ \coordinate (Py') at (-0.28,-0.14); \draw[axis] (-0.5,0) -- (0.9,0) node(xline)[right] {}; \draw[axis] (0,-0.3) -- (0,0.7) node(yline)[above] {}; + \draw[important line, thick] (Z1) -- (O); + \draw[important line, thick] (Py) -- (Z2) node[right] {$S$}; \draw[important line,blue,thick, ->] (O) -- (Py) node[anchor = north west, text width=2em] {$P y$}; \draw[important line,blue, ->] (O) -- (y') node[left] {$y'$}; - \draw[important line, thick] (Z1) -- (O) node[right] {}; - \draw[important line, thick] (Py) -- (Z2) node[right] {$S$}; \draw[important line, blue,->] (O) -- (y) node[right] {$y$}; + \draw[important line,blue,thick, ->] (O) -- (Py'); \draw[dotted line] (0.54,0.27) -- (0.51,0.33); \draw[dotted line] (0.57,0.36) -- (0.51,0.33); \draw[dotted line] (-0.22,-0.11) -- (-0.25,-0.05); From f6f176c4f00af1afdc55da6e17d9dce55cebb2c8 Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Sun, 3 Aug 2025 08:41:11 +1000 Subject: [PATCH 03/17] Update orth_proj.md --- lectures/orth_proj.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index d54761ad..ad67f455 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -310,7 +310,7 @@ Clearly, $P y \in S$. We claim that $y - P y \perp S$ also holds. -It sufficies to show that $y - P y \perp$ any basis vector $u_i$. +It suffices to show that $y - P y \perp$ any basis vector $u_i$. This is true because From f464177e781ecef320bf4355eb37ac70711407b1 Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Mon, 4 Aug 2025 07:56:11 +1000 Subject: [PATCH 04/17] column notation --- lectures/orth_proj.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index ad67f455..65b5da3a 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -388,7 +388,7 @@ The proof is now complete. It is common in applications to start with $n \times k$ matrix $X$ with linearly independent columns and let $$ -S := \mathop{\mathrm{span}} X := \mathop{\mathrm{span}} \{\col_1 X, \ldots, \col_k X \} +S := \mathop{\mathrm{span}} X := \mathop{\mathrm{span}} \{\mathop{\mathrm{col}}_i X, \ldots, \mathop{\mathrm{col}}_k X \} $$ Then the columns of $X$ form a basis of $S$. @@ -403,7 +403,7 @@ In this context, $P$ is often called the **projection matrix** Suppose that $U$ is $n \times k$ with orthonormal columns. -Let $u_i := \mathop{\mathrm{col}} U_i$ for each $i$, let $S := \mathop{\mathrm{span}} U$ and let $y \in \mathbb R^n$. +Let $u_i := \mathop{\mathrm{col}}_i U$ for each $i$, let $S := \mathop{\mathrm{span}} U$ and let $y \in \mathbb R^n$. We know that the projection of $y$ onto $S$ is @@ -665,9 +665,9 @@ The following result uses the preceding algorithm to produce a useful decomposit ```{prf:proof} Let -* $x_j := \col_j (X)$ +* $x_j := \mathop{\mathrm{col}}_j (X)$ * $\{u_1, \ldots, u_k\}$ be orthonormal with the same span as $\{x_1, \ldots, x_k\}$ (to be constructed using Gram--Schmidt) -* $Q$ be formed from cols $u_i$ +* $Q$ be formed from columns $u_i$ Since $x_j \in \mathop{\mathrm{span}}\{u_1, \ldots, u_j\}$, we have @@ -808,7 +808,7 @@ def gram_schmidt(X): U = np.empty((n, k)) I = np.eye(n) - # The first col of U is just the normalized first col of X + # The first columns of U is just the normalized first columns of X v1 = X[:,0] U[:, 0] = v1 / np.sqrt(np.sum(v1 * v1)) @@ -817,7 +817,7 @@ def gram_schmidt(X): b = X[:, i] # The vector we're going to project Z = X[:, 0:i] # First i-1 columns of X - # Project onto the orthogonal complement of the col span of Z + # Project onto the orthogonal complement of the columns span of Z M = I - Z @ np.linalg.inv(Z.T @ Z) @ Z.T u = M @ b From 6be0e6585c53cc69f39966c1ac33d7bfcd899026 Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Mon, 4 Aug 2025 13:02:11 +1000 Subject: [PATCH 05/17] update the thm and proof env --- lectures/orth_proj.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index 65b5da3a..34438aea 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -293,7 +293,9 @@ Combining this result with {eq}`pob` verifies the claim. When a subspace onto which we project is orthonormal, computing the projection simplifies: -```{prf:theorem} If $\{u_1, \ldots, u_k\}$ is an orthonormal basis for $S$, then +```{prf:theorem} + +If $\{u_1, \ldots, u_k\}$ is an orthonormal basis for $S$, then ```{math} :label: exp_for_op @@ -304,7 +306,9 @@ P y = \sum_{i=1}^k \langle y, u_i \rangle u_i, ``` ``` -```{prf:proof} Fix $y \in \mathbb R^n$ and let $P y$ be defined as in {eq}`exp_for_op`. +```{prf:proof} + +Fix $y \in \mathbb R^n$ and let $P y$ be defined as in {eq}`exp_for_op`. Clearly, $P y \in S$. @@ -445,7 +449,9 @@ The next theorem shows that a best approximation is well defined and unique. The proof uses the {prf:ref}`opt`. -```{prf:theorem} The unique minimizer of $\| y - X b \|$ over $b \in \mathbb R^K$ is +```{prf:theorem} + +The unique minimizer of $\| y - X b \|$ over $b \in \mathbb R^K$ is $$ \hat \beta := (X' X)^{-1} X' y @@ -628,7 +634,9 @@ The next section gives details. (gram_schmidt)= ### Gram-Schmidt Orthogonalization -```{prf:theorem} For each linearly independent set $\{x_1, \ldots, x_k\} \subset \mathbb R^n$, there exists an +```{prf:theorem} + +For each linearly independent set $\{x_1, \ldots, x_k\} \subset \mathbb R^n$, there exists an orthonormal set $\{u_1, \ldots, u_k\}$ with $$ @@ -657,7 +665,9 @@ In some exercises below, you are asked to implement this algorithm and test it u The following result uses the preceding algorithm to produce a useful decomposition. -```{prf:theorem} If $X$ is $n \times k$ with linearly independent columns, then there exists a factorization $X = Q R$ where +```{prf:theorem} + +If $X$ is $n \times k$ with linearly independent columns, then there exists a factorization $X = Q R$ where * $R$ is $k \times k$, upper triangular, and nonsingular * $Q$ is $n \times k$ with orthonormal columns From 66ec06952d5ac9d4c1da32d2a53a9de6c76b7e18 Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Mon, 4 Aug 2025 13:30:29 +1000 Subject: [PATCH 06/17] fix proof env --- lectures/orth_proj.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index 34438aea..2d1cd174 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -306,9 +306,7 @@ P y = \sum_{i=1}^k \langle y, u_i \rangle u_i, ``` ``` -```{prf:proof} - -Fix $y \in \mathbb R^n$ and let $P y$ be defined as in {eq}`exp_for_op`. +```{prf:proof} Fix $y \in \mathbb R^n$ and let $P y$ be defined as in {eq}`exp_for_op`. Clearly, $P y \in S$. @@ -325,6 +323,7 @@ $$ $$ (Why is this sufficient to establish the claim that $y - P y \perp S$?) + ``` ## Projection Via Matrix Algebra From f536db9960a2d022cfe276db0b9d6a7151e8e88a Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Mon, 4 Aug 2025 13:42:58 +1000 Subject: [PATCH 07/17] Update orth_proj.md --- lectures/orth_proj.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index 2d1cd174..336c4497 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -306,7 +306,7 @@ P y = \sum_{i=1}^k \langle y, u_i \rangle u_i, ``` ``` -```{prf:proof} Fix $y \in \mathbb R^n$ and let $P y$ be defined as in {eq}`exp_for_op`. +```{prf:proof} Fix $y \in \mathbb R^n$ and let $P y$ be defined as in. Clearly, $P y \in S$. From 4f495299ad22eb0bc413aee7f7d7aaf376f900a4 Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Mon, 4 Aug 2025 13:57:40 +1000 Subject: [PATCH 08/17] Update orth_proj.md --- lectures/orth_proj.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index 336c4497..66642d49 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -306,7 +306,7 @@ P y = \sum_{i=1}^k \langle y, u_i \rangle u_i, ``` ``` -```{prf:proof} Fix $y \in \mathbb R^n$ and let $P y$ be defined as in. +```{prf:proof} Fix $y \in \mathbb{R}^n$ and let $P y$ be defined as in {eq}`exp_for_op`. Clearly, $P y \in S$. @@ -321,10 +321,10 @@ $$ = \langle y, u_j \rangle - \sum_{i=1}^k \langle y, u_i \rangle \langle u_i, u_j \rangle = 0 $$ +``` (Why is this sufficient to establish the claim that $y - P y \perp S$?) -``` ## Projection Via Matrix Algebra From 003f4ad43c98991161728bfbd3a3cedea6038419 Mon Sep 17 00:00:00 2001 From: Humphrey Yang Date: Mon, 4 Aug 2025 18:14:56 +1000 Subject: [PATCH 09/17] improve consistency and update code according to PEP8 --- lectures/orth_proj.md | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index 66642d49..ca83ea95 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -60,7 +60,7 @@ For an advanced treatment of projection in the context of least squares predicti ## Key Definitions -Assume $x, z \in \mathbb R^n$. +Assume $x, z \in \mathbb R^n$. Define $\langle x, z\rangle = \sum_i x_i z_i$. @@ -86,7 +86,7 @@ The **orthogonal complement** of linear subspace $S \subset \mathbb R^n$ is the ``` -$S^\perp$ is a linear subspace of $\mathbb R^n$ +$S^\perp$ is a linear subspace of $\mathbb R^n$ * To see this, fix $x, y \in S^{\perp}$ and $\alpha, \beta \in \mathbb R$. * Observe that if $z \in S$, then @@ -312,7 +312,7 @@ Clearly, $P y \in S$. We claim that $y - P y \perp S$ also holds. -It suffices to show that $y - P y \perp$ any basis vector $u_i$. +It suffices to show that $y - P y \perp u_i$ for any basis vector $u_i$. This is true because @@ -336,7 +336,7 @@ $$ \hat E_S y = P y $$ -Evidently $Py$ is a linear function from $y \in \mathbb R^n$ to $P y \in \mathbb R^n$. +Evidently $Py$ is a linear function from $y \in \mathbb R^n$ to $P y \in \mathbb R^n$. [This reference](https://en.wikipedia.org/wiki/Linear_map#Matrices) is useful. @@ -391,7 +391,7 @@ The proof is now complete. It is common in applications to start with $n \times k$ matrix $X$ with linearly independent columns and let $$ -S := \mathop{\mathrm{span}} X := \mathop{\mathrm{span}} \{\mathop{\mathrm{col}}_i X, \ldots, \mathop{\mathrm{col}}_k X \} +S := \mathop{\mathrm{span}} X := \mathop{\mathrm{span}} \{\mathop{\mathrm{col}}_1 X, \ldots, \mathop{\mathrm{col}}_k X \} $$ Then the columns of $X$ form a basis of $S$. @@ -433,7 +433,7 @@ Let $y \in \mathbb R^n$ and let $X$ be $n \times k$ with linearly independent co Given $X$ and $y$, we seek $b \in \mathbb R^k$ that satisfies the system of linear equations $X b = y$. -If $n > k$ (more equations than unknowns), then $b$ is said to be **overdetermined**. +If $n > k$ (more equations than unknowns), then the system is said to be **overdetermined**. Intuitively, we may not be able to find a $b$ that satisfies all $n$ equations. @@ -450,7 +450,7 @@ The proof uses the {prf:ref}`opt`. ```{prf:theorem} -The unique minimizer of $\| y - X b \|$ over $b \in \mathbb R^K$ is +The unique minimizer of $\| y - X b \|$ over $b \in \mathbb R^k$ is $$ \hat \beta := (X' X)^{-1} X' y @@ -475,7 +475,7 @@ Because $Xb \in \mathop{\mathrm{span}}(X)$ $$ \| y - X \hat \beta \| -\leq \| y - X b \| \text{ for any } b \in \mathbb R^K +\leq \| y - X b \| \text{ for any } b \in \mathbb R^k $$ This is what we aimed to show. @@ -485,7 +485,7 @@ This is what we aimed to show. Let's apply the theory of orthogonal projection to least squares regression. -This approach provides insights about many geometric properties of linear regression. +This approach provides insights about many geometric properties of linear regression. We treat only some examples. @@ -700,11 +700,12 @@ $$ \hat \beta & = (R'Q' Q R)^{-1} R' Q' y \\ & = (R' R)^{-1} R' Q' y \\ - & = R^{-1} (R')^{-1} R' Q' y - = R^{-1} Q' y + & = R^{-1} Q' y \end{aligned} $$ +where the last step uses the fact that $(R' R)^{-1} R' = R^{-1}$ since $R$ is nonsingular. + Numerical routines would in this case use the alternative form $R \hat \beta = Q' y$ and back substitution. ## Exercises @@ -817,14 +818,14 @@ def gram_schmidt(X): U = np.empty((n, k)) I = np.eye(n) - # The first columns of U is just the normalized first columns of X - v1 = X[:,0] + # The first column of U is just the normalized first column of X + v1 = X[:, 0] U[:, 0] = v1 / np.sqrt(np.sum(v1 * v1)) for i in range(1, k): # Set up b = X[:, i] # The vector we're going to project - Z = X[:, 0:i] # First i-1 columns of X + Z = X[:, :i] # First i-1 columns of X # Project onto the orthogonal complement of the columns span of Z M = I - Z @ np.linalg.inv(Z.T @ Z) @ Z.T From 9fd82d1c71e7a3825038f98335e7e00f7a237bf7 Mon Sep 17 00:00:00 2001 From: Humphrey Yang Date: Mon, 4 Aug 2025 18:33:04 +1000 Subject: [PATCH 10/17] update figure and tex files --- .../orth_proj/orth_proj_thm2.pdf | Bin 0 -> 18798 bytes .../orth_proj/orth_proj_thm2.png | Bin 0 -> 8519 bytes .../orth_proj/orth_proj_thm2.tex | 31 ++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.pdf create mode 100644 lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.png create mode 100644 lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.tex diff --git a/lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.pdf b/lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cf4a93dcdd5ca3002b68f9c42c0d71c31ef593aa GIT binary patch literal 18798 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 B$({fJ literal 0 HcmV?d00001 diff --git a/lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.png b/lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.png new file mode 100644 index 0000000000000000000000000000000000000000..dbf03e5e56df5bf5d513eaa625734209ce94ff6e GIT binary patch literal 8519 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 JO@, >=stealth'}, important line/.style={thick}, dotted line/.style={dotted, thick,red}, dashed line/.style={dashed, thin}, every node/.style={color=black}] \coordinate(O) at (0,0); + \coordinate (y') at (-0.4,0.1); + \coordinate (Py) at (0.6,0.3); + \coordinate (y) at (0.4,0.7); + \coordinate (Z1) at (-0.4,-0.2); + \coordinate (Z2) at (0.8,0.4); + \coordinate (Py') at (-0.28,-0.14); + \draw[axis] (-0.5,0) -- (0.9,0) node(xline)[right] {}; + \draw[axis] (0,-0.3) -- (0,0.7) node(yline)[above] {}; + \draw[important line,blue,thick, ->] (O) -- (Py) node[anchor = north west, text width=2em] {$P y$}; + \draw[important line,blue, ->] (O) -- (y') node[left] {$y'$}; + \draw[important line, thick] (Z1) -- (O) node[right] {}; + \draw[important line, thick] (Py) -- (Z2) node[right] {$S$}; + \draw[important line, blue,->] (O) -- (y) node[right] {$y$}; + \draw[important line, blue,->] (O) -- (Py') node[anchor = north west, text width=5em] {$P y'$}; + \draw[dotted line] (0.54,0.27) -- (0.51,0.33); + \draw[dotted line] (0.57,0.36) -- (0.51,0.33); + \draw[dotted line] (-0.22,-0.11) -- (-0.25,-0.05); + \draw[dotted line] (-0.31,-0.08) -- (-0.25,-0.05); + \draw[dashed line, black] (y) -- (Py); + \draw[dashed line, black] (y') -- (Py'); +\end{tikzpicture} + +\end{document} \ No newline at end of file From ba60b3c0ec4953c780cd4713ea242f370a31c8c8 Mon Sep 17 00:00:00 2001 From: Humphrey Yang Date: Mon, 4 Aug 2025 19:00:48 +1000 Subject: [PATCH 11/17] relocate figure and tex --- .../orth_proj/orth_proj_thm2.pdf | Bin 18798 -> 0 bytes .../orth_proj/orth_proj_thm2.png | Bin 8519 -> 0 bytes .../orth_proj/orth_proj_thm2.tex | 31 ------------------ .../orth_proj/orth_proj_thm2.pdf | Bin 0 -> 3940 bytes .../orth_proj/orth_proj_thm2.png | Bin 8117 -> 8519 bytes .../orth_proj/orth_proj_thm2.tex | 14 ++++---- 6 files changed, 6 insertions(+), 39 deletions(-) delete mode 100644 lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.pdf delete mode 100644 lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.png delete mode 100644 lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.tex create mode 100644 lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.pdf diff --git a/lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.pdf b/lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.pdf deleted file mode 100644 index cf4a93dcdd5ca3002b68f9c42c0d71c31ef593aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18798 zcma&NV~j3L6s6m?&C|9|<89lvZQHhO+qP}n=4so$-^C=8%p`Z}*RG^~RcftW$+H)k zys#)86FmTiY<_uU9fpmNko`$jkpyqgB8#R zxGp|);~Qo4ZH=R*`VXy?^O?z?&%Vp_7}6|zWuuj%&4j4XBE$ySuUgkv6$#W`>)#p% zt(hYuWG{Jwi!CwsZ(LETvfjGZP)FD5QB*H^Q~J$prNLk!ym3yEQ4{jASgQ=2!V{gi zh=QUy%5#&`k$>F7>>CQ-mAmCVI0G788lzkGUzEDCP}u`x{B#~*ga$!@>r3s?4pHMc zGZb$6e1PRF{MQxT5GBGPdUyIa8dQzwBIC#4y}(X*ILsaba)zCu85^y_`#wPeU%I!& zu2Vt1h>L9pKA~76P3otuNf5qt#XB{nU%2&tgXdQZ-!PRn3RF8#EW3)AFD!rE+hjmd%> zRTZozh>#kXcwLDlCiAK+Vn=jbuN*xj7G zMGY??{-N?|6=&_YXXc+Z5hgU=g0x3ho_~H6vHC_R!?UND+82=t>(|Xy+yrBlBin^5 zXchB}a59M?;qs{xPD<49=iSR^*Ehd*K)~a0a>0W9S?t^WL+Dw9$@8=;02H1S?dG;; z=VLO@qp;@i{J{(xU?OiBTYqAz_ z@?dhka(0>0sIMYsjtcI5p{T>3;l(DV1`(xKSBDq8)IZDoN)`@ykBOVC)0?sEg1Gxo z&;$dy1Kj=TQGs&o!n7Rm8Dc|dg%T4)e(-j4MvC>+*bRp4!Ml`xeo5ezq-d~ojJ;OY zk=KR|(7TX8Y`|p`laHG4=7>JTdz%mp8M($Q1s!PjQ%)u>UwRhhv?TyDZ^hJsqYg)( zrkst*e76xm?Dd}jHPYcxMwD%Aske8dpe?DnIuE8+co-8~~K6bN)k zN8~r8;2&V%B1T?tMi|iL;0}=GTy{|YFQE8%EOB)>D6l)=fI>e|11Khckac`Z*!g4N z@&Rokabi^utZi7}7B_x_mv=8{{k8)je_@djf*(o9@lJjudE9y$e$;43|8{-XW?(MR zCj&NlsL4wLvUM^%dCGPyhPtpYNW^vU2~eSRDF<#acYXx~ARZ``K>M(D5Z_q1d5|vt zpXgDcVHiexe_}t#Cj(bXL`D#he)jAFHY7Dt@{@=vIxyh=D};Hq6(I8=qT0RzoIYSg zU_S&%phMvAs_ne1ypa6bzQh4GHbzYL^%d9)OT_vhP9dO8NgQrUxn&`s^_3S2q^sy) zgNK0|{c`4Y9MHEFPON;=Dp(*R@-JqBMF`-KqIhoc^2a%B55Lp_yr#mc8t&;4@WV(! zl<{n?$U*SQnUjzMnip5NB1{MuGmzOi~AkW*IYkWQX}a_X-EeQn|2mkl9# zAc6dF#=dYuphF0M_f7V@pY8sBScG?Uuy1E0)4S);p?x5(X)GkYa(u8yq2m~^E+HVw zVbt)tS3ig!3*-QPAgywE7=8GLuuhckF3wT-hEE%#8v@{GuyhcnCs1I2KE7Yg3?nR4 zSSOd455U(N`XjXkRizcB{Wtczo&X0&Iz@k0Rvu#i3M`j|Bo0Ep1&W)QlLROEO7mA*10LaKtB9G*eAb#pLNN< z1T%iB?|KtmBgN%mu-*)9p$8D~xM6L4_ z^uPEjA^}W}@h&Z6@|n1#{h(-X*I~pd`MF41_>_~Q2LK!2Pk29=S?mj#g#e-gJ_4q6 zTEe?NL#&hyc7s18;&1@JuzvCAWBES%hcftq@QXYj%FfMxYro1kIe91`QNn&*;q<97 z^*|syB+=4Vq&dASh`WdOLHTqvAX8I4e|$KBr^iAOe<0nQyxKhsK7X}eJ&bTfu>I!` zlOH3wtpDz&v_j8#faR&}Tj~cXoMJfi>;607Rg*_4D6O9fkhECJljL$W{d^x& z0d|WT`pH~Or|vO2;rKc%iS(_`8LeQv6TH~^^8Ha=%??k!Uqr2fq6%xVc5zip zHM5*=ip2WyAc44I$zxnk?=JqRHcOFqDp0jxicF<>{<=cOITwD&Q#p|e85Z_$;uFiO z5M*ULuh!29S|ouc5|N1#YP)`rBzs^}BTdz0w58WOoZzil)^c0l+GjL7 zox4tVrJrJs3I7quYeX70r!-MQ>I8stCXM|<_cPI=&`Wh>MwTu^+kF!zf3)})g6-uX@`-4=T!t=`+&&Fb+T@{ zQ(2^KL|M2n_58?t9^!H8MYy{L&t}oG@L-OZmSU7=Ifw2PBY>%%U`N)uBXW27;Pqg( zz{muo^b&PlJHC&FliM2pnc`ICb0GFgU2kO5Alc$LHHQdVu?N?`+3*&zEd^RM=Qhvh zTE7IWDSQXPqMI>`?@$y$?^Q7Hur}^=4?z(y~u#!a^Gp74qUemfR zNelqvE@a>}yTNh&hUXzxRM6DyJr{nP2mJss?NBfSwAAGL3VXAtFuvxTBi+9iL*4q?J< z=<&70U(Z3#dTT}_B-Qb)YAe|t?GY2y=ro_F_Fm&* z0=HN%8u#)o^q^ikBx?ErDqB{r!l3Jw`uVg}`X5B(7*FiEr%-}#w>IXmmDTc=|C4ef zxLE@0Q_;J-`;LLEXevz8!i0Ce4XTrpe|rtTZ-4;uxtKshSk>u`GNSczp404HxKqL2 zZpS-iXC{cuAy~UsIakN=0t2`!Zas!3I7=j0A%a+mKKbT!kV9KbKt@=g`<_?tdHF?Ny_aJb>zx>()T zA~0s&h3|V-R@afTi;RQHWqq)-BRmw>D6AG1l{P2mikntk3`%9Th6Crw2RGpQ%)LmV zHXJ^9W5Tcb8t(oIO|r>`jqPb(-b3Hpy8Qw_3om3d%{z%`*~NfYe;W#;+sgHNUAm4X zcU%sQKCrTu<(+)&k|s!uy3v1{UTm|_i?S>_y6JP-VW6rt-q^OR3}dueI|ZShwo6*-oHMGQH#`-`+Aw6*2KzNKGYGtoZMD6Lk+0{n%Mte0It zFJIfIl8Wr;;9z%mcZMRRb?YTqsmAwU!1^?=T@K3o)6xMslhf0!%>APj#=c z2seh+KLYFmtP$Ah9rr$B-k5nFMk<{=)+121#wJ?X%*rl!l?pZUS%zGWwB_%gAM&>* zN1oRSm(u-2eScrmG439o_`0NPO}ixs+$=8gV@#8vX$X-V`A>3;b0!z~7a|AlC-Dxr zkH=)BaMbPU@irz%8z6o!G~K%7bMz3ZXa7+J5#&Y_XGK1)C%TsdFsVhnd<{SW-gZlj zLL_K++)a51*Yj?syO$UtEj0yNTgoX6S_J6JL}Za2`G&HhGkcM2N(iXU;r!?7?p{+3 z^(72b5$-ZkFY5V@D0=&}*Y*{@Kbs1v%tMpD#L{imt+DYvZ%uFF`Z4qoL`wDC+n$dx z(Qg)Y+^LktQ8E+BJdu>Ye~)Qjs?|NC$sq#J-&tFFW*+LPkICPIbJzmz54o;Z7PA*A z%=$x;+Oa5h->6$H2a2@nC?w}_%J`5VRvj5E(y@5xn|_GzD7T!^-i((MG$kD-E9moM z-xd7YM6J!1EOzy?4J2nAMydIkr{A~vLkz}U4ku}f5DnQG?R_HP5=L_7qJu;3m}B14 znSm>3mR8x$7HR@uHC3!7oFgWeLJ2cQ<^Sj^Sl>Oo~ET}#H{;j>KB#N|(T*p*Fj8d#21MbSzM%=AkPYWe<* zqHY9hYpf)VqvsSBypzCrT@B*jCM18(5){lLe6!=pgaU(!7-N4GA_P15}cn> z-+{zubg0jKm@#XGc4?Ydn02KY7H@?4PVj5p(ifen^BHQcZMwJ2+`9<#xcks zS{iSsJxV`iE`bJEGSj(Kl{UsA=CFSA(6>X;M2idRL4jL3-)Pl)TIBR1N2Dx;mUIg7 z%$iRmJhNZxPofBxx@!@LC>ooSyq&~+MM^I#srM0Xl$usgsrubhzc4e+1%| z9g01s6>Vh+lmwi`9zUOkQ*$p~pFpP)clNR;!`0`a12;h$B6{#*rgbP{YI%U&~RH9;okM5-b%=vMAkIYwy4Yc$g) ze_I{-ydJeq*un&c(Rv~Yrcr?_WlyHxV72d!w^iC955L9zLpAmbZyzt@`{Oe^+;Y8) z($|;zPb`S`YTH8G(cU$BYh9qwPjXQiT9bRg0_` zldj=amwMb~9;CJ&Hb#?UF6=^<54(BdmbyfGOcK_v?plOtz!AGDgfpVG$5WwTdwxmO ze5GJZW5w0KDJuRj1BKslz;UUBR;p3B9dE)0O>*Sd%S_Kflb1!eFbvJ5f7(#+uDtl( zMGZ?fOhmWk$Lw_*pSSM4d)fMOFh?Fp9(r(7n*7|y6l$^Kb+3WB!P{H=3Ct{r{--Pi zJ&}#R0&SF6%858~E zyVVFyBC^Q@Z`IlS zGQ{Kct@xit|JT5?r+=2S39b?F;2{Ll+91~1{Pmi(@P2{y3o&Hd{(nZU883Uv!yZ&@ zA$zO~`2Hx|lw%mfNtYZFb58%u)aCK<`92p!1Zi@N)3Xp--wl!S^WaiZ$*};?@wr0w zy^Kg#G3_#OJ74re^YNKmi?gLgM1L1`{KL8Sa#R%jTY2=Z9@Rg2Z*g6$c^cAo+f9m% zAVoJH7`YJ8Y@S+GM#83t89*ZYk#Kj4-?&$gFNq|67$0j-!`%XaR+Ck@t|^*~L{PHM zT67B(1OiWPma4PrgMo847ggw9-gd;H^En=D zT?+J44pt}7YGp!o~&kP2QUD0AlYH{Ie6w%+|rrZdp44Ux=h8ezmt@ zV}Zc$iCD|HoEA0yx_g~!qe}8XXP|iVKC*67Dch|G1AjWXrrHiK=r#ha6wp-9aD%9U z^`NBMRRWO4zpnW+eze2T=Xx7y$>G>dJQkTCJHwGjkYJK+y^C~AB@*e9iMSY5b*B>I zyez@x#=5*AuTZUHaE_LP_g4rC=3i@vLcSS+`?)*hQ8k%h63Rb6cAdLgFNOoV7>dEa zqmEQTd41UZ8sCbfh0~IMfC;SpdYI>{-*v42o^L;o(O}?y`{R2G{A+x>V$)YVF4M?B z`gcs;#|l0;0ZDw=_VxIJTZO4ahrrO*pPU0NHBY=}-j>A#v8X~+YVxFq3XFOY*+0?OIpd;Zie9|gT0>hcc5A+y+0@$tN84YCVpy#SU_z_Q(3aqXirkbzln z?w&~^(5(se43M2-Z%FqejTu6II}Qb8w*XFgpVUt-FvKxsMqB=HcRy`bkFZfNf+$zEg~e+y;WZVYA&&6H5| zIndO+w-(CbB?+p@y(BCIG8i2c8#nym&0KSWnB9wLd7Kz#tQ(|*s!KrKqQ(SvcOaJ1 z&d{g)%eamhbrMWs$CRBwiGk0>m7+e?e&L889eFt-(q%d(cIVLpUsH`b$;Az?4lARBj3edS;&f(vsPoV^>VE3r~k6OPg%P-Rz#O5kwjaYHw1 zH*)yofdUizIL(>NOK7enU$8U#4uv<^YVmYwQKCxI*@Cm#h^bEcFI0+$@p!+aciz5) zl-|HG=aK$+v2M+*uiGQSJ~I1Z-XC+}xhTEDQ?7N+v&*MG|G;pjBX9-V2TB_9lZcOk z@@(7+x;%@O?#fP_hWD-Zl+z*6+0Sd_d_Zv4pgY?4rXvoAY3#Wm5}TffH|2I{7}`z9 z0vtNlKjE0?aWI-7q)URKZ$!;ob6e3DAikUAAGVTh+uvAG>Ct_N9+E;YNY`IAai+Ai z{Y)sfC>d@Ggow+4AR@>?e#qjDnAsP>VBnLQoU!B?WX>8!o_(3yPAUOW`;gtorx`4* zP5^8MTVoVq&#CD}(j+;ro{a;(3J2wv;+=LeV2?k1O8h+E`LWc)a;QZa!SCuMuPI+2_xA3U+iu@0V?>mp+F?XJ*7N)Sm0_#mr89rv{_QI<20stud` zh+RC+K(2Gwi04gyYL3340t|b-cY9IEiDwZ`E7-cK2y+T^zCCt=>`q}-vqLPIh3UdX z5OmpgVqt3WhPTCn=uv#S+s9XF(j}?B2oC5I+yONPWr@*E0r}?niK~X%3`vz9(L9$; zly$$o5v}h`Fzz0mmOF47${iL5k<=|6Z#C&j+Sqz|U ziH$!RrG7!?VG;(D*^`%C3EMZMq>Q;f}am#(pw!J_9g_s~ zZguG*YbimX%#FF5iI5s@-q#eO#&KJ_v>{j~| zy-fg*3Wr0T$xzo;(@&)IB-f5*dRgN60qmDwe7CGulp=<+Uf<8t!&zlV<_CLOQI9)J z*c0C=JlGkIg&?-V${@R(4;S51BZy7j3w>wq)#yIzSEYhybS-V@&WH|2!B zK9|ED!ZnF-MlI0`eFGc9-vqpFdMkT?MaA9>KHO!U_fs79lS#G?sL0sSOLPd8;1T4FvJo8R}5ib-~|2vuuE z%RV(UVD9JPbuy59VXy(QKcvP_aFvDlqwOXzYJD8uGQ7~_=>)$czyIgdBI#qT_*Hx6 zuOiZ)8x8f1P&A&dDjr6vB>L*Lf=o6DFADL`&z`GL}CZHSwQf!pV3 zq$@-YY7F;#99-k1Eq;@wdeQk^&GSMMJPKpOy2UqwTHk(`JR$-9pPBQha;^vG{Yki1 z!2IYds*Ax5pryOVP2H?Rrbw-+L#e}2lgeHHFWlpwziN={dVRbx2$(JN8JO}drZaOa z1SYEOoCXPs4t3EzPKmq%%(~mrC3ZsxSN8&}_6$cfW9lWcw^DMO-Eu#1WnuV32ox&! zORL|Rvtc!|OQ;-jdw7@6F>tb|qfXnLBhQ#+1SZvUGk@U3UcsVz{$vbwE1evjSF5A; zbf}#3Yq;sPrU#$CTM`$qb1z8qB}EOzGIAU;bgoSW>%b3Y6rq^}?oAXBWPiZrT$NT6 z1gz0XhV!1k6y`~2^$MT6N-LBeV(!ZtD|V;xG_3C5sK{4EvF1)VmHXrtGnd+W&;xhB zq!{GKj=9CZ9-Lm445v)aIqfF(?0m3pA>@YlY^nbc{{2~bcyLF!IrCA+$=bFu(rn0u z6eny8l%E-(PwDe?_&CN<*Ug#gr-`BvJZ?aM5#y|s=Ao${PWRdxxo1&%Z8GURq-#8e zwY3slO#k_lhgUFcyR@KS zZR=sLDYSq=H9%7OnApVFM4Wam2r>gtE2aVHoG9+@lh$<(xicP6oNR^<3nBS76yJU7 zCv@E~Je5cgZ!le8V13{92+WkoE9X?9d1Al4&T59F-9nMZ9~oz3jU5h<)Nb|q05FjC zaCb;kI|Os`B6%BnJ&3fDhwzm+@Hy{}{5XJA*g6@noLr!vJ1&s`_(jldK-gq)2K zuj^s0z1hC@&A4XlgG7rSTyiFE-NAD8sft-bv62p@lNg=ZVO|Y>yUoiyL~8Vmx)tYv z$&Vf1c=ossGU=1Om?kHViBv^V!na)nlpISzaoJ)GO ziMj^7#%I@%#(+*a@rqS9dz+JYzSfS9O4T-&@j|{Y2O@pmBKm{V>0uq<-r~&O#VK0N z=MP17e5T!8Z+;ZOPwTp)L^*tF7c<*Wc0YozYaqm$iQVz0O1A4fw_(PAD9HqL(Y?Q4 z<$C}VUR+d#*%cv0oriB+f2#pTT%W6+c^OAM^e)^e6`fKI8eZSM$i?b*8omhnW1YhO zH(ZwWf5&B+0sj-1W##zG_CH|k|IB6C*a82?b00Cz|8d#d7y2E_9VSXbA~>O_U}y25 z=6yyu#$h-(AvXZZBAFs}esZugKpbk3YKN#`&@b9)_Sfx3=W>_T%IC4ii_fd?(_`=S zoqfIe`OUZnDOH{f3~vPT5HlWV-0BQF3K$G5_zfHkEP|c=$$%2_Y>yE+3>fVkM5v$a z2b2E~GM@C>{xjlo}W%2?+@Z3I>Y%4HGFK8Hmz_*jRb?$&j-( zZx}{Wv_M{0x&6GXmN1g-gIzz&RmS#|X9g72TG@UI`}8InWt9U4Fnr<q& zBy@BPNd6pPdBkwKJ2fvKIf}De(la%znf|pc=mW5N(Io$m!RmrDK4Lq}dR#Pr!A?P+ zo?o}aJQ`voD1Gpte4tc$T&(OfzMTbw^5?w&AYB3@qJIUDrWc`qf8Ac+UT)!uNr*p} z`w!&Lr*A-}r)8w(MYkW;FBb(x*d37jV}LM_H=-~D#EdoN{l6K$YuNcl1l+)c8EPvE0dI+081c(jjo1YMTfuD30a7$nZ=Z~8z zI=CpV0ETT41~Y+px*q?V9Nxb|ut$GQiy?WWExyEeRKJHQO9V!CW!wXh&u1F}HE5_W zHH2%1aGsCPgTU33TQoGAJinVNs4&86-*;(wVKg97;(=UY5OWUb$Z();0dpZu0Ulo( zY@p*X68SR}pv)qMew+Z(50@JA3ecQ*Miw9E^fQ7QqFQm%O~XEP|J_%;%RS#vL7sf1 z!gC3*V}o!V6Y(RF4%#BFy)~llk&}Pp?nkvy$Y`g_Qg&J{UvMW(W*ug#CeEN0n|iy! zF|r?w4_A6{Ug<3+;Pl1i$Aye&U8*Mt?++jJa+}uqw5m`LS;!5`<0=n9VEF&G=A<2@ zZ^^J_f1uE z%^FyUvg~odJ7D78?F<%wh#j*YpN4{8TKdW%=Lsa%-;lfuSVJAmlvweybyM6$=;$n; z(5#Mh3z0#tI}J}!s0}CKV?tA(*1is_IvTd|L}NQ|zI)djtwQ_T#esUmhFu@hdO8=s zWX(w&P`@@yme-|^cI{p6D5Z2sZD~Tw z&N;mIAVi*CYnJ_lHdB3-(wEroer}Wpi&1PEx=zIo{@rsrTcg=Gax_18>jC2_0QB=aC)kR z_a3WCuF^dD!V`hKf0W7ii3d#4#J_JQU+LaZ0~I;)y}sTyotsS8Y!4Ep>6WBh34siG zwH9_?Xk)ic_!-ypOrcoe`iluYV)o1Ov97Sm6KM$b&ZE1+)MXqsYqb0J_@P7)(z0t~Ji&7{?U4#VudlJEPaPwZ_b_9A#$oGW#iZx+VT3|T z+&`Z$f%Zb2^!GBe=}3nTnw6{jefa85c06OE%-}aOL&?=3MbxIv8>CkVREhpWre1w6 zFr1Y|#E00mwNPMwaL5!C#q>w>yJ;>EydWLVxQz-axozEJ?*4DAEphoJ^8uHsP+>PU z7-9cIgX>h5#-%TYMomYsS>vB*_CVbuPy|vNr$UBPL2hr>Q)*8~S5pWjLfcZ@e+FU& zUt@0d^mRn+w(*=VAzkNyj3h`z=KkX=K{Xk(5#9#0!HPdpW>GSv08lKuh)ALFJ$v+# z(jFkbz^ikF*+G#U>ptW3c`Yvw{3&6c8#B_<%+fx?IL6*;1tFlK?6^Pg8AIM3KA0f;%1&*OjffebL0_{n%R~3;BOfyl85xRe(GyMAJ((0+7KNI5xj0F z#NS^Zltb-2p|;zAw6{oN!wV@_8thafh8Z7KgTJdqT6hfWll(_km{Fsz2ZoTX zFc_>P4*f}#HWO%TQ@hf4~v z8&Nf1u%*3;r&Wf05@tAt=y&eRn8ROiFxrkzxW&Ne3{#(mM!TO7v`=OWzMqBmT#a@N zuUioG7uolwboHm#v$O(ds%BIB^jpOXpb8^iiCVN1Ti3B*+1sBEmNUjeo;NIm)`CMT zU0x+qLIfF-sg9MQ4iI9MfBu<%l45Sg_JS*Qm zQ|2r0y+6c28cwKsmiOw+Ol|IbJf~8qbI%$4TKL3Ey>p4vQ+ZN17}2-zebrq7kuLFM zU3ODLjh7nr4*Mj7iM@F2gIs2Y*`;3a-Zw8hP#Aj1mUFo~QVIw|V=04u6u*Y=T(PZ( zxl`BHvLNSOm)JN#qJ<`rLDt96)MdnATG@_ByRg3GnDfAEW5S`4P&<&Mo8)!R7%E1h zCM4kwILhUS?L$30w{f*9rt>p9o0T5%FSSGoR8C*dSq(F30v1_eSVs=PACD}_CiETb zh}Oun(i;*G`&~491Imnz6@OmdE{!#<5s1s3E_MF=lVBUT^f*9)>v^hklceH#Vu_7P zhOEYVlndH)Cn?3T>nU$C+>b-&H?_o?pO{&{aQCqs^`vxd?F}XEf58 zp`lVa%=Tb@?+?7U_Ue+{L_Bj%GGAP&IjT~qa zsHDA!6Nw7kgVdV12l_|bGx$DvD4Ddzbh%vT_AMspUqV8FB)iMre%ul%b_`}0j8UE= zyUCj(uG&w0cMR?ZK&ln3ifH@o_EfQPOiqbkCQtHI-VF|ERV>8`_JZq1Jo_HGwN!-- z{e5%Xp1Z|UHC7oH>tuLGL!D5~4L2>_M}*B-xbt;I zoIu|Zz*~DtQ7%3sfBE`tW--yVY(H2Ijx0`=;(YZ4$v`nOrdk%Fn%D{N0X-C(4nNNp zKjFMDKukIBjy(wq22k!q{((^(g#`!V+h`Qf3I4Z_`pB?RJ}>h&UAlN%uZsR9+KtCf zdfWG*#$HfYqTtTztp*|-v{Wv*6w@H~M3-!iR-nK_=a6a@&si} zv9@-_%d?>eZ*GV*;YNQ`c-^mQEo>4YIC}wp!1W#~#bN z1T@d+FqF%u*iUY=Fx?|S=(^jXxt#-7x!uC`>Uqc)BB(5Ly~ zGT-^c6#1{V#KuQc4%G^Z%osS|(Bw+Kn(2VE_zu@}qsMLST3+H}a^|=H8~{piVuL-- z3qVEeYDvt&n=ycf;|q~3OaSja_4G%qv2N_o9(`8KEDCgVJa+oFu{^VE$P|YD6cYC- z`u*{6U985a0y4Od@tDzrC%O;#Q(}GH>8GfgfFudEjSZB%4(c-M1T?yhVdn%eK-pQg#DpwNp=g)YXMeTLPw@n`Kg}DTzYuKV;YSdGT^tW>hL&29@i?RlPwp?=+78tqsZDr~Vg+aCJGt<2)?Y zQBwf03K^2JDzI^V>>3d>$@To9Fku6?zNgIV~d$s4ee@!D-xK5|ls;cFBtCP%GBJr|=-1 z?&4we$dufXrttNOT(6y{E)rt{*!KNUZm6Iz ztK6tY0NO+#6Lb#i+-1(K{<102LivBjAt24mg&zH2KEN{HT!xe1=E?;a`kd+mJ+jB*=yEoHXfH?gR*XG zsez4Qpim#Tqr0P7@XWDPosU>J3qcGT$&b_uuVjl0ua3r_Yq1vVTDpWVR4nO=~C&WpngekVtf z{Wv<0)thS8x{Tb^nM8?(1f$>d3^XSzT>k}%C{z>9!-2wk2_NbW7ldrPx zKl;R`5Q7s{hchvk;aE#5qoP33RjPR1p`GZuSSY6hxYA?v-*%e`Jh;$oU4NN8&Z6a( zKqEr}#ej6E)}=iOiMu4GJSR)M{swteI-&%nyZtpog@&00zPC9$%m#a-d3O!t&_y4+ zB;Ornvil)sg&e$Ac$M#d#yaPtgJP#t?>>mqg7**eBbn&SUv>bw=aF(K>Zg*oDFV^0G@*E|0jZgQdx#OQ_imHN$(#E>tyqrp>~ zXPRc*4MLT`)@Cw}9VA+4z2{5RK@>S7a=qR2+QPjF*nL|&%-{gB_T3||p1BHj9Q&Sw zo4h)dd8Jw=GKt+N5x>MefdikGBM4$uK!(aaN*Nwik9tvnB)Y!4z!;u8(;52=Hpjjer+3wy}r>fCj}%ZpQ>zs ztdRkYGf8+Lm2pdS$(i8bn>yqvao2w7T}FOE`yi)jCofhTwe)2bn1mYPw1pLLUhj~F zIM*h5l|owx0>HQ3XYX5Eb%l936M84QZC2}Am)!XjRc%iyr^)nCgU>M>P)|^7W7gF$ z&9snX&prcxWH8rR=M@veYgywOl%}krh%Jzt2wddEp_!pJ3l!rsyJ=0yM!4tu(F;h12ur=^}@@THJj|vIR0zmeH0H-$#(8xNP@VlxURiO(x?#V3FZSqvc0s*9W#kP=nyb`k{k_-c^vpi z%=fuKvbHX&)r{*F_ZE@Kx`&21%9K=qI#U2y+m$XRh1mTYU+(vA27&FWQQxRuubXJ+ z^p(86atWlyvw$uiz(Itd>k#~K3xJ(zbn{o+9~B0 zz0SoK5%Y{1hBU$r&u3GAOT2)Vr_E?`hyHlT$7eM=i@0%BNNya+N3nm@* z%-L8LSepMdo=b8mBjhI9N9e8jWnM?=5OAEDFvk7BumLGq=u{jGJVt@>Uo zFg(+uA8HD_2Rje*Ry zH;*2WG1}X^zw+P#z*K_z zmyB`25;14mboN)+kB9wSr9KgWGeugddaq~=+G4xFdnb{Vw<}%EE=+r+2IT5hW=CV17s!Kf;zc?kSRCjD9!`lf`dH1H+WJq94(n1Dt};|f-}0bG_?wkHxU$nOq{ z@7dgJ_u9KFU_(`;otf^~eVO#*0?&WDd8&#)a?9Sui{?7t_DpxYxaK_jTg8KDRpl=E z?qlR9W@+f%y-pTog?eicq(Wy!wT0TywD28uhd`r7<5IM}xtleb1#9D$-Ebm>lfp%y zOt(bX9n1)(2SvS^hAm}bZ1-eztXEI~fVQaiSqS-vOFFz0r-bNYJ%=YA+2_1Nir!$H zg#mC5T@bVV_mGt(~NO4tUbEF^jD&n?Q?yU&CBt?PE|`F zZ;36crE;e~qtRDvtm@N)0mcuD#pE4pQeUw|{w<(*LcHk@x>h^>nN+N?3v^j0?xImv zuOZvX>%(Z0G}*M{nwJ<=BeP8v;>G7%DW*IZ!wT-`6k2W-XK{|!w8{4X?(kd1@w|4lCv z{{P3LZIor~4jGYpPSxBIQ#L_I2uK59h&G@T*sZlvEL+sXr2!}s@=#$vpU=3c)v7#5 zGP!%x-S@Cgua_=d3o31GsL$gYSv+oOz0FBiuQzBrJ106G7S>$cT3Q>H+&p{@YrQmW zuKKSVEKNAhi`2oGL7c=+dI zPXG8{(2bLy#$HZ4t@6^{kF&Y-cT_dj^rM|vdL#{&6t)X&t9~lOt_$c<5>;F{wD-<5 z*lu{^yT7>+TQ{1+=r!p#o@VfK!+w%jc!ihJdK-OqeCt2!7Pl8(969mnj2Zvbs8%;Z zsx8d?c3aVA{jeX!JpOnzN-uWZbxzhco-Wlkf7gE3FC;#qYhjE~H`+X3OFQN@@#k!X2^#i?Z|QXNL2{1Mx@RQISK|1LZ@HvjZ(7bwHx|4~{6h6T0{dcWNV9 z{sj_G3k9kym{$!L=m239@|4zjgBvugH*!vp0KtdGsxTwfH+No$V$2@Z77ad#24O@T z!Y;-|4RyM}iw`@1voz+0OOpV)V9V}$zV|eHyziXy>-xEXQ-dvb7>`dZqDlLcNAi+_ z0dYS)W;MJE0uN6gVOZ&u6X$r25mKB9egOUtWB4@G@YW_){i8QnY7a2hBEAO@!$1GT z2>$G~HN-6AB}cHFT#s)#cF7K?>&8a;NV#X)R?T=#Iov)1KWrI`kaHnj$#d{iJHu6C zAY<~^SLX_{wtYFkV}<;+`1h?u&PA_nh>tWNANbb$}rUvM(CWH$&u(1{KhEHdV*~{cC+yu(e3Z;B)%|O-G}Ns*dDh zW%qftoD(nd-*np1zmY8|!9KPjSkrVR~>LLGX9_IKt;xGixa8)QmsA==zM^c zk5rK!4z$=9l;a6h=I*XGcK8@N+(f7q@%=Tf$tuexK`45~zJrSkFVrp1mv`2?&o7qw zQ6y6DzMW4_C!2MzHSF-FcE{~h2TyL#=*q}XhsPJ4ugvEaOYX4O!<=CB;E98bFM4OI zBW|raE=kZEe>6Lg_wa}6hwIXH%njhhi)dG7kS%e{3t!fj{J794p8f`k+I*77jvw~@ zrc%zJI0;rg*1K`bIMk4?=N|r^vN6T@vJ?{S4$&fLv4FU9{vgt~Lmv?^6L&kNw9OOE z@M+kA_NZrZ@1D6Ead2w*V{~!E5?y!rgJ^1Ta{qrda-~5{W?7W5Hj#jhf{iSGFhoTm z$rqB4C?Jd>fPjIJAjqN+f&zh%1t!GMvM3;%*cuiY*@i_h4B`soLckz9$eN+CK}B3p zL11LHrNazXb(K@qUG@Il`%b-g>QHh`;Y}ee(_P8sd&)lqSsT;s-?9vZK-% zrEpBk%0#&Xm@sp(4=*1;colK=00<}YdrtS>_0!89!4`4 z9j-$w59->f7n?|O6wDRWB&#q5E#RXrOyLu?)7Ls48xMnM##g9b6%REl6szVy)Z(YU z2Zu}^6(>L6Ze)E(^aA>z+?8D?&h}s@lVF>S#V;&?5b*EiW2D3s6%}95T`Aru1|q3} z;G;NMDu3OU;*fIZXjs02mSokur1fQC>=SbcEV28t>fom6VN5aUqt8J6_P{Gx*i~7Z zI5eqYd)xrVaN!d*JlbY*y72=KJTnZ9E;DITu?%vAEzgB6Rce~WG1Bo%r=pK5#(sh)z(yH2}-d);<|Vv$B_yOai`dl`5d z_ILcy@mddFuUF_nu`Q6%V;(I!Hrpjf)P8rO2m0A%SPE3W5W@CSg{QG0RZBk)J!3B4 zH{c&_1?zpL-?@(mOchs5J`4`(jPp&CT{`Ar8%_(-{oAY#9^c=gpC|Lbm3Z19yu7JN zB;553-uke#b0%y!VNU6k#)+4y=Wkyc;AC*w;aP9@MdDS9R;+sY&e2QB)$dQ&-duao z{$-J|&{%t8?LqgKMa1g3Y-G(oWKB)<>ki(+Y1GJCN!J%G-g1W!3<`n9nL&{Ud8ua!{BjF9M1@41kvF?>&dh z1Mrxy<1+xx3jL>>;1%lV;ZeKIaf?T~=-2iH%*0tZIGGw>;+UEIr((C(&Jk6Y&5n1f zp3R(kTmpwwSBu1=#jgC$kt>ESdU_p7&XoS_=F1m%mTNfM9loIa$}+Ln-9|40*bvN{BFYtruUqr4$SI%0wew4>G*;A-Rbtx zBT#ZHRjF;K$e2uH&N<8fUIs(QJIS&8H>?KI28`ztf@eMw3<-qWX0s z&frzGK@xm$=Hd_G>M+A_G4|~AwuF{g|L$FN&>XnB78aY@C|$*O#~=ZUS$)-G%gj*KN#c{+8arn;dw!~EUQ;8}`nvOS8@Fsuk{<`; zG7OY%CtP_;{Rz~>(cu#aiQ|6tr-BxbeHFR7G#{j10>x%@3Sv9&!F(0n5P40&RXfpQ z;oGB`MJCN8S5`Wrlb%<2m%?!w_A*VInyZ!O=~zf>Zi(JP0l_M%v&lgB-C~_z09~JF zf`^R?e#&%=V0-o~9_cLjPFYfxdAF$V;kl)iH;gCJAin>gaFQi$$V*MRTcG$D{Shn;2sn|U{B;Rk?tux;&o=35cMCoeJmiyh3!Fn%b34G#?isr)-IG-DH z=ig@((IyIy(3`!m_m^oILJwEIkH-1hS6faw8xDzSajpk|hDOC)zupK+qD4x0g2%JdR{SCdt=dm89mmxge!a<*MvpIz*w%Naet{)#CC3IXpf`ULO#TvBE&%a0fC8`Wq+V B$({fJ diff --git a/lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.png b/lectures/_build/html/_static/lecture_specific/orth_proj/orth_proj_thm2.png deleted file mode 100644 index dbf03e5e56df5bf5d513eaa625734209ce94ff6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8519 zcma)CdpuOpw?8vxbQozSlSg^Xj1oznMTjvBDzE6lB#(#?#v_l2F-;UgrINfADn(H$ zc};~R6eS@mAj_T?{h!*uY2zw^Eq?&UVA;hd#$zC-us-iv$0qzx>6KDkfmEK z&Fm3GXfJ|b5209S;qBfq3lB_)y#)i)^K^YIyoj(Zok9>~gQDPviMV1M291 zpjT+Pd+-6o!p@3faWF6>G{hs=haF1M)Yzc0af8M!shLb5MYfum?2O2o?C(8NxQWc! z(OLFovE>_IZW(pcDCM%+#w_!iy&LAJ1c*;N9I%w1P?FeB(+d|0D-qsK=7BaL%yw-EorB-2w}HEu7cagBAS z|HqkI_yZ-T|B-#Ly+EV#3NY~+D=2s2RRa+>m_*%K2u-ahF*C%~<6z?r)~B~RTjWz0 zy(7duK7#Ip8TNknH_&)`r7KNWm4)Q1UisLpb0e7jcXrNOe0Z{J_6BC-MG|&8WXd(HPg!adBXbqiVF&I9hvopSeog?0`_z z*y)Eg3dQ~U`C8o|x&O!D^hd{_sJS)U8|`vwylb0m4!3bbN9Lw)cCF!9c%Pz^05A2a z1^*8YKc1SDSdkc8T)o#e@oz9hNq$iJ59IrdK--~3wk=kX8R6V_~lWw8A#aAZwAl4)ODZekYl3ttCmQ` zR{fPYVJk4DyV)VGVx05140+H%!AU8)v-<@|u02q&plp53jN3PU)(l zHFi8CIy8tr|Mq~xN(LJYU3|L9ay#&HIW3hgEy0ii($oYDbp)I=qHr)pyOBrCrQ!0X zQ?%*fWGX#ug;F>)Wx-4@5n@WFkeypbb$^BvKU1rjYX>NSG&ZcgrRY(QyY4>5(B~p;JnTF{sN#(=svC zY0&oSn;_u`P|%YUQWKG>6s{i+E=;#43G-M)F7&HBwkqqkp1e#I_^MW-1_k#XT8EPi zIoe7*6iD@jdG(1joV4?AIqzhV{LM^ML+d1dA|J&p7ty0cYbo*WlBxCOk5`nRrQw=s z6P)R%8N`+LJjCP7uKE~I==h)zzxaNVw}|4es_zm=-otr=wrHAYzKAx1^TJVGI0a~r zX@?5c!qZffg0lhnirN(14}l(_PaD|wNQ;6C6VQDOZ<5Iq=z#tFq<%#r(Txu3QKy`+ z9W`-Fc%8Ya&ugp(cSBGV%3RHMq3SKosv&Y{xR00Yu{R-Qn9BIj=RK{^70L`wN>7lm zGJ}NuwywRoHG?<>GbZd#N3-DhAl={5%L=UmiHe}XP0-}e)6GhN$N~(U0-&W-7@RiG zcR`Ic6N5@qeqtRGpRW`Ur`*iZ4$Z?jGNAJSc=ee9`xXvSnF-GZ4)I2SfyQ*8e4L`aM_PjK16)Oq-QXsR3=x?qF+HwZq)anEk}5kB_<1c-KkQC- zOp)YCK$OtzH`1*WiFsRu7f}e*#`5~GMoaulHTg_-l zoY%Cj_&&=ZzJqyDyXf-D-3k>9-!kez0_6iitW3!D%w!SwV>Da|m=px9;JPIyab|8- zXfBv6oW3=rkyj46J)n5Y`-oE_&k63I2434D6gicb=OuXqVA|9HI{FwEk84`FSS(1= zy*(_}foGy@DX>W$;0>8PXTxSgkER1 zw|F8$3!HDwNzptD=r4JyYEU77 zs`2Z9l_dk1BL;0^^%-fc5No@XwhhDhRWLqdt3zF~$X1AN=l$n()_E}OAz0R2)coEC ztp24BeXm5F)jKR15E4&Nkvs>GzZ%lWBXDVN2tM-y6e9{Q{s6pQ9D+_5P`(Mlb_ArS zKrlAK`v!Ol=Rtq@u$ac`x%HSg&yEDK%A#bevqcKE6mfc6SN-ExElr$p6eGB6fDADq z{?7H1+J;PYI=g|W-pCW%O2W!|xuvIRQau0**Ed1&D?AvD9&<7rHJd*VTW3r0JzpkY z+?L&BJV0rlcLHkSu!ZiVbtiem%!a;dmE+BI8f`l~Ur7%t&Qf;2&#Dvo{3<#y^?bLh z`6XRd2B+pRvi(KdN3(Kos@~{_C7?r1gz+trhKw{@#y+VC@bWiT+7)K{N;)NsbvJAN zARIv>UIML81q&WB$jD1}yCDa3+qW=Dm*0RUTr_a$WfK1`nVuQF&h4xaR zDetQ&<}Pj_e`zv>C2j=M0rAY{kG~7uvVm5eBv)_oHRjZkU*$oH)fv#aIH4zWHT~3G z+i;rG-vcB1mA+!r5svEdRspOxe^y4H-g9;ZwSHAx?Af&ipHg4j^3>nOTojENs-1F? z|3SIsE9OQ=hp%7Ue_bkbXH?yu3=+0fh8WCJFJ9bvx2Y<8;Oz9=aFd}WnVPn*S)nad zX+~98%deMveQwv7TsBN;47wO{>EnJI&h3+(+-KpepIhV$(73J%JyVs2_PNNeLk*|L z2UNFn9t!_*w^@(*!n)KDmisgD5X{hGNbO*OZ4^1As+Ohkb~e(UN4K}>>ubppZ)Vltef7{1%Y8E~%PES*ht{RV>xz8Wf1mC8VSWh&BamG#H_gNF zd>by5-I+Ubthp(khI@HySnRNw(Vy_OUIe4R(dTq?_DXG@XUkF3tmm(+GAI7-8@Mpq zO{o1Iy}Nzx@56|1;Xl8>8S|^_&BbP7~&J93NDh z|FqdGVn3usN?A_qkw+Qts|HH|q2m~;SrNWhU`Lxektdlo}EekR#GgR4lvE`m>S8Du;|9eO}HRr4D4+5q`je?{VA3YD-z+ zq{HXd+2PGfvVZP%asPl;qHSh<2YTq$RT(mYRwekTVl)nO%IHM?o>{|GU8OFr$9yp? zpZBsImg}hNk*kd691)Rz5 zl&meyM;>O{5mL61u%-a|hja3u4(kh8I`HcC^bMcBywqQ&B!5z}6(D&OoI@*hS+|Wa znvcerNE3rEe6Y57sgowzY7V*w^WSH9BmVC~SBt1+z=Ch?MsJQR4$#+Ht(F1#UwEVy zpK#EGOzqfW(8hi`qt#&XKr>%*1cLu)g^QKD&q_q}pqQY??k}Bb*mpA-NXC>Ic~Naa$wTh}{NUp>oW2L$QaAzT zCG9gPsk_$T$gS49woQ{SK+DUp@O*pBN$Z^ysq#zx^(K6FWKz&v8p|@qaAvcJ@ zc{Irg=ixsk(Qx~3xmbN^yOXDw3l$+TbBCy$rqpHEL?Ze)gJ>Rn8Z%xTWv>`=1bg;K2 zU}QM#fd(&EG1iR?zVf3~N@8H~f_Th)_x#h!(gz3R0=nLPehvlG@kbTDV!YulQ{`t1 zB-_|b_L0_hV<~6Fl(3QZ+25iKs*2_hpiOfNpHrnZ z_i(2#(Qpj*_?6pPY7yUP{A>d$Erf~cxX~?5H}9P;sM>sQ{8`zheSR&?FeaxHclcn# zg)KopL~BpUItRG>KjPm6pWYT>C#~xX*GlNKI%u2q0PBOa3!D}Hf^7kk6 zr=bwayI`VyD+l8z<16MbK}9*PX^|(cc5ib3^w9?{>;?B-Ua&zq*eJq%U+IRwez#X% zmt{8vF|aPkWpFo(eM!p$w0+BtFCwc+$1#WAfoS1jk*Peqt@5P+1B=unnvmRd1}Ey7 zta8HnYX*RMFNow;4vK_dxJVjA$W*qvHg?+!E?a?#?)*^sT!d9lmLknS)fV7MZ)UPI zZb#UVm{eYCgs-sMSc zL7kiKsZ+m}#kS17Z7UuIX;U}YelQ>3^xdb%QCyI)p9pFdHN9(NVaLjn&>Q4skR=Z| zs(WoEhzIs?8Ehnxc<;D`8H=R>RANk&3^~!1z-R~gIU%u|SVV#6Ul&8QJGmOd(5-|$ z)4|nP&P1K}H(lgaQj$UDn3H;&Ie`!BlwC4KIzy6oONBAGT8O{8lHv*ZMJv4_qLMNK zC}@kJO+|Pr6n|t2DLx-hUCTsey_zmkeN39INZ2Mvb@^0D9L&r~=Z~3^xE%P$!3=3s zQlRLKn+-Kht)vK?^oJH@B3lw?1bA%47AUfaZ@|m;LA9!)h6?8AOR3bHB>@X5c2Gl; zlqHFS#9A*U%#(Y;t>2tT)HC1p_%c3Dl}s&v!qG5NL!H4yp%JDs>)&2Sp(jXby&9T+ z1&y04m1+V?16X0DuD$?9g50PphMEGSelm4Bd-NcafQ4k`_MD@ERTG@M#Hl~FIKU#7 zKvit~Ca8$2hE{^>)s;$B72x9_wM?HTUZoSTBxS~6tT6AKj|oMbi9Rg0oGQe}9fa-( zY2s_3gtdD*UPr}-fQ7wveTw$nOD;V+k$AhpC0aoZ{RTTfdCp~XH&4CO0w(>u5rcNG@#@=jj7_S}gW?xV!O#Hvb4n)NeU=_X3_A9k*iam&`{DcY`J zYVlWZ-s|SUr*r&GYN+SyJk;;q{WcY%(P=$(7SZju%+Q(KiOV0V3V}hr!zG#yg?G0y zMH1(z@5JkD&n;SYd{4-!`LTt4i>DO63h36Tq0_w=Y0k`dI@X;!lYzCOhn1JOo4yTP z0v%7E$_%w#yL2s8sg>dOBt?4}v^^i9IiC{xtUItaH|Ip|cTdUDRh2SoXt~8e*~Y&| z?#>R&pSM41anOYGCuPM@@n?LM)ak$n?CJK1nc-s#CvAg$mcYrwV2KCwo^SQ!nqd~9 zrL$N$v|Zn^WqL9Xk7@f9^=kh5hffVpIXiDJMek7RSKt%N|GFHji{Q$~}w3Wvt@A?^i?Z zUcaIps`mWtV|DL{^-2BJ6%8q#YA8G5w2RZsS6{|qOL?JX0&z!eB;99|&0}5?Au&&(XxWzwNOx!Rp1KWyX7A zWM;nf%1Xs9js~$RuXq&m`$qvPY(2B zjiALdCS&L;eS`Xgz2t^q(*c&2P)%IM}N6S|^+ zs;Z{INAg@1rH0bFsC63`Ghx`fE6RLKBQNmkqb$axULhXSs1Zyua+U1=<+QUv{OpMk zGd~l~>11c#_QDjA0sDkVouAu$OgLY~TzFUi4Lhx4d>-boL|C1FWv2(fs%yy2H)b=0 z$(u%XSWK$A+{0ONPr$}wUz6BRGp5xJzbO>W4N*hWED~utN`1C+jXNWoz}3^N6KT#` zf(GFov)zIQhx0)2&{D23sMFh?fb~3o1yx8*c;TipUS1?x*L=_fS-yfAZkKTG+@DY% z69kg-lafd8r&a+Rf`hy&yM%D%na$w5zl+fO+4_dX^8&Crwq)wAtBpO z^!N`P^v}?bK4c`JhSHs`3Q%Di9(^^`<_$i7&-4cvZBq1gu@tMOyTa&a`124}L4_)ljdTH~99t=fmTUh?=+0v2$np zul*e9!$l74=5`JTO+Vs!isG;={MgUmpY?@(xh6XH)bm7El0}p-{jE_|2dnAi! zL-czVqT!lKRty3*?JUi(HG^#lJX`;Os^m+S>4trK?y=LO{ z8Lx2twoF5iK9z?i-9KP;Zy!B1oTT#+_G{Ssqs|r)uMFG6?+jLjKb%uH7&`)tFVWWf zWESmxeY&nTGooWX*kqSLTR(VH(|td%@wMk2@876oWlF%(k0zEU&%iR!7PfsksCh$~ zKl39+Y*GF_}(TUvJ{VjvcmCYTzC4z z4HB&uz)mMogL9iy>HFN$g8}R`Rrm%qq9sEFi~XVJ0ncXgkpD{YaoP&O%RHGH4)NSU zU|L3kR=*0+z>4VO7MUoh+o8yeD7M01#$)na6E#lty7Ys0-c%8SrWB5| zLxq1NbD#D6+a+TYQQcew>WzqM;y;z6i_q)7zYB&HVM3so^g}h3`XG1HHzk(eZT?5G zS%trin+n@X#Ip!pbW==*a4l@uqX3x>>eG}ja}Q>N?I3+1Og*hK zMPUR^`8@y=xG5-Kw&3avNN@_tLwcYf9AV4GN#YPVeLo6|RsCV0sOyDt4uO@RvB>y9 z)nb?uprX8;WUgu5sUcLsghm(BjX%08`tTs~8SI@}q|UuHqZ(&ZzQGS{;s|Zkee}-YizGCB${9t(yjp2pT&bhK z$Ty5`xz1I))W+EwAiRw%Ag}rnJ?I*q;3Ozuf2_xGG?N{8tm(w;OZchZI)DGN=6?&( zJr&9MlF@$cOx}XJEL5-lV4&isYLH-Kv;(P+Pf21I2Cr^=`MtdnD%Pa+nnK9)!_H7^ zq#2YNUGJ5!AhaMI*+GeRgbh!%5Vtxw5Q>|15z%X}kS%Q=lSSfR%q82UNALRWP#N;; z<8~oL?o))hC4KjG3>^5g=__u-g)bsFY8TvFD~6D$NO=Nngi{v&;Q9{$gG(Md=qZE1 zO^oceJF?C-g+7_-%E-6RfByJ>dX}?Nb^drvO?6~W>|zh;PHww2V)CuVbffLLv+uu8 z!L{_?`=f9XFM8XzH8OrL0z1rRm#7VrT_*&2rg=k|Wb~@z=aVsceu-(<&#Q0nSpb0{ zWNK4%ixGqa96ZWS8!SxZViBS81+i+ws#Vecx*k`g1?u+r!S?o_;+w&P>LZ*j{{I*3 z|G#^9Cp{58_->$5@GZdqadp3VHwK&bM8~?_xOFyqYAG_Pj))s;Igx8_V8bCI!c%L&o=_Q{H-uc;SwIMp#&cZKfWvAZE{h40!SYG_jSRXf_d%v(*4g?Xo3F7R;G>F JO@, >=stealth'}, important line/.style={thick}, dotted line/.style={dotted, thick,red}, dashed line/.style={dashed, thin}, every node/.style={color=black}] \coordinate(O) at (0,0); - \coordinate (y') at (-0.4,0.1); - \coordinate (Py) at (0.6,0.3); - \coordinate (y) at (0.4,0.7); - \coordinate (Z1) at (-0.4,-0.2); - \coordinate (Z2) at (0.8,0.4); - \coordinate (Py') at (-0.28,-0.14); - \draw[axis] (-0.5,0) -- (0.9,0) node(xline)[right] {}; - \draw[axis] (0,-0.3) -- (0,0.7) node(yline)[above] {}; - \draw[important line,blue,thick, ->] (O) -- (Py) node[anchor = north west, text width=2em] {$P y$}; - \draw[important line,blue, ->] (O) -- (y') node[left] {$y'$}; - \draw[important line, thick] (Z1) -- (O) node[right] {}; - \draw[important line, thick] (Py) -- (Z2) node[right] {$S$}; - \draw[important line, blue,->] (O) -- (y) node[right] {$y$}; - \draw[important line, blue,->] (O) -- (Py') node[anchor = north west, text width=5em] {$P y'$}; - \draw[dotted line] (0.54,0.27) -- (0.51,0.33); - \draw[dotted line] (0.57,0.36) -- (0.51,0.33); - \draw[dotted line] (-0.22,-0.11) -- (-0.25,-0.05); - \draw[dotted line] (-0.31,-0.08) -- (-0.25,-0.05); - \draw[dashed line, black] (y) -- (Py); - \draw[dashed line, black] (y') -- (Py'); -\end{tikzpicture} - -\end{document} \ No newline at end of file diff --git a/lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.pdf b/lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d3dbcbebd1ab019814187467a69fadde17dc1b7a GIT binary patch literal 3940 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 V>*P6zPP7)O9rI{tJ8SQRV;u literal 0 HcmV?d00001 diff --git a/lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.png b/lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.png index 14beec84fa56b56988206fbe60eb1782f57b1050..dbf03e5e56df5bf5d513eaa625734209ce94ff6e 100644 GIT binary patch literal 8519 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 JO@^Ru%?> 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 ll$a>Tk)yvo`QM**brl`unrAi<{|7%JF|z;w diff --git a/lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.tex b/lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.tex index 0144581c..18c999e5 100644 --- a/lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.tex +++ b/lectures/_static/lecture_specific/orth_proj/orth_proj_thm2.tex @@ -3,11 +3,9 @@ \usetikzlibrary{arrows.meta, arrows} \begin{document} +%.. tikz:: \begin{tikzpicture} -[scale=5, axis/.style={<->, >=stealth'}, important line/.style={thick}, -dotted line/.style={dotted, thick,red}, dashed line/.style={dashed, thin}, -every node/.style={color=black}] - \coordinate(O) at (0,0); +[scale=5, axis/.style={<->, >=stealth'}, important line/.style={thick}, dotted line/.style={dotted, thick,red}, dashed line/.style={dashed, thin}, every node/.style={color=black}] \coordinate(O) at (0,0); \coordinate (y') at (-0.4,0.1); \coordinate (Py) at (0.6,0.3); \coordinate (y) at (0.4,0.7); @@ -16,18 +14,18 @@ \coordinate (Py') at (-0.28,-0.14); \draw[axis] (-0.5,0) -- (0.9,0) node(xline)[right] {}; \draw[axis] (0,-0.3) -- (0,0.7) node(yline)[above] {}; - \draw[important line, thick] (Z1) -- (O); - \draw[important line, thick] (Py) -- (Z2) node[right] {$S$}; \draw[important line,blue,thick, ->] (O) -- (Py) node[anchor = north west, text width=2em] {$P y$}; \draw[important line,blue, ->] (O) -- (y') node[left] {$y'$}; + \draw[important line, thick] (Z1) -- (O) node[right] {}; + \draw[important line, thick] (Py) -- (Z2) node[right] {$S$}; \draw[important line, blue,->] (O) -- (y) node[right] {$y$}; - \draw[important line,blue,thick, ->] (O) -- (Py'); + \draw[important line, blue,->] (O) -- (Py') node[anchor = north west, text width=5em] {$P y'$}; \draw[dotted line] (0.54,0.27) -- (0.51,0.33); \draw[dotted line] (0.57,0.36) -- (0.51,0.33); \draw[dotted line] (-0.22,-0.11) -- (-0.25,-0.05); \draw[dotted line] (-0.31,-0.08) -- (-0.25,-0.05); \draw[dashed line, black] (y) -- (Py); - \draw[dashed line, black] (y') -- (Py') node[anchor = north west, text width=5em] {$P y'$}; + \draw[dashed line, black] (y') -- (Py'); \end{tikzpicture} \end{document} \ No newline at end of file From 7d89732b5f0f61f8c6758e2430fe0ed17f346eb2 Mon Sep 17 00:00:00 2001 From: Longye Tian <133612246+longye-tian@users.noreply.github.com> Date: Thu, 7 Aug 2025 12:18:44 +1000 Subject: [PATCH 12/17] Update lectures/orth_proj.md Co-authored-by: Matt McKay --- lectures/orth_proj.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index fe4ffcf5..7d9a2f98 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -306,7 +306,8 @@ P y = \sum_{i=1}^k \langle y, u_i \rangle u_i, ``` ``` -```{prf:proof} Fix $y \in \mathbb{R}^n$ and let $P y$ be defined as in {eq}`exp_for_op`. +```{prf:proof} +Fix $y \in \mathbb{R}^n$ and let $P y$ be defined as in {eq}`exp_for_op`. Clearly, $P y \in S$. From 57b8fc7f3f414eade49e240264a23f25e524ddf5 Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Thu, 7 Aug 2025 12:21:18 +1000 Subject: [PATCH 13/17] Update orth_proj.md --- lectures/orth_proj.md | 1 + 1 file changed, 1 insertion(+) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index ca83ea95..30fcc701 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -193,6 +193,7 @@ In what follows we denote this operator by a matrix $P$ The operator $P$ is called the **orthogonal projection mapping onto** $S$. ```{figure} /_static/lecture_specific/orth_proj/orth_proj_thm2.png +:scale: 75% ``` From 8c72e6c91e79e072cf065a1b61b09e0f99e34773 Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Thu, 7 Aug 2025 12:23:27 +1000 Subject: [PATCH 14/17] Update orth_proj.md --- lectures/orth_proj.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index 1646f35d..52bf9528 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -616,7 +616,9 @@ Here are some more standard definitions: * The **sum of squared residuals** is $:= \| \hat u \|^2$. * The **explained sum of squares** is $:= \| \hat y \|^2$. -> TSS = ESS + SSR +$$ +\text{TSS} = \text{ESS} + \text{SSR} +$$ We can prove this easily using the {prf:ref}`opt`. From 850cfbdf62b12ac7c981c97ef612a61a52ddc627 Mon Sep 17 00:00:00 2001 From: mmcky Date: Thu, 7 Aug 2025 12:33:09 +1000 Subject: [PATCH 15/17] fix previous prf environment due to nested math directive --- lectures/orth_proj.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index 7d9a2f98..f601ca11 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -293,7 +293,7 @@ Combining this result with {eq}`pob` verifies the claim. When a subspace onto which we project is orthonormal, computing the projection simplifies: -```{prf:theorem} +````{prf:theorem} If $\{u_1, \ldots, u_k\}$ is an orthonormal basis for $S$, then @@ -304,7 +304,7 @@ P y = \sum_{i=1}^k \langle y, u_i \rangle u_i, \quad \forall \; y \in \mathbb R^n ``` -``` +```` ```{prf:proof} Fix $y \in \mathbb{R}^n$ and let $P y$ be defined as in {eq}`exp_for_op`. From cbd60462e4386dd9a97f0de352384c090d026202 Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Thu, 7 Aug 2025 13:13:21 +1000 Subject: [PATCH 16/17] Update orth_proj.md --- lectures/orth_proj.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index c3bafeb4..2d19d29f 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -193,7 +193,7 @@ In what follows we denote this operator by a matrix $P$ The operator $P$ is called the **orthogonal projection mapping onto** $S$. ```{figure} /_static/lecture_specific/orth_proj/orth_proj_thm2.png -:scale: 75% +:scale: 65% ``` From 0d1847f10592ec5653bdd8ccefa1f323e7a76723 Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Thu, 7 Aug 2025 17:11:57 +1000 Subject: [PATCH 17/17] Update additive_functionals.md --- lectures/additive_functionals.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lectures/additive_functionals.md b/lectures/additive_functionals.md index 5dae78cb..326fb085 100644 --- a/lectures/additive_functionals.md +++ b/lectures/additive_functionals.md @@ -77,7 +77,7 @@ import matplotlib.pyplot as plt from scipy.stats import norm, lognorm ``` -## A Particular Additive Functional +## A particular additive functional {cite}`Hansen_2012_Eca` describes a general class of additive functionals. @@ -123,7 +123,7 @@ initial condition for $y$. The nonstationary random process $\{y_t\}_{t=0}^\infty$ displays systematic but random *arithmetic growth*. -### Linear State-Space Representation +### Linear state-space representation A convenient way to represent our additive functional is to use a [linear state space system](https://python-intro.quantecon.org/linear_models.html). @@ -872,7 +872,7 @@ Notice tell-tale signs of these probability coverage shaded areas * the green one for the stationary component $s_t$ converges to a constant band -### Associated Multiplicative Functional +### Associated multiplicative functional Where $\{y_t\}$ is our additive functional, let $M_t = \exp(y_t)$. @@ -929,7 +929,7 @@ It is interesting to how the martingale behaves as $T \rightarrow +\infty$. Let's see what happens when we set $T = 12000$ instead of $150$. -### Peculiar Large Sample Property +### Peculiar large sample property Hansen and Sargent {cite}`Hans_Sarg_book` (ch. 8) describe the following two properties of the martingale component $\widetilde M_t$ of the multiplicative decomposition @@ -958,7 +958,7 @@ It remains constant at unity, illustrating the first property. The purple 95 percent frequency coverage interval collapses around zero, illustrating the second property. -## More About the Multiplicative Martingale +## More about the multiplicative martingale Let's drill down and study probability distribution of the multiplicative martingale $\{\widetilde M_t\}_{t=0}^\infty$ in more detail. @@ -973,7 +973,7 @@ where $H = [F + D(I-A)^{-1} B]$. It follows that $\log {\widetilde M}_t \sim {\mathcal N} ( -\frac{t H \cdot H}{2}, t H \cdot H )$ and that consequently ${\widetilde M}_t$ is log normal. -### Simulating a Multiplicative Martingale Again +### Simulating a multiplicative martingale again Next, we want a program to simulate the likelihood ratio process $\{ \tilde{M}_t \}_{t=0}^\infty$. @@ -984,7 +984,7 @@ After accomplishing this, we want to display and study histograms of $\tilde{M}_ Here is code that accomplishes these tasks. -### Sample Paths +### Sample paths Let's write a program to simulate sample paths of $\{ x_t, y_{t} \}_{t=0}^{\infty}$. @@ -1257,7 +1257,7 @@ These probability density functions help us understand mechanics underlying the * Enough mass moves toward the right tail to keep $E \widetilde M_T = 1$ even as most mass in the distribution of $\widetilde M_T$ collapses around $0$. -### Multiplicative Martingale as Likelihood Ratio Process +### Multiplicative martingale as likelihood ratio process [This lecture](https://python.quantecon.org/likelihood_ratio_process.html) studies **likelihood processes** and **likelihood ratio processes**.