﻿功能:采用Golub方法(正交分解)算法求线性方程组A*X=B的最小二乘解

格式:
SolveEquationOrth(A,B)
SolveEquationOrth(A,B,Error)
A:线性方程组的系数矩阵,不要求为方阵
B:线性方程组等式右边常数矩阵,其列数不限制为1
Error:误差控制参数,默认为0

说明:对于m*n的列满秩矩阵A,存在m*1的矩阵B,这个时候我们要求方程 A*X=B 的最小二乘解的时候,就可以采用此函数进行求解..同类型的最小二乘函数{SolveEquationLSM<矩阵运算\SolveEquationLSM>}、{SolveEquationLSM2<矩阵运算\SolveEquationLSM2>}

参考://张光澄.非线性最优化计算方法[M].高等教育出版社

例子:

a =
[ 50.0654581236027     13.1069921018123     37.9940060609924
  39.9925003945793     71.9646741039886     99.9206607229638
  34.3468975435695     85.0202723336501     60.4609779829443
  23.3783503637548     15.7901755141980     7.16354064976961
  62.4086180526803     58.3048309005354     67.9129973835838 ]
b =
[ 40.8042770069112
  88.4082030916625
  57.5943802751575
  6.67897486438927
  72.1407976803094 ]

x=SolveEquationOrth(a,b)//执行我们的求解命令得到如下解
x =
[ 0.21472571970714
  0.01772005617441
  0.80294478525960 ]

//By2012/3/9