1. Ax=b下的最值问题-图形转换
假设我们有一个直线方程如下:
3
x
1
+
4
x
2
=
1
\begin{equation} 3x_1+4x_2=1 \end{equation}
3x1+4x2=1
在二维平面上,各个范数如下:
min
∣
∣
x
∣
∣
1
=
∣
x
1
∣
+
∣
x
2
∣
,
min
∣
∣
x
∣
∣
2
=
x
1
2
+
x
2
2
,
min
∣
∣
x
∣
∣
∞
=
max
∣
x
i
∣
\begin{equation} \min||x||_1=|x_1|+|x_2|,\min||x||_2=x_1^2+x_2^2,\min||x||_{\infty}=\max|x_i| \end{equation}
min∣∣x∣∣1=∣x1∣+∣x2∣,min∣∣x∣∣2=x12+x22,min∣∣x∣∣∞=max∣xi∣
- L1范数是一个膨胀的钻石形状,L2范数是一个膨胀的圆形,
L
∞
L_{\infty}
L∞是一个膨胀的正方形
- 那么在Ax=b约束条件下的最小值问题可以转换为范数图像与约束条件 A x = b Ax=b Ax=b组成图像的第一个相交的点。
- L1与直线相交A点,L2与直线相交B点,L3与直线相交C点,这样就可以通过几何图形的方式求得在约束条件下的最小值问题了,用函数图像代替约束条件方程Ax=b,用范数表示不同情况下的最值问题。真神奇!!!
2. Gram-Schmidt 标准形
通过Gram-Schmidt
可以将矩阵A分解如下
A
=
Q
R
A=QR
A=QR。
我们有一个矩阵A的列向量组,发现矩阵A的列向量之间不是相互正交的,如果列向量之间不是相互正交独立,那么就无法用最简单的形式去表达其他的向量,所以我们就用Gram-Schmidt
,将原来的
a
1
,
a
2
a_1,a_2
a1,a2转换成
q
1
,
q
2
,
q
1
⊥
q
2
,
∣
q
1
∣
=
∣
q
2
∣
=
1
q_1,q_2,q_1\perp q_2,|q_1|=|q_2|=1
q1,q2,q1⊥q2,∣q1∣=∣q2∣=1 ,Gram-Schmidt
用的方法很简单,
- 先选择一个向量
a
1
a_1
a1,直接以这个向量作为第一个方向,正交化得到
q
1
q_1
q1
q 1 = a 1 ∣ a 1 ∣ , ∣ q 1 ∣ = 1 \begin{equation} q_1=\frac{a_1}{|a_1|},|q_1|=1 \end{equation} q1=∣a1∣a1,∣q1∣=1 - 现在
a
2
a_2
a2与
q
1
q_1
q1不正交,我们就要将
a
2
a_2
a2投影到
q
1
q_1
q1上得到投影向量
p
2
p_2
p2,再用
a
2
−
p
2
=
A
2
a_2-p_2=A_2
a2−p2=A2
q 1 T a 2 = ∣ q 1 ∣ ∣ a 2 ∣ cos θ = ∣ a 2 ∣ cos θ , a 2 在 q 1 上的投影长度出来了 \begin{equation} q_1^Ta_2=|q_1||a_2|\cos{\theta}=|a_2|\cos{\theta},a_2在q_1上的投影长度出来了 \end{equation} q1Ta2=∣q1∣∣a2∣cosθ=∣a2∣cosθ,a2在q1上的投影长度出来了 - 投影长度乘以单位向量得到
p
2
p_2
p2,向量相减得到
A
2
A_2
A2
p 2 = q 1 T a 2 q 1 , A 2 = a 2 − p 2 → A 2 = a 2 − q 1 T a 2 q 1 → q 2 = A 2 ∣ A 2 ∣ \begin{equation} p_2=q_1^Ta_2q_1,A_2=a_2-p_2\rightarrow A_2=a_2-q_1^Ta_2q_1\rightarrow q_2=\frac{A_2}{|A_2|} \end{equation} p2=q1Ta2q1,A2=a2−p2→A2=a2−q1Ta2q1→q2=∣A2∣A2 - 同理
q
3
q_3
q3就是将向量
a
3
a_3
a3减去
a
3
a_3
a3在
q
1
,
q
2
q_1,q_2
q1,q2上的投影向量
p
2
,
p
3
p_2,p_3
p2,p3即可得到
A
3
A_3
A3
p 3 = q 1 T a 3 q 1 , p 2 = q 2 T a 3 q 2 → A 3 = a 3 − q 1 T a 3 q 1 − p 2 = q 2 T a 3 q 2 \begin{equation} p_3=q_1^Ta_3q_1,p_2=q_2^Ta_3q_2\rightarrow A_3=a_3-q_1^Ta_3q_1-p_2=q_2^Ta_3q_2 \end{equation} p3=q1Ta3q1,p2=q2Ta3q2→A3=a3−q1Ta3q1−p2=q2Ta3q2
所以Gram-Schmidt
的本质是从A中的列向量中不断抽取向量 a 1 , a 2 , ⋯ , a n a_1,a_2,\cdots,a_n a1,a2,⋯,an通过不断迭代的形式,得到一组标准正交向量组 q 1 , q 2 , ⋯ , q n q_1,q_2,\cdots,q_n q1,q2,⋯,qn, - 但我们发现一个问题,我们怎么选择向量
a
1
,
a
2
,
⋯
,
a
n
a_1,a_2,\cdots,a_n
a1,a2,⋯,an呢?如果
a
1
,
a
2
,
⋯
,
a
n
a_1,a_2,\cdots,a_n
a1,a2,⋯,an太相关了怎么办,这样正交化的效果不是很好,如下所示:我们希望选择好的向量
a
12
,
a
22
a_{12},a_{22}
a12,a22而不是相关性太大的
a
11
,
a
21
a_{11},a_{21}
a11,a21
- 那怎么做了,我们只需要在每次选择新的向量的时候,选择投影p较小的向量作为正交向量,比如我们先找到 a 1 → q 1 a_1\rightarrow q_1 a1→q1再找 q 2 q_2 q2 过程中我们需要筛选,将 a 2 , a 3 , ⋯ , a n a_2,a_3,\cdots,a_n a2,a3,⋯,an都投影到 q 1 q_1 q1上,看看哪个投影长度最小,我们就选择这个作为 A 2 → q 2 A_2\rightarrow q_2 A2→q2
- 从
p
21
,
p
31
,
⋯
,
p
n
1
p_{21},p_{31},\cdots,p_{n1}
p21,p31,⋯,pn1中选择最小的一个作为
A
2
→
q
2
A_2\rightarrow q_2
A2→q2
p 21 = q 1 T a 2 q 1 , p 31 = q 1 T a 3 q 1 , ⋯ p n 1 = q 1 T a n q 1 \begin{equation} p_{21}=q_1^Ta_2q_1,p_{31}=q_1^Ta_3q_1,\cdots p_{n1}=q_1^Ta_nq_1 \end{equation} p21=q1Ta2q1,p31=q1Ta3q1,⋯pn1=q1Tanq1 - 同理依次选择
q
3
,
q
4
,
⋯
,
q
n
q_3,q_4,\cdots,q_n
q3,q4,⋯,qn,这就是改进后的
Gram-Schmidt