APP下载

解线性方程组最小二乘解的迭代法

2018-12-21张光辉

宿州学院学报 2018年10期

张光辉

宿州学院数学与统计学院,宿州,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。

解由题意,所求经验公……

登录APP查看全文