博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最小二乘法曲线拟合
阅读量:4353 次
发布时间:2019-06-07

本文共 840 字,大约阅读时间需要 2 分钟。

目录

最近做项目遇到曲线拟合的问题,简单做个总结。

1. 曲线拟合

先扔出一点基本概念:

如果已知函数f(x)在若干点xi(i = 1,2,……n)处的值为yi,便可根据插值原理建立插值多项式作为f(x)的近似。但在科学实验和生产实践中,往往会遇到这样一种情况,即节点上的函数值并不是很精确的,这些函数值是由实验或观测得到的数据,不可避免的带有测量误差,如果要求所得的近似函数曲线精确无误的通过所有的点(xi, yi),就会使曲线保留着一切测试误差。所以希望从给定的数据(xi, yi)出发,构造一个近似函数ψ(x),能反映数据的基本趋势即可。

2. 最小二乘法

对于曲线拟合函数ψ(x),不要求其严格的通过所有数据点,也就是说拟合函数ψ(x)在xi处的偏差(亦称残差)不都严格的等于零,即为矛盾方程组:

966190-20181115155748650-582391713.png

为了是近似曲线能尽量反映所给数据点的变化趋势,要求偏差按照某种度量标准最小。这后面的分析用到了范数的概念,这个不太懂,感兴趣的可以查看《数值分析》相关内容。总之,结论是要求误差的平方和最小,即要求下式具有最小值。

966190-20181115155759025-1413292979.png

这种方法就叫做曲线拟合的最小二乘法。归根结底是求上式的极小值。

3. 二次函数拟合

假设拟合方程为二次曲线:

966190-20181115155808273-353661711.png

已知数据点(xi, yi),i = 1,2,……n,该近似拟合曲线的均方误差为:

966190-20181115155854326-1337444984.png

要求上式的极小值,那么归结为多元函数求极值的问题,立刻就会想到求导,则有:

966190-20181115155901420-1278524248.png

求导过程如下:

966190-20181115155907628-1945426865.png

可以将上面的结果,将上述线性方程组转换为矩阵方程,即:

966190-20181115155913854-71979686.png

其系数行列式(行列式符号错了,懒得改)为:

966190-20181115155920652-383892515.png

其值若不为0,则方程组有解,另外:

966190-20181115155926324-866038572.png

由此可以解得二次曲线的各系数:

966190-20181115155934563-2109883426.png

4. 高斯拟合

高斯函数形式如下:

966190-20181115155942111-225428557.png

直接采用最小二乘法,其均方误差为:

966190-20181115155948663-796882071.png

直接这样计算比较复杂,可以先对高斯函数两边求对数,则均方误差可以改写为:

966190-20181115155955732-1703082542.png

从形式上化为了二次函数,则可用多项式拟合的方法做相应的计算。

转载于:https://www.cnblogs.com/rouwawa/p/9964111.html

你可能感兴趣的文章
oracle问题之数据库恢复(三)
查看>>
单点登陆(SSO)
查看>>
HR,也确实“尽职尽责”
查看>>
MaxComputer 使用客户端配置
查看>>
20190823 顺其自然
查看>>
阅读《余生有你,人间值得》有感
查看>>
每日英语
查看>>
[leetcode] Regular Expression Matching
查看>>
BZOJ1927: [Sdoi2010]星际竞速(最小费用最大流 最小路径覆盖)
查看>>
洛谷P1317 低洼地
查看>>
MVC Redirect 页面跳转不了
查看>>
李开复有哪些地方做的不好
查看>>
12.22
查看>>
新版本的molar mass(uva-1586)明明debug过了,各种测试还是WA真是气死我了
查看>>
gdb(ddd,kdevelop等)调试ZeroIce开发的应用程序,中断信号引起的问题
查看>>
牛股助推器(每股收益率)
查看>>
SpringCloud+feign 基于Springboot2.0 负载均衡
查看>>
【BZOJ5094】硬盘检测 概率
查看>>
mac上n次安装与卸载mysql
查看>>
Python之单元测试——HTMLTestRunner
查看>>