解线性方程组最小二乘解的迭代法
2018-12-21张光辉
张光辉
宿州学院数学与统计学院,宿州,234000
1 引 言
在技术和工程实践中,最小二乘问题应用非常广泛。所谓最小二乘问题[1],是指针对线性方程组AX=b,寻找X*∈Rn,使得
(1)
其中A为一m×n矩阵,b为一m维给定向量。
2 引理及主要结果
引理1[2]设A∈Rm×n(m>n),b∈Rm,求解最小二乘问题AX=b,等价于极小化φ(X)=(AX-b,AX-b)。

ATAX=ATb
(2)
的解。

注:引理1,2从理论上说明求解最小二乘问题(1)只需求解方程(2),但当ATA奇异,或对计算过程中不可避免的舍入误差十分敏感时,该方法在数值上是不可取的。应用引理3求A+时需要对A进行奇异值分解。但对于大规模的问题,直接采用奇异值分解十分困难,必须采用迭代法。下面给出三种具体的迭代算法。
算法1基于显示式欧拉算法[5]建立的迭代法
step1根据AX=b,给出φ(X)=(AX-b,AX-b)表达式;
step2计算φ(X)=(AX-b,AX-b)的负梯度方向-gradφ(X)=-AT(AX-b);

step4用显示式欧拉法求解step3微分方程,得到
Xk+1=Xk-hkAT(AXk-b)
并给定算法迭代允许误差ε;

(3)
其中
step6如果φ(Xk+1)<ε或者‖Xk+1-Xk‖<ε,则算法迭代终止;否则将Xk+1赋给Xk,转step4继续迭代。
算法2二阶Runge-Kutta算法建立的迭代法
step1-step3同算法1;
step4用二阶Runge-Kutta算法求step3微分方程,得到
并给定算法迭代允许误差ε;
step5计算φ(Xk+1),得到关于hk的四次多项式;

整理得到
(4)
step7如果φ(Xk+1)<ε或者‖Xk+1-Xk‖<ε,则算法迭代终止;否则将Xk+1赋给Xk,转step4继续迭代。
算法3基于隐式欧拉算法建立的迭代法
step1-step3同算法1;
step4用隐式欧拉法求step3微分方程,得到
Xk+1=Xk-hkAT(AXk+1-b)
将上式显化,得
并给定算法迭代允许误差ε;
step5计算φ(Xk+1),得到关于hk的四次多项式;

整理得到
(5)
step7如果φ(Xk+1)<ε或者‖Xk+1-Xk‖<ε,则算法迭代终止;否则将Xk+1赋给Xk,转step4继续迭代。
3 算例分析
算例1某种合金的含铅量百分比为P,其溶解温度为θ,由实验测得P与θ的数据见表1。

表1 合金含铅百分比与溶剂温度数据表
试用最小二乘法建立含铅量百分比P与溶解温度θ之间的经验公式θ=x1p+x2。用算法1,2,3计算,变量的允许误差ε=0.000 05。
解由题意,所求经验公……
