如何用最小二乘法求解线性方程组

来源:百度知道 编辑:UC知道 时间:2024/05/26 15:40:12
请用一个解方程组的具体实例来说明,谢谢!
请以该方程组为例:
-x+y=0
x+y=0
y+2=0
这是我从一篇有关软件测评中测试数据自动生成的外文文献中看到的,他是针对上述的方程组使用了最小二乘法(the least squared solution)求解得到了变量的值为x=0,y=-0.6667,我不明白怎么求出来的,请各位大侠帮忙!不胜感激!

你可以参考下这本书 现代数值计算方法 北京大学出版社 主编:肖筱南

我帮你简单叙述下最小二乘法的概念
对于你所述的这种矛盾方程组 是工程上的常见问题
而用最小二乘法是为了得到一个解,使其在每个方程中的误差之和达到最小
但每个误差有正有负,因此我们就以“偏差的平方和最小”为原则

具体的计算方法为
设矩阵A为矛盾方程组的系数矩阵 b为其等号右边的数值矩阵

则方程组用矩阵可表示为AX=b

两边同时左乘A的转置矩阵
即A(AT)X=(AT)b (T为上标,即A的转置)

再解这个方程组
得到的解即为最优近似解

例 对下面一组数据作二次多项式拟合
x= 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
y=1.978 3.28 6.16 7.34 7.66 9.58 9.48 9.30 11.2
要求 出二次多项式即:
f(x)=a1*x^2+a2*x+a3中的(a1,a2,a3)使得 最小

用解超定方程的方法
1)输入以下命令:
x=0:0.1:1;
y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];
R=[(x.^2)' x' ones(11,1)];
A=R\y'
2)计算结果: A = -9.8108 20.1293
你上面的方程明显有错误啊!

设已知函数的形式为 y=bx+a
则b=(x乘y的平均值-x的平均值乘y的平均值 )/(x的平方的平均值-x的平均值的平方) a=(y的平均值)-b乘(x的平均值)
其中的xy分别是已知数值