工作需求,这里记录一下数值插值和数值分析方面的算法,希望和大家一起进步。

曲线拟合的最小二乘定义

求一条曲线,使数据点均在离此曲线的上方或下方不远处,所求的曲线称为拟合曲线,
它既能反映数据的总体分布,又不至于出现局部较大的波动,更能反映被逼近函数的特性,
使求得的逼近函数与已知函数从总体上来说其偏差按某种方法度量达到最小,
这就是最小二乘法.
与函数插值不同,曲线拟合不要求曲线通过所有已知点,而是要求得到的近似函数能反映数据的基本关系,
在某种意义上,曲线拟合更有实用价值.

已知离散观测数据点f(x):(x0,y0)、(x1,y1)、(x2,y2)⋯(xn,yn),求得曲线拟合函数p(x),记p(x)在xi处的残差为:ϵi=p(xi)−f(xi)(i=0,1,2⋯,n)记向量e=[ϵ0,ϵ1⋯,ϵn]若e的2−范数:Σi=0nϵi2=Σi=0n[p(xi)−f(xi)]2为最小则p(x)为最小二乘法拟合得来的曲线.已知离散观测数据点 f(x):(x_0,y_0)、(x_1,y_1)、(x_2,y_2)\cdots(x_n,y_n),求得曲线拟合函数p(x),记p(x)在x_i处的残差为:\\ \epsilon_i = p(x_i) - f(x_i) (i=0,1,2\cdots,n)\\ 记向量e=[\epsilon_0,\epsilon_1\cdots,\epsilon_n]\\ 若e的2-范数:\Sigma^n_{i=0}\epsilon^2_i = \Sigma^n_{i=0}[p(x_i)-f(x_i)]^2为最小\\ 则p(x)为最小二乘法拟合得来的曲线. 已知离散观测数据点f(x):(x0​,y0​)、(x1​,y1​)、(x2​,y2​)⋯(xn​,yn​),求得曲线拟合函数p(x),记p(x)在xi​处的残差为:ϵi​=p(xi​)−f(xi​)(i=0,1,2⋯,n)记向量e=[ϵ0​,ϵ1​⋯,ϵn​]若e的2−范数:Σi=0n​ϵi2​=Σi=0n​[p(xi​)−f(xi​)]2为最小则p(x)为最小二乘法拟合得来的曲线.

最小二乘法–多项式拟合

条件:

对于给定的一组数据(xi,yi),i=1,2,...,m,寻求次数不超过n(n<<m)的多项式:y=a0+a1x+a2x2+...+anxn来拟合给定的数据,使偏差的平方和Q=Σi=1m(yi−Σj=0najxij)2为最小.对于给定的一组数据(x_i,y_i),i=1,2,...,m,寻求次数不超过n (n<<m)的多项式:\\ y = a_0 + a_1x + a_2x^2 + ... + a_nx^n 来拟合给定的数据,使偏差的平方和\\ Q = \Sigma^m_{i=1}(y_i-\Sigma^n_{j=0}a_jx^j_i)^2 为最小. 对于给定的一组数据(xi​,yi​),i=1,2,...,m,寻求次数不超过n(n<<m)的多项式:y=a0​+a1​x+a2​x2+...+an​xn来拟合给定的数据,使偏差的平方和Q=Σi=1m​(yi​−Σj=0n​aj​xij​)2为最小.

Q可以看做是关于系数a的多元函数,所以拟合多项式的构造问题可归结为多元函数的极值问题:

∂Q∂ak=0,k=0,1,2,...,n即:Σi=1m(yi−Σj=0najxij)xik=0,k=0,1,2,...,n\frac {\partial Q } {\partial a_k }=0,\quad k=0,1,2,...,n\\ 即:\\ \Sigma^m_{i=1}(y_i-\Sigma^n_{j=0}a_jx^j_i)x^k_i=0 ,\quad k=0,1,2,...,n\\ ∂ak​∂Q​=0,k=0,1,2,...,n即:Σi=1m​(yi​−Σj=0n​aj​xij​)xik​=0,k=0,1,2,...,n

上式是关于系数a的线性方程组,有唯一解.

算法示例

多项式拟合–直线拟合

取数据点:

(1,1),(2.5,2),(3,3.3),(3.5,4),(5.6,5),(9,8),(11,9)设拟合曲线p(x)=a0+a1x(1,1),(2.5,2),(3,3.3),(3.5,4),(5.6,5),(9,8),(11,9)\\ 设拟合曲线 p(x) = a_0+a_1x (1,1),(2.5,2),(3,3.3),(3.5,4),(5.6,5),(9,8),(11,9)设拟合曲线p(x)=a0​+a1​x

求e -2范数关于a0,a1的偏导数,得到下列方程组:

{2Σi=1m(a0+a1xi−yi)=02Σi=1m(a0+a1xi−yi)xi=0得到:{a0m+a1Σi=1mxi=Σi=1myia0Σi=1mxi+a1Σi=1mxi2=Σi=1mxiyi\begin{cases} 2\Sigma^m_{i=1}(a_0+a_1x_i-y_i)=0\\ \\ 2\Sigma^m_{i=1}(a_0+a_1x_i-y_i)x_i=0\\ \end{cases} \\ 得到:\\ \begin{cases} a_0m+a_1\Sigma^m_{i=1}x_i=\Sigma^m_{i=1}y_i\\ \\ a_0\Sigma^m_{i=1}x_i+a_1\Sigma^m_{i=1}x^2_i=\Sigma^m_{i=1}x_iy_i\\ \end{cases} ⎩⎪⎨⎪⎧​2Σi=1m​(a0​+a1​xi​−yi​)=02Σi=1m​(a0​+a1​xi​−yi​)xi​=0​得到:⎩⎪⎨⎪⎧​a0​m+a1​Σi=1m​xi​=Σi=1m​yi​a0​Σi=1m​xi​+a1​Σi=1m​xi2​=Σi=1m​xi​yi​​

总共有7个数据点,取m=7,使用高斯消元法解上述方程组,解得:

a0=0.5466852879821776a1=0.7998090725877739a_0 = 0.5466852879821776\\ a_1 = 0.7998090725877739 a0​=0.5466852879821776a1​=0.7998090725877739

python图像为:

多项式拟合–抛物线拟合

设拟合曲线p(x)=ax2+bx+c设拟合曲线 p(x) = ax^2+bx+c 设拟合曲线p(x)=ax2+bx+c

求e -2范数关于a,b,c的偏导数,三个方程,利用高斯消元法,即可解得抛物线方程。
步骤和直线拟合类似,不再叙述.

最小二乘法进行曲线拟合相关推荐

  1. 最小二乘法多项式曲线拟合原理与实现--转

    原文地址:http://blog.csdn.net/jairuschan/article/details/7517773/ 概念 最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过 ...

  2. 最小二乘法多项式曲线拟合数学原理及其C++实现

    目录 0 前言 1 最小二乘法概述 2 最小二乘法求解多项式曲线系数向量的数学推导 2.1 代数法 2.2 矩阵法 3 代码实现 4 总结 参考 0 前言 自动驾驶开发中经常涉及到多项式曲线拟合,本文 ...

  3. 最小二乘法多项式曲线拟合原理与实现

    概念 最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x). 原理 [原理部分由个人根据互联网上的资料进行总结,希望对大家能有用] ...

  4. python最小二乘法拟合三维曲线_python_numpy最小二乘法的曲线拟合

    在了解了最小二乘法的基本原理之后python_numpy实用的最小二乘法理解,就可以用最小二乘法做曲线拟合了 1.直线拟合 直线拟合 已知图中拟合数据的坐标,对图中的拟合数据进行直线拟合. 依旧使用最 ...

  5. 最小二乘法多项式曲线拟合原理与实现(错误地方已经修改底层补充自己写的java实现)

    目录(?) [-] 概念 原理 运行前提 代码 运行效果 概念 最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x). 原理 [原 ...

  6. c++ 三次多项式拟合_最小二乘法多项式曲线拟合数学原理及其C++实现

    本文使用 Zhihu On VSCode 创作并发布 0 前言 自动驾驶开发中经常涉及到多项式曲线拟合,本文详细描述了使用最小二乘法进行多项式曲线拟合的数学原理,通过样本集构造范德蒙德矩阵,将一元 N ...

  7. 最小二乘法多项式曲线拟合及其python实现

    最小二乘法多项式曲线拟合及其python实现 多项式曲线拟合问题描述 最小二乘法 针对overfitting,加入正则项 python实现 运行结果 多项式曲线拟合问题描述 问题描述:给定一些数据点, ...

  8. 最小二乘法实现曲线拟合

    说明,本文章的源代码来着于网络,本人已在实际项目中反复使用过,证明没问题. 1.简介 已知曲线上的n个点,可以使用某条曲线去拟合,使得整体上所有的点都逼近曲线,可以使用不同的角度去判断整体逼近,最小二 ...

  9. C#最小二乘法进行曲线拟合及相关系数

    两个类: 类1: using System; using System.Collections.Generic; using System.Linq; using System.Text; names ...

最新文章

  1. Oracle中序列(Sequence)详解
  2. OpenGL uniform变量赋值的三种方法
  3. Ramfs、rootfs 和initramfs
  4. MongoDB 最大连接数 设置失效的异常分析
  5. 关于linux低端内存
  6. decimal保留千分位
  7. sqlserver、mysql删除重复数据
  8. 聊聊实际使用的电源转化电路,分享一些不同场合下的转3.3V电路
  9. EVEREST工具---检测硬件
  10. 测试之smart原则
  11. PS制作logo图片
  12. list数组遍历时能不能使用remove()方法,要注意什么
  13. 基于QT实现的计算器(只需要简单的栈知识,不仅仅是四则运算,接近手机内置计算器功能)
  14. B站纪录片发布会,发布的不只是纪录片
  15. 雪球网爬取数据并存入数据库
  16. gps定位器更换平台指令-GPS定位器接入平台指令
  17. Latex 参考文献格式
  18. 小米8 twrp recovery_橙狐Recovery-一款另类功能丰富的第三方刷机工具-支持MIUI OTA
  19. 云安全 CDN和云防护的区别
  20. 用手机或电脑连接另一台电脑桌面远程控制的软件TeamViewer

热门文章

  1. 小米电视访问电脑共享文件夹
  2. 鸿蒙开发(13)---ProgressBar与RoundProgressBar组件
  3. 13个网络管理员必须了解的网络监控工具
  4. java 取一个整数a从右端开始的4~7位。
  5. Node.js + Express-jwt实现接口认证
  6. 增长黑客内容摘要(四五六章)
  7. mysql 根据一张表删除另一张表_根据表删除另一个表_MySQL
  8. 基于c语言矩阵数组透视变换,一种图像透视变换方法与流程
  9. Excel添加宏之 大写字母前加空格
  10. 语义激光SLAM论文阅读 Semantic Lidar_based SLAM paper Research