![b7a896f27a6307bfa51979256047df5a.png](https://i-blog.csdnimg.cn/blog_migrate/c2f8ed1aa78c9672d5eb3d541cafa056.jpeg)
最小二乘法是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。
![c074d4df2d45a2c075288535118845ca.png](https://i-blog.csdnimg.cn/blog_migrate/df9b779f2fc4521df81a40557cb9a9bf.jpeg)
通常情况下最小二乘法是这样的:
给定一组数,假设是二维数据.
但是这个方程我们是不知道具体什么样的.我们找到一个近似函数
对于每一个点
我们的目的是是误差平方和最小. 注意在这里我们已经假设x是准确的,误差来自y.这就是通常的最小二乘法误差函数.
![3ae44d74e500827d9f8b4a4c4ab67491.png](https://i-blog.csdnimg.cn/blog_migrate/ce0997deff4ac122abddc71a55d39e1d.jpeg)
![3a2167a91b1402b06b965867a32e8484.png](https://i-blog.csdnimg.cn/blog_migrate/54087d1dfa59685a84c3ca392dd153ce.jpeg)
% 语法:
这个时候对误差函数关于参数求偏导数,令其等于0得到我们拟合的参数. 为了方便我们假设xy满足线性关系.
那么误差为:
第二种误差是假设y是准确的,x是有误差的.任然假设xy是线性的
得到
那么误差为
第三种是xy都有误差,那么误差就应该是点到直线的距离:
有了三种误差函数就可以得到需要的参数.下面我们通过具体代码来实现.
% 语法:
sol
![653134ecd7e120b2ef752ebe89d5344e.png](https://i-blog.csdnimg.cn/blog_migrate/c5d2255889c25bd05bbbf668bd7b8781.jpeg)
第二种方法
% 语法:
sol
![3ff60c6f356d4848d3269a1fec9b54bc.png](https://i-blog.csdnimg.cn/blog_migrate/19d7125d097a01dd395ffb0493ecc509.jpeg)
第三种方法
% 语法:
![96dc64777ce612b4624c46d17892cbbc.png](https://i-blog.csdnimg.cn/blog_migrate/f3087cb9e15e8529348c70b3777067a9.jpeg)
sol
最后三张方法总结在一起
% 语法:
![c074d4df2d45a2c075288535118845ca.png](https://i-blog.csdnimg.cn/blog_migrate/df9b779f2fc4521df81a40557cb9a9bf.jpeg)