From e91ad0e6bfcafc9aed35c9f3d8c43902ebc5981f Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Sat, 2 Aug 2025 21:39:18 +1000 Subject: [PATCH 01/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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 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 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/19] 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 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 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 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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 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/19] 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/19] 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/19] 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/19] 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/19] 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 73ba54b7089cc16f33f577e955a26a19b49b724b Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Thu, 7 Aug 2025 15:08:58 +1000 Subject: [PATCH 17/19] Update lectures/orth_proj.md --- 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 2d19d29f..78d42252 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -352,7 +352,8 @@ P = X (X'X)^{-1} X' $$ ``` -```{prf: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$ From c401340ba8820691d4b2cf954a494093a0dbf898 Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Thu, 7 Aug 2025 15:09:31 +1000 Subject: [PATCH 18/19] Update lectures/orth_proj.md --- 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 78d42252..5651c01e 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -460,7 +460,8 @@ $$ $$ ``` -```{prf:proof} Note that +```{prf:proof} +Note that $$ X \hat \beta = X (X' X)^{-1} X' y = From 0be67463222c07abaee8f476a9cfbe8c7f39f75a Mon Sep 17 00:00:00 2001 From: Longye Tian Date: Thu, 7 Aug 2025 18:53:11 +1000 Subject: [PATCH 19/19] update subtitles --- lectures/orth_proj.md | 46 +++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/lectures/orth_proj.md b/lectures/orth_proj.md index 5651c01e..f9a88298 100644 --- a/lectures/orth_proj.md +++ b/lectures/orth_proj.md @@ -48,7 +48,7 @@ import numpy as np from scipy.linalg import qr ``` -### Further Reading +### Further reading For background and foundational concepts, see our lecture [on linear algebra](https://python-intro.quantecon.org/linear_algebra.html). @@ -58,7 +58,7 @@ For a complete set of proofs in a general setting, see, for example, {cite}`Roma For an advanced treatment of projection in the context of least squares prediction, see [this book chapter](http://www.tomsargent.com/books/TOMchpt.2.pdf). -## Key Definitions +## Key definitions Assume $x, z \in \mathbb R^n$. @@ -117,7 +117,7 @@ $$ = \| x_1 \|^2 + \| x_2 \|^2 $$ -### Linear Independence vs Orthogonality +### Linear independence vs orthogonality If $X \subset \mathbb R^n$ is an orthogonal set and $0 \notin X$, then $X$ is linearly independent. @@ -125,7 +125,7 @@ Proving this is a nice exercise. While the converse is not true, a kind of partial converse holds, as we'll {ref}`see below `. -## The Orthogonal Projection Theorem +## The orthogonal projection theorem What vector within a linear subspace of $\mathbb R^n$ best approximates a given vector in $\mathbb R^n$? @@ -155,7 +155,7 @@ The next figure provides some intuition ``` -### Proof of Sufficiency +### Proof of sufficiency We'll omit the full proof. @@ -175,7 +175,7 @@ $$ Hence $\| y - z \| \geq \| y - \hat y \|$, which completes the proof. -### Orthogonal Projection as a Mapping +### Orthogonal projection as a mapping For a linear space $Y$ and a fixed linear subspace $S$, we have a functional relationship @@ -209,7 +209,7 @@ From this, we can deduce additional useful properties, such as For example, to prove 1, observe that $y = P y + y - P y$ and apply the Pythagorean law. -#### Orthogonal Complement +#### Orthogonal complement Let $S \subset \mathbb R^n$. @@ -250,7 +250,7 @@ The next figure illustrates ``` -## Orthonormal Basis +## Orthonormal basis An orthogonal set of vectors $O \subset \mathbb R^n$ is called an **orthonormal set** if $\| u \| = 1$ for all $u \in O$. @@ -290,7 +290,7 @@ $$ Combining this result with {eq}`pob` verifies the claim. -### Projection onto an Orthonormal Basis +### Projection onto an orthonormal basis When a subspace onto which we project is orthonormal, computing the projection simplifies: @@ -328,7 +328,7 @@ $$ (Why is this sufficient to establish the claim that $y - P y \perp S$?) -## Projection Via Matrix Algebra +## Projection via matrix algebra Let $S$ be a linear subspace of $\mathbb R^n$ and let $y \in \mathbb R^n$. @@ -389,7 +389,7 @@ $$ The proof is now complete. ``` -### Starting with the Basis +### Starting with the basis It is common in applications to start with $n \times k$ matrix $X$ with linearly independent columns and let @@ -405,7 +405,7 @@ In this context, $P$ is often called the **projection matrix** * The matrix $M = I - P$ satisfies $M y = \hat E_{S^{\perp}} y$ and is sometimes called the **annihilator matrix**. -### The Orthonormal Case +### The orthonormal case Suppose that $U$ is $n \times k$ with orthonormal columns. @@ -430,7 +430,7 @@ $$ We have recovered our earlier result about projecting onto the span of an orthonormal basis. -### Application: Overdetermined Systems of Equations +### Application: overdetermined systems of equations Let $y \in \mathbb R^n$ and let $X$ be $n \times k$ with linearly independent columns. @@ -485,7 +485,7 @@ $$ This is what we aimed to show. ``` -## Least Squares Regression +## Least squares regression Let's apply the theory of orthogonal projection to least squares regression. @@ -493,7 +493,7 @@ This approach provides insights about many geometric properties of linear regres We treat only some examples. -### Squared Risk Measures +### Squared risk measures Given pairs $(x, y) \in \mathbb R^K \times \mathbb R$, consider choosing $f \colon \mathbb R^K \to \mathbb R$ to minimize the **risk** @@ -628,7 +628,7 @@ 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. -## Orthogonalization and Decomposition +## Orthogonalization and decomposition Let's return to the connection between linear independence and orthogonality touched on above. @@ -637,7 +637,7 @@ A result of much interest is a famous algorithm for constructing orthonormal set The next section gives details. (gram_schmidt)= -### Gram-Schmidt Orthogonalization +### Gram-Schmidt orthogonalization ```{prf:theorem} @@ -666,7 +666,7 @@ A Gram-Schmidt orthogonalization construction is a key idea behind the Kalman fi In some exercises below, you are asked to implement this algorithm and test it using projection. -### QR Decomposition +### QR decomposition The following result uses the preceding algorithm to produce a useful decomposition. @@ -694,7 +694,7 @@ $$ Some rearranging gives $X = Q R$. ``` -### Linear Regression via QR Decomposition +### Linear regression via QR decomposition For matrices $X$ and $y$ that overdetermine $\beta$ in the linear equation system $y = X \beta$, we found the least squares approximator $\hat \beta = (X' X)^{-1} X' y$. @@ -749,9 +749,13 @@ intuition as to why they should be idempotent? ``` Symmetry and idempotence of $M$ and $P$ can be established -using standard rules for matrix algebra. The intuition behind +using standard rules for matrix algebra. + +The intuition behind idempotence of $M$ and $P$ is that both are orthogonal -projections. After a point is projected into a given subspace, applying +projections. + +After a point is projected into a given subspace, applying the projection again makes no difference (A point inside the subspace is not shifted by orthogonal projection onto that space because it is already the closest point in the subspace to itself).