增广矩阵是将系数矩阵 A A A 与常数项向量 b b b 并在一起形成的矩阵,记作 [ A ∣ b ] [A|b] [A∣b]。
例如,对于线性方程组:
{ x + 2 y = 5 3 x − y = 1 \begin{cases} x + 2y = 5 \\ 3x - y = 1 \end{cases} {x+2y=53x−y=1
其增广矩阵为:
[ A ∣ b ] = ( 1 2 ∣ 5 3 − 1 ∣ 1 ) [A|b] = \begin{pmatrix} 1 & 2 & | & 5 \\ 3 & -1 & | & 1 \end{pmatrix} [A∣b]=(132−1∣∣51)
秩的关系:
设 A A A 为 m × n m \times n m×n 的系数矩阵, [ A ∣ b ] [A|b] [A∣b] 为增广矩阵,则:
r a n k ( A ) ≤ r a n k ( [ A ∣ b ] ) ≤ r a n k ( A ) + 1 rank(A) \leq rank([A|b]) \leq rank(A) + 1 rank(A)≤rank([A∣b])≤rank(A)+1
克拉默法则:
当 r a n k ( A ) = r a n k ( [ A ∣ b ] ) = n rank(A) = rank([A|b]) = n rank(A)=rank([A∣b])=n 时,方程组有唯一解。
有解的充要条件:
r a n k ( A ) = r a n k ( [ A ∣ b ] ) rank(A) = rank([A|b]) rank(A)=rank([A∣b])
考虑方程组:
{ x + y = 3 2 x − y = 1 \begin{cases} x + y = 3 \\ 2x - y = 1 \end{cases} {x+y=32x−y=1
增广矩阵:
[ A ∣ b ] = ( 1 1 ∣ 3 2 − 1 ∣ 1 ) [A|b] = \begin{pmatrix} 1 & 1 & | & 3 \\ 2 & -1 & | & 1 \end{pmatrix} [A∣b]=(121−1∣∣31)
解法步骤:
R 2 → R 2 − 2 R 1 R_2 \rightarrow R_2 - 2R_1 R2→R2−2R1:
( 1 1 ∣ 3 0 − 3 ∣ − 5 ) \begin{pmatrix} 1 & 1 & | & 3 \\ 0 & -3 & | & -5 \end{pmatrix} (101−3∣∣3−5)
得到:
考虑方程组:
{ x + y = 2 2 x + 2 y = 3 \begin{cases} x + y = 2 \\ 2x + 2y = 3 \end{cases} {x+y=22x+2y=3
增广矩阵:
[ A ∣ b ] = ( 1 1 ∣ 2 2 2 ∣ 3 ) [A|b] = \begin{pmatrix} 1 & 1 & | & 2 \\ 2 & 2 & | & 3 \end{pmatrix} [A∣b]=(1212∣∣23)
解法步骤:
这里 r a n k ( A ) = 1 rank(A) = 1 rank(A)=1,但 r a n k ( [ A ∣ b ] ) = 2 rank([A|b]) = 2 rank([A∣b])=2,所以方程组无解。
考虑方程组:
{ x + y = 3 2 x + 2 y = 6 \begin{cases} x + y = 3 \\ 2x + 2y = 6 \end{cases} {x+y=32x+2y=6
增广矩阵:
[ A ∣ b ] = ( 1 1 ∣ 3 2 2 ∣ 6 ) [A|b] = \begin{pmatrix} 1 & 1 & | & 3 \\ 2 & 2 & | & 6 \end{pmatrix} [A∣b]=(1212∣∣36)
解法步骤:
这里 r a n k ( A ) = r a n k ( [ A ∣ b ] ) = 1 < n rank(A) = rank([A|b]) = 1 < n rank(A)=rank([A∣b])=1<n,所以有无穷多解。
解为: x + y = 3 x + y = 3 x+y=3,可表示为 x = t x = t x=t, y = 3 − t y = 3-t y=3−t, t t t 为任意实数。
电路分析:
解电路方程组时使用增广矩阵求解节点电压。
经济学:
解决投入产出模型中的均衡方程。
计算机图形学:
解决坐标变换和投影问题。
判断解的情况:
化简方法:
验证步骤:
理论价值:
实践意义:
注意事项:
增广矩阵是解决线性方程组的重要工具,通过理解和掌握增广矩阵的性质和应用,可以更有效地解决实际问题。
城市有3个主要路口,需要分析各个方向的交通流量以保持平衡。
路口1: x + y = 1000 (南北向 + 东西向 = 总流量)
路口2: 2x - y = 500 (双向南北 - 东西向 = 观测值)
路口3: x + 2y = 1500 (南北向 + 双向东西 = 总流量)
[ A ∣ b ] = ( 1 1 ∣ 1000 2 − 1 ∣ 500 1 2 ∣ 1500 ) [A|b] = \begin{pmatrix} 1 & 1 & | & 1000 \\ 2 & -1 & | & 500 \\ 1 & 2 & | & 1500 \end{pmatrix} [A∣b]= 1211−12∣∣∣10005001500
一家工厂生产两种产品,需要计算最优生产方案。
原料约束: 2x + 3y = 600 (两种产品的原料使用)
人力约束: x + 2y = 400 (两种产品的人力需求)
[ A ∣ b ] = ( 2 3 ∣ 600 1 2 ∣ 400 ) [A|b] = \begin{pmatrix} 2 & 3 & | & 600 \\ 1 & 2 & | & 400 \end{pmatrix} [A∣b]=(2132∣∣600400)
分析包含三个节点的电路网络。
节点1: I1 + I2 = 5A
节点2: I2 - I3 = 2A
节点3: I1 + I3 = 3A
[ A ∣ b ] = ( 1 1 0 ∣ 5 0 1 − 1 ∣ 2 1 0 1 ∣ 3 ) [A|b] = \begin{pmatrix} 1 & 1 & 0 & | & 5 \\ 0 & 1 & -1 & | & 2 \\ 1 & 0 & 1 & | & 3 \end{pmatrix} [A∣b]= 1011100−11∣∣∣523
食品厂需要配制一种产品,满足多种营养需求。
蛋白质: 2x + y = 30g
脂肪: x + y = 20g
糖分: x + 2y = 25g
[ A ∣ b ] = ( 2 1 ∣ 30 1 1 ∣ 20 1 2 ∣ 25 ) [A|b] = \begin{pmatrix} 2 & 1 & | & 30 \\ 1 & 1 & | & 20 \\ 1 & 2 & | & 25 \end{pmatrix} [A∣b]= 211112∣∣∣302025
系统性
直观性
实用性
灵活性
建模阶段
求解阶段
应用阶段
增广矩阵的实际意义在于:
通过这些案例,我们可以看到增广矩阵不仅是一个数学工具,更是解决实际问题的有效方法。它帮助我们将复杂问题简化,使解决方案更加清晰和系统化。
在化学方程式配平中,我们需要确定各个系数使得反应物和生成物的原子数目相等。这是一个典型的增广矩阵应用场景。
考虑以下未配平的氧化还原反应方程式:
KMnO₄ + HCl → KCl + MnCl₂ + H₂O + Cl₂
元素守恒方程:
对于元素 i i i,设各化合物系数为 x j x_j xj,则:
∑ j a i j x j = 0 \sum_{j} a_{ij}x_j = 0 j∑aijxj=0
其中 a i j a_{ij} aij 为化合物 j j j 中元素 i i i 的原子数。
电荷守恒方程:
∑ j c j x j = 0 \sum_{j} c_jx_j = 0 j∑cjxj=0
其中 c j c_j cj 为化合物 j j j 的电荷。
设未知系数:
按K、Mn、O、H、Cl顺序列出方程:
[ A ∣ b ] = ( 1 0 − 1 0 0 0 ∣ 0 1 0 0 − 1 0 0 ∣ 0 4 0 0 0 − 1 0 ∣ 0 0 1 0 0 − 2 0 ∣ 0 0 1 − 1 − 2 0 − 2 ∣ 0 ) [A|b] = \begin{pmatrix} 1 & 0 & -1 & 0 & 0 & 0 & | & 0 \\ 1 & 0 & 0 & -1 & 0 & 0 & | & 0 \\ 4 & 0 & 0 & 0 & -1 & 0 & | & 0 \\ 0 & 1 & 0 & 0 & -2 & 0 & | & 0 \\ 0 & 1 & -1 & -2 & 0 & -2 & | & 0 \end{pmatrix} [A∣b]= 1140000011−1000−10−100−200−1−200000−2∣∣∣∣∣00000
考虑离子电荷:
扩展增广矩阵:
[ A ∣ b ] = ( 1 0 − 1 0 0 0 ∣ 0 1 0 0 − 1 0 0 ∣ 0 4 0 0 0 − 1 0 ∣ 0 0 1 0 0 − 2 0 ∣ 0 0 1 − 1 − 2 0 − 2 ∣ 0 − 1 0 0 0 0 0 ∣ 0 ) [A|b] = \begin{pmatrix} 1 & 0 & -1 & 0 & 0 & 0 & | & 0 \\ 1 & 0 & 0 & -1 & 0 & 0 & | & 0 \\ 4 & 0 & 0 & 0 & -1 & 0 & | & 0 \\ 0 & 1 & 0 & 0 & -2 & 0 & | & 0 \\ 0 & 1 & -1 & -2 & 0 & -2 & | & 0 \\ -1 & 0 & 0 & 0 & 0 & 0 & | & 0 \end{pmatrix} [A∣b]= 11400−1000110−1000−100−100−2000−1−2000000−20∣∣∣∣∣∣000000
通过高斯消元法求解:
首先将第一个方程中的 x 1 x_1 x1 作为主元:
( 1 0 − 1 0 0 0 ∣ 0 0 0 1 − 1 0 0 ∣ 0 0 0 4 0 − 1 0 ∣ 0 0 1 0 0 − 2 0 ∣ 0 0 1 − 1 − 2 0 − 2 ∣ 0 − 1 0 0 0 0 0 ∣ 0 ) \begin{pmatrix} 1 & 0 & -1 & 0 & 0 & 0 & | & 0 \\ 0 & 0 & 1 & -1 & 0 & 0 & | & 0 \\ 0 & 0 & 4 & 0 & -1 & 0 & | & 0 \\ 0 & 1 & 0 & 0 & -2 & 0 & | & 0 \\ 0 & 1 & -1 & -2 & 0 & -2 & | & 0 \\ -1 & 0 & 0 & 0 & 0 & 0 & | & 0 \end{pmatrix} 10000−1000110−1140−100−100−2000−1−2000000−20∣∣∣∣∣∣000000
继续消元得到最简形式…
得到配平系数:
2KMnO₄ + 16HCl → 2KCl + 2MnCl₂ + 8H₂O + 5Cl₂
验证各元素数量:
化学反应分析
工业生产指导
教学应用
氧化还原反应特点
配平技巧
实际应用注意事项
方法优势
实践价值
发展方向
这个案例展示了增广矩阵在化学反应配平中的应用,与前面的案例相比,涉及了不同的知识点:
某农场计划种植三种农作物(水稻、玉米、大豆),需要考虑以下限制条件:
已知三种作物的单位资源需求和预期收益:
作物 | 土地(公顷) | 用水(立方米/公顷) | 劳动力(小时/公顷) | 收益(万元/公顷) |
---|---|---|---|---|
水稻 | 1 | 60 | 18 | 2.4 |
玉米 | 1 | 45 | 12 | 1.8 |
大豆 | 1 | 35 | 15 | 1.5 |
设种植面积分别为 x 1 x_1 x1, x 2 x_2 x2, x 3 x_3 x3 公顷,建立线性规划模型:
最大化总收益:
Z = 2.4 x 1 + 1.8 x 2 + 1.5 x 3 Z = 2.4x_1 + 1.8x_2 + 1.5x_3 Z=2.4x1+1.8x2+1.5x3
约束条件:
{ x 1 + x 2 + x 3 = 300 (土地约束) 60 x 1 + 45 x 2 + 35 x 3 ≤ 15000 (用水约束) 18 x 1 + 12 x 2 + 15 x 3 ≤ 4500 (劳动力约束) x 1 , x 2 , x 3 ≥ 0 (非负约束) \begin{cases} x_1 + x_2 + x_3 = 300 & \text{(土地约束)}\\ 60x_1 + 45x_2 + 35x_3 \leq 15000 & \text{(用水约束)}\\ 18x_1 + 12x_2 + 15x_3 \leq 4500 & \text{(劳动力约束)}\\ x_1, x_2, x_3 \geq 0 & \text{(非负约束)} \end{cases} ⎩ ⎨ ⎧x1+x2+x3=30060x1+45x2+35x3≤1500018x1+12x2+15x3≤4500x1,x2,x3≥0(土地约束)(用水约束)(劳动力约束)(非负约束)
添加松弛变量 s 1 s_1 s1, s 2 s_2 s2 后:
{ x 1 + x 2 + x 3 = 300 60 x 1 + 45 x 2 + 35 x 3 + s 1 = 15000 18 x 1 + 12 x 2 + 15 x 3 + s 2 = 4500 \begin{cases} x_1 + x_2 + x_3 = 300\\ 60x_1 + 45x_2 + 35x_3 + s_1 = 15000\\ 18x_1 + 12x_2 + 15x_3 + s_2 = 4500\\ \end{cases} ⎩ ⎨ ⎧x1+x2+x3=30060x1+45x2+35x3+s1=1500018x1+12x2+15x3+s2=4500
写出增广矩阵:
[ 1 1 1 0 0 300 60 45 35 1 0 15000 18 12 15 0 1 4500 ] \begin{bmatrix} 1 & 1 & 1 & 0 & 0 & 300\\ 60 & 45 & 35 & 1 & 0 & 15000\\ 18 & 12 & 15 & 0 & 1 & 4500 \end{bmatrix} 160181451213515010001300150004500
选取主元列
初等行变换
首先消去第二行和第三行中的 x 1 x_1 x1项:
R 2 − 60 R 1 R_2 - 60R_1 R2−60R1
R 3 − 18 R 1 R_3 - 18R_1 R3−18R1
得到:
[ 1 1 1 0 0 300 0 − 15 − 25 1 0 − 3000 0 − 6 − 3 0 1 − 900 ] \begin{bmatrix} 1 & 1 & 1 & 0 & 0 & 300\\ 0 & -15 & -25 & 1 & 0 & -3000\\ 0 & -6 & -3 & 0 & 1 & -900 \end{bmatrix} 1001−15−61−25−3010001300−3000−900
继续选取主元和消元…
松弛变量的经济意义
等式约束的处理
资源配置最优化
约束条件的完整性
目标函数的经济含义
这个案例不仅展示了增广矩阵在求解线性规划问题中的应用,还体现了数学建模在农业生产决策中的重要作用。通过逐步求解,可以找到既满足所有资源约束又能实现收益最大化的种植方案。
某城市有一个十字路口,需要优化信号灯配时以减少车辆等待时间。已知:
设变量:
{ 3 t 1 = y 1 (南北向通行能力) 2.5 t 2 = y 2 (东西向通行能力) y 1 ≤ 180 (南北向需求) y 2 ≤ 150 (东西向需求) t 1 + t 2 + 10 = 120 (周期约束) \begin{cases} 3t_1 = y_1 & \text{(南北向通行能力)}\\ 2.5t_2 = y_2 & \text{(东西向通行能力)}\\ y_1 \leq 180 & \text{(南北向需求)}\\ y_2 \leq 150 & \text{(东西向需求)}\\ t_1 + t_2 + 10 = 120 & \text{(周期约束)} \end{cases} ⎩ ⎨ ⎧3t1=y12.5t2=y2y1≤180y2≤150t1+t2+10=120(南北向通行能力)(东西向通行能力)(南北向需求)(东西向需求)(周期约束)
其中10秒为黄灯时间,120秒为信号周期。
添加松弛变量 s 1 s_1 s1, s 2 s_2 s2 并整理:
{ 3 t 1 − y 1 = 0 2.5 t 2 − y 2 = 0 y 1 + s 1 = 180 y 2 + s 2 = 150 t 1 + t 2 = 110 \begin{cases} 3t_1 - y_1 = 0\\ 2.5t_2 - y_2 = 0\\ y_1 + s_1 = 180\\ y_2 + s_2 = 150\\ t_1 + t_2 = 110 \end{cases} ⎩ ⎨ ⎧3t1−y1=02.5t2−y2=0y1+s1=180y2+s2=150t1+t2=110
[ 3 0 − 1 0 0 0 0 0 2.5 0 − 1 0 0 0 0 0 1 0 1 0 180 0 0 0 1 0 1 150 1 1 0 0 0 0 110 ] \begin{bmatrix} 3 & 0 & -1 & 0 & 0 & 0 & 0\\ 0 & 2.5 & 0 & -1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 1 & 0 & 180\\ 0 & 0 & 0 & 1 & 0 & 1 & 150\\ 1 & 1 & 0 & 0 & 0 & 0 & 110 \end{bmatrix} 3000102.5001−101000−1010001000001000180150110
第一步:选择主元
第二步:消元操作
R 5 + ( − 1 3 ) R 1 R_5 + (-\frac{1}{3})R_1 R5+(−31)R1
得到:
[ 3 0 − 1 0 0 0 0 0 2.5 0 − 1 0 0 0 0 0 1 0 1 0 180 0 0 0 1 0 1 150 0 1 1 3 0 0 0 110 ] \begin{bmatrix} 3 & 0 & -1 & 0 & 0 & 0 & 0\\ 0 & 2.5 & 0 & -1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 1 & 0 & 180\\ 0 & 0 & 0 & 1 & 0 & 1 & 150\\ 0 & 1 & \frac{1}{3} & 0 & 0 & 0 & 110 \end{bmatrix} 3000002.5001−1010310−1010001000001000180150110
后续步骤
继续选择主元并进行消元,直到得到简化阶梯形。
多目标优化
时间约束
通行能力系数
实际物理意义
矩阵分块特点
非线性到线性的转化
这个案例展示了增广矩阵在交通工程中的应用,特别强调了:
通过这个例子,我们可以看到增广矩阵不仅是一个数学工具,更是解决实际工程问题的有效方法。
某智能电网系统需要平衡三个发电站(火电、水电、风电)的发电量,以满足两个工业园区的用电需求。系统需要考虑:
发电站最大发电量(兆瓦):
工业园区用电需求(兆瓦):
传输损耗率矩阵(%):
L = [ 5 8 3 4 7 6 ] L = \begin{bmatrix} 5 & 8\\ 3 & 4\\ 7 & 6 \end{bmatrix} L= 537846
对于每个园区,输入功率需要等于需求功率加损耗:
{ 0.95 P 1 A + 0.97 P 2 A + 0.93 P 3 A = D 1 0.92 P 1 B + 0.96 P 2 B + 0.94 P 3 B = D 2 P 1 A + P 1 B ≤ 800 P 2 A + P 2 B ≤ 500 P 3 A + P 3 B ≤ 300 \begin{cases} 0.95P_{1A} + 0.97P_{2A} + 0.93P_{3A} = D_1\\ 0.92P_{1B} + 0.96P_{2B} + 0.94P_{3B} = D_2\\ P_{1A} + P_{1B} \leq 800\\ P_{2A} + P_{2B} \leq 500\\ P_{3A} + P_{3B} \leq 300 \end{cases} ⎩ ⎨ ⎧0.95P1A+0.97P2A+0.93P3A=D10.92P1B+0.96P2B+0.94P3B=D2P1A+P1B≤800P2A+P2B≤500P3A+P3B≤300
其中 P i A P_{iA} PiA表示第i个电站向A园区的供电量。
添加松弛变量 s 1 s_1 s1, s 2 s_2 s2, s 3 s_3 s3后:
{ 0.95 P 1 A + 0.97 P 2 A + 0.93 P 3 A = 900 0.92 P 1 B + 0.96 P 2 B + 0.94 P 3 B = 600 P 1 A + P 1 B + s 1 = 800 P 2 A + P 2 B + s 2 = 500 P 3 A + P 3 B + s 3 = 300 \begin{cases} 0.95P_{1A} + 0.97P_{2A} + 0.93P_{3A} = 900\\ 0.92P_{1B} + 0.96P_{2B} + 0.94P_{3B} = 600\\ P_{1A} + P_{1B} + s_1 = 800\\ P_{2A} + P_{2B} + s_2 = 500\\ P_{3A} + P_{3B} + s_3 = 300 \end{cases} ⎩ ⎨ ⎧0.95P1A+0.97P2A+0.93P3A=9000.92P1B+0.96P2B+0.94P3B=600P1A+P1B+s1=800P2A+P2B+s2=500P3A+P3B+s3=300
[ 0.95 0.97 0.93 0 0 0 0 0 0 900 0 0 0 0.92 0.96 0.94 0 0 0 600 1 0 0 1 0 0 1 0 0 800 0 1 0 0 1 0 0 1 0 500 0 0 1 0 0 1 0 0 1 300 ] \begin{bmatrix} 0.95 & 0.97 & 0.93 & 0 & 0 & 0 & 0 & 0 & 0 & 900\\ 0 & 0 & 0 & 0.92 & 0.96 & 0.94 & 0 & 0 & 0 & 600\\ 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 800\\ 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 500\\ 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 300 \end{bmatrix} 0.9501000.9700100.93000100.9210000.9601000.94001001000001000001900600800500300
预处理分析
第一步:选择主元
第一轮消元
对第三行进行操作:
R 3 − 1 0.95 R 1 R_3 - \frac{1}{0.95}R_1 R3−0.951R1
得到:
[ 0.95 0.97 0.93 0 0 0 0 0 0 900 0 0 0 0.92 0.96 0.94 0 0 0 600 0 − 1.02 − 0.98 1 0 0 1 0 0 − 147.4 0 1 0 0 1 0 0 1 0 500 0 0 1 0 0 1 0 0 1 300 ] \begin{bmatrix} 0.95 & 0.97 & 0.93 & 0 & 0 & 0 & 0 & 0 & 0 & 900\\ 0 & 0 & 0 & 0.92 & 0.96 & 0.94 & 0 & 0 & 0 & 600\\ 0 & -1.02 & -0.98 & 1 & 0 & 0 & 1 & 0 & 0 & -147.4\\ 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 500\\ 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 300 \end{bmatrix} 0.9500000.970−1.02100.930−0.980100.9210000.9601000.94001001000001000001900600−147.4500300
非整系数矩阵
分块矩阵特征
物理约束的数学表达
系统稳定性考虑
多源多宿问题
效率损耗建模
这个案例展示了增广矩阵在电力系统分析中的应用:
通过这个例子,我们看到了增广矩阵在处理复杂工程问题时的强大功能,特别是在需要同时考虑多个物理约束的情况下。
我们正在训练一个简单的神经网络来预测房价。输入特征包含:
目标是通过最小化预测误差来学习网络权重。
系统性求解
可追踪性
批量处理
# 训练数据示例
X = [
[120, 0.5, 5], # 样本1
[85, 1.2, 10], # 样本2
[150, 0.3, 3] # 样本3
]
y = [350, 220, 420] # 对应房价(万元)
a) 特征标准化
b) 偏置项处理
c) 学习率调整
将训练数据转换为增广矩阵形式:
[ 120 0.5 5 1 350 85 1.2 10 1 220 150 0.3 3 1 420 ] \begin{bmatrix} 120 & 0.5 & 5 & 1 & 350\\ 85 & 1.2 & 10 & 1 & 220\\ 150 & 0.3 & 3 & 1 & 420 \end{bmatrix} 120851500.51.20.35103111350220420
对特征进行标准化:
[ 0.94 − 0.52 − 0.13 1 1.02 − 0.71 1.25 1.15 1 − 0.85 1.48 − 0.73 − 1.02 1 1.58 ] \begin{bmatrix} 0.94 & -0.52 & -0.13 & 1 & 1.02\\ -0.71 & 1.25 & 1.15 & 1 & -0.85\\ 1.48 & -0.73 & -1.02 & 1 & 1.58 \end{bmatrix} 0.94−0.711.48−0.521.25−0.73−0.131.15−1.021111.02−0.851.58
a) 初始状态:
设初始权重向量 w = [ w 1 , w 2 , w 3 , b ] w = [w_1, w_2, w_3, b] w=[w1,w2,w3,b]
b) 迭代更新:
使用增广矩阵进行批量梯度计算:
\begin{bmatrix}
1.02\
-0.85\
1.58
\end{bmatrix}
$$
c) 权重更新公式:
w n e w = w o l d − α A T ( A w o l d − y ) w_{new} = w_{old} - \alpha A^T(Aw_{old} - y) wnew=wold−αAT(Awold−y)
其中 α \alpha α是学习率, A A A是特征矩阵, y y y是目标值向量。
通过残差矩阵范数判断是否收敛:
∥ A w − y ∥ < ϵ \|Aw - y\| < \epsilon ∥Aw−y∥<ϵ
数值稳定性
内存管理
精度控制
特征预处理
实现考虑
特殊情况处理
这个案例展示了增广矩阵在机器学习中的实际应用,特别是在神经网络权重学习过程中的作用。通过系统性的矩阵运算,我们可以高效地实现参数优化,同时保持数值计算的稳定性。
我们正在开发一个基于卷积神经网络(CNN)的手写数字识别系统。为了提高模型的泛化能力,需要对训练图像进行几何变换增强。这些变换包括:
这些几何变换可以通过增广矩阵统一表示和实现。
统一表示
计算效率
可逆性验证
a) 旋转矩阵:
R ( θ ) = [ cos θ − sin θ 0 sin θ cos θ 0 0 0 1 ] R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0\\ \sin\theta & \cos\theta & 0\\ 0 & 0 & 1 \end{bmatrix} R(θ)= cosθsinθ0−sinθcosθ0001
b) 缩放矩阵:
S ( s x , s y ) = [ s x 0 0 0 s y 0 0 0 1 ] S(s_x,s_y) = \begin{bmatrix} s_x & 0 & 0\\ 0 & s_y & 0\\ 0 & 0 & 1 \end{bmatrix} S(sx,sy)= sx000sy0001
c) 平移矩阵:
T ( t x , t y ) = [ 1 0 t x 0 1 t y 0 0 1 ] T(t_x,t_y) = \begin{bmatrix} 1 & 0 & t_x\\ 0 & 1 & t_y\\ 0 & 0 & 1 \end{bmatrix} T(tx,ty)= 100010txty1
坐标系转换
变换顺序
插值策略
def prepare_image(image):
height, width = image.shape
# 构建坐标网格
x = np.arange(width)
y = np.arange(height)
X, Y = np.meshgrid(x, y)
# 转换为齐次坐标
coords = np.stack([X, Y, np.ones_like(X)])
return coords
def build_transform_matrix(angle, scale, tx, ty):
# 中心平移
center = np.array([[1, 0, -width/2],
[0, 1, -height/2],
[0, 0, 1]])
# 组合变换
transform = (T(tx, ty) @
R(angle) @
S(scale, scale) @
center)
return transform
def apply_transform(image, matrix):
# 准备坐标
coords = prepare_image(image)
# 应用变换
new_coords = matrix @ coords
# 转回笛卡尔坐标
x = new_coords[0] / new_coords[2]
y = new_coords[1] / new_coords[2]
# 插值获取新图像
return interpolate(image, x, y)
def augment_dataset(images):
augmented = []
for img in images:
# 随机生成变换参数
angle = np.random.uniform(-30, 30)
scale = np.random.uniform(0.8, 1.2)
tx = np.random.uniform(-10, 10)
ty = np.random.uniform(-10, 10)
# 构建并应用变换
matrix = build_transform_matrix(angle, scale, tx, ty)
aug_img = apply_transform(img, matrix)
augmented.append(aug_img)
return augmented
数值精度
边界处理
性能优化
可逆性检查
内存管理
质量控制
这个案例展示了增广矩阵在计算机视觉领域的实际应用,特别是在图像几何变换和数据增强方面的优势。通过合理使用增广矩阵,我们可以高效地实现复杂的图像变换,同时保持数值计算的稳定性和准确性。