QR分解在求解线性最小二乘问题中的应用
字数 1224 2025-10-29 21:04:18

QR分解在求解线性最小二乘问题中的应用

题目描述
线性最小二乘问题是指:给定一个m×n的矩阵A(通常m>n,即方程数大于未知数)和一个m维向量b,寻找一个n维向量x,使得残差向量的2-范数平方最小,即最小化 ||Ax - b||₂²。当方程组Ax=b超定(无精确解)时,最小二乘解是最优近似。QR分解通过将矩阵A分解为一个正交矩阵Q和一个上三角矩阵R的乘积,将原问题转化为一个易于求解的上三角方程组。

解题过程

第一步:问题转化
最小化 ||Ax - b||₂² 等价于寻找x使得Ax尽可能接近b在Col(A)(A的列空间)上的投影。利用矩阵范数的正交不变性(正交变换不改变向量2-范数),我们可以对A进行QR分解(A=QR,其中Q是m×m正交矩阵,QᵀQ=I;R是m×n的上三角矩阵),从而简化问题。

第二步:执行QR分解
对矩阵A进行QR分解,得到 A = QR。分解后,R矩阵具有如下结构:
R = [ R₁ ]
[ 0 ]
其中R₁是一个n×n的非奇异上三角矩阵(如果A是列满秩的),下面的0矩阵是(m-n)×n的零矩阵。

第三步:利用正交不变性简化目标函数
将A=QR代入目标函数:
||Ax - b||₂² = ||QRx - b||₂²
由于Q是正交矩阵,乘以Q不改变范数,因此我们在残差项前乘以Qᵀ:
= ||Qᵀ(QRx - b)||₂² = ||QᵀQRx - Qᵀb||₂²
因为QᵀQ = I,所以简化:
= ||Rx - Qᵀb||₂²

第四步:分块计算
将向量 Qᵀb 进行分块,以匹配R的结构。令 d = Qᵀb = [ d₁ ]
[ d₂ ]
其中d₁是前n维向量,d₂是后m-n维向量。
那么目标函数变为:
||Rx - d||₂² = ||[ R₁ ]x - [ d₁ ]||₂²
||[ 0 ] [ d₂ ]||₂
= ||R₁x - d₁||₂² + ||0*x - d₂||₂²
= ||R₁x - d₁||₂² + ||d₂||₂²

第五步:求解最小二乘解
观察上式,||d₂||₂²是一个常数,与x的选择无关。因此,最小化整个表达式只需要最小化第一项 ||R₁x - d₁||₂²。显然,当 R₁x = d₁ 时,第一项达到最小值0。
由于R₁是n×n的上三角矩阵且非奇异(A列满秩时),我们可以通过回代法(Back Substitution)轻松求解这个上三角方程组:
R₁x = d₁

第六步:得出最终解
求解R₁x = d₁得到的x,就是原线性最小二乘问题的最小范数解。此时的残差平方和最小值就是||d₂||₂²。

总结
QR分解法通过正交变换,将原始的最小二乘问题转化为一个易于求解的上三角线性方程组,避免了直接计算法方程(AᵀA x = Aᵀb)可能带来的数值不稳定性(因为AᵀA的条件数是A条件数的平方),是一种数值稳定的常用算法。

QR分解在求解线性最小二乘问题中的应用 题目描述 线性最小二乘问题是指:给定一个m×n的矩阵A(通常m>n,即方程数大于未知数)和一个m维向量b,寻找一个n维向量x,使得残差向量的2-范数平方最小,即最小化 ||Ax - b||₂²。当方程组Ax=b超定(无精确解)时,最小二乘解是最优近似。QR分解通过将矩阵A分解为一个正交矩阵Q和一个上三角矩阵R的乘积,将原问题转化为一个易于求解的上三角方程组。 解题过程 第一步:问题转化 最小化 ||Ax - b||₂² 等价于寻找x使得Ax尽可能接近b在Col(A)(A的列空间)上的投影。利用矩阵范数的正交不变性(正交变换不改变向量2-范数),我们可以对A进行QR分解(A=QR,其中Q是m×m正交矩阵,QᵀQ=I;R是m×n的上三角矩阵),从而简化问题。 第二步:执行QR分解 对矩阵A进行QR分解,得到 A = QR。分解后,R矩阵具有如下结构: R = [ R₁ ] [ 0 ] 其中R₁是一个n×n的非奇异上三角矩阵(如果A是列满秩的),下面的0矩阵是(m-n)×n的零矩阵。 第三步:利用正交不变性简化目标函数 将A=QR代入目标函数: ||Ax - b||₂² = ||QRx - b||₂² 由于Q是正交矩阵,乘以Q不改变范数,因此我们在残差项前乘以Qᵀ: = ||Qᵀ(QRx - b)||₂² = ||QᵀQRx - Qᵀb||₂² 因为QᵀQ = I,所以简化: = ||Rx - Qᵀb||₂² 第四步:分块计算 将向量 Qᵀb 进行分块,以匹配R的结构。令 d = Qᵀb = [ d₁ ] [ d₂ ] 其中d₁是前n维向量,d₂是后m-n维向量。 那么目标函数变为: ||Rx - d||₂² = ||[ R₁ ]x - [ d₁ ]||₂² ||[ 0 ] [ d₂ ]||₂ = ||R₁x - d₁||₂² + ||0* x - d₂||₂² = ||R₁x - d₁||₂² + ||d₂||₂² 第五步:求解最小二乘解 观察上式,||d₂||₂²是一个常数,与x的选择无关。因此,最小化整个表达式只需要最小化第一项 ||R₁x - d₁||₂²。显然,当 R₁x = d₁ 时,第一项达到最小值0。 由于R₁是n×n的上三角矩阵且非奇异(A列满秩时),我们可以通过回代法(Back Substitution)轻松求解这个上三角方程组: R₁x = d₁ 第六步:得出最终解 求解R₁x = d₁得到的x,就是原线性最小二乘问题的最小范数解。此时的残差平方和最小值就是||d₂||₂²。 总结 QR分解法通过正交变换,将原始的最小二乘问题转化为一个易于求解的上三角线性方程组,避免了直接计算法方程(AᵀA x = Aᵀb)可能带来的数值不稳定性(因为AᵀA的条件数是A条件数的平方),是一种数值稳定的常用算法。