最小二乘法进行曲线拟合

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

曲线拟合的最小二乘定义

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

已 知 离 散 观 测 数 据 点 f ( x ) : ( x 0 , y 0 ) 、 ( x 1 , y 1 ) 、 ( x 2 , y 2 ) ⋯ ( x n , y n ) , 求 得 曲 线 拟 合 函 数 p ( x ) , 记 p ( x ) 在 x i 处 的 残 差 为 : ϵ i = p ( x i ) − f ( x i ) ( i = 0 , 1 , 2 ⋯ , n ) 记 向 量 e = [ ϵ 0 , ϵ 1 ⋯ , ϵ n ] 若 e 的 2 − 范 数 : Σ i = 0 n ϵ i 2 = Σ i = 0 n [ p ( x i ) − f ( x i ) ] 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]e2Σi=0nϵi2=Σi=0n[p(xi)f(xi)]2p(x)线.

最小二乘法–多项式拟合

条件:

对 于 给 定 的 一 组 数 据 ( x i , y i ) , i = 1 , 2 , . . . , m , 寻 求 次 数 不 超 过 n ( n < < m ) 的 多 项 式 : y = a 0 + a 1 x + a 2 x 2 + . . . + a n x n 来 拟 合 给 定 的 数 据 , 使 偏 差 的 平 方 和 Q = Σ i = 1 m ( y i − Σ j = 0 n a j x i j ) 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+a1x+a2x2+...+anxn使Q=Σi=1m(yiΣj=0najxij)2.

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

∂ Q ∂ a k = 0 , k = 0 , 1 , 2 , . . . , n 即 : Σ i = 1 m ( y i − Σ j = 0 n a j x i j ) x i k = 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\\ akQ=0,k=0,1,2,...,nΣi=1m(yiΣj=0najxij)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 ) = a 0 + a 1 x (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+a1x

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

{ 2 Σ i = 1 m ( a 0 + a 1 x i − y i ) = 0 2 Σ i = 1 m ( a 0 + a 1 x i − y i ) x i = 0 得 到 : { a 0 m + a 1 Σ i = 1 m x i = Σ i = 1 m y i a 0 Σ i = 1 m x i + a 1 Σ i = 1 m x i 2 = Σ i = 1 m x i y i \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+a1xiyi)=02Σi=1m(a0+a1xiyi)xi=0a0m+a1Σi=1mxi=Σi=1myia0Σi=1mxi+a1Σi=1mxi2=Σi=1mxiyi

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

a 0 = 0.5466852879821776 a 1 = 0.7998090725877739 a_0 = 0.5466852879821776\\ a_1 = 0.7998090725877739 a0=0.5466852879821776a1=0.7998090725877739

python图像为:

在这里插入图片描述

多项式拟合–抛物线拟合

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/253439.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

最小二乘法的曲线拟合

最小二乘法解决的问题&#xff1a;AxC 无解下的最优解 例子1&#xff1a; 一条过原点的直线OA&#xff0c;C是直线外一点&#xff0c;求C在OA上的投影点P 例子1 例子2&#xff1a; 已知三个不在一条直线上的点A,B,C&#xff0c;求一条直线&#xff0c;使A,B,C到直线的距离和最小…

最小二乘法曲线拟合

最小二乘法曲线拟合以及Matlab实现 在实际工程中&#xff0c;我们常会遇到这种问题&#xff1a;已知一组点的横纵坐标&#xff0c;需要绘制出一条尽可能逼近这些点的曲线&#xff08;或直线&#xff09;&#xff0c;以进行进一步进行加工或者分析两个变量之间的相互关系。而获…

chatgpt赋能python:Python中输出的完整指南

Python中输出的完整指南 在Python中进行编程&#xff0c;输出是至关重要的一部分。它可用于在命令行界面或Web应用程序中显示结果、数据操作等。Python具有各种输出方法&#xff0c;包括print语句&#xff0c;文件和日志记录。在本文中&#xff0c;我们将深入研究Python中输出…

机器视觉康耐视智能相机Insight-手眼标定详细步骤

(Q有答疑)康耐视VisionPro工具与脚本入门级系列教程2023 In-Sight 智能相机包含标定手眼的工具 CalibrateGrid,用手动的标定方式,即将康耐视标定片固定在运动平台上,然后手动输入电机位置坐标,要保证电机在 X 方向移动一次,Y 方向移动一次,旋转两次角度,切旋转角度差不能…

ChatGPT的4个不为人知却非常实用的小功能

今天重点介绍四个ChatGPT很实用的小功能。 一、停止生成 如果在ChatGPT输出内容的过程中&#xff0c;我们发现结果不是自己想要的&#xff0c;可以直接点击“Stop generating”按钮&#xff0c;这样它就会立即停止输出。 二、复制功能 在ChatGPT返回对话的右侧&#xff0c;有三…

SQL 插入带引号的字段

今天突然想了下给字段插入引号的SQL该怎样写&#xff0c;然后就百度了一下&#xff0c;结果看各位的结果真是云里雾里啊 ╮(╯▽╰)╭ 然后就自己本机测试了一下 O(∩_∩)O&#xff0c;三种数据库都可以 不知道我这样写有没有问题呢 ... 稍微介绍一下吧&#xff1a; 如果要向…

什么是IPSec?6000字带你详细剖析,很赞!

关注、星标公众号&#xff0c;精彩内容每日送达 来源&#xff1a;网络素材 1.IPSEC协议簇安全框架 a.IPSec简介 IPSec&#xff08;Internet Protocol Security&#xff09;&#xff1a;是一组基于网络层的&#xff0c;应用密码学的安全通信协议族。IPSec不是具体指哪个协议&…

C++ set类成员函数介绍 (set和multiset)

目录 &#x1f914;set模板介绍&#xff1a; &#x1f914;特点&#xff1a; &#x1f914;set的成员函数&#xff1a; &#x1f60a;set构造函数&#xff1a; &#x1f50d;代码实例&#xff1a; &#x1f50d;运行结果&#xff1a; &#x1f60a; set赋值函数&#xf…

MySQL之数据库基本查询语句

——————今天距2020年43天—————— 这是ITester软件测试小栈第80次推文 SELECT 基本查询语句 查询单个列 #查询Author表name列的值 select name from Author;查询多个列 #查询Author表id,name两列的值 select id,name from Author;查询所有列 #查询Author表所有列的信息…

泔水()

欢迎大家观看本人第一张博客 16340218 数据科学与计算机学院 目录 数学干货之不等式 均值不等式幂平均不等式柯西不等式琴生不等式证明不等式的小策略 函数法“暴力”积分法数学归纳法水货-大学感想 一、各类不等式 1.均值不等式 平方平均数 ≥ 算术平均数 ≥ 几何平均数…

【Mysql】mysql数据库的查询语句

单表查询 1、普通查询 &#xff08;1&#xff09;命令&#xff1a;select * from <表名>;//通匹 &#xff08;2&#xff09;命令&#xff1a;select <要查询的字段> from <表名>&#xff1b; 2、去重查询&#xff08;distinct&#xff09; 命令&#xff1a;…

Metasploit超详细安装及使用教程(图文版)

通过本篇文章&#xff0c;我们将会学习以下内容&#xff1a; 1、在Windows上安装Metasploit 2、在Linux和MacOS上安装Metasploit 3、在Kali Linux中使用 Metasploit 4、升级Kali Linux 5、使用虚拟化软件构建渗透测试实验环境 6、配置SSH连接 7、使用SSH连接Kali 8、配…

基于深度学习的高精度汽车自行车检测识别系统(PyTorch+Pyside6+模型)

摘要&#xff1a;基于深度学习的高精度汽车自行车检测识别系统可用于日常生活中检测与定位汽车自行车目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的汽车自行车目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目…

Kotlin笔记(零)简介

百度百科简介 2017年&#xff0c;google公司在官网上宣布Kotlin成为Android的开发语言&#xff0c;使编码效率大增。Kotlin 语言由 JetBrains 公司推出&#xff0c;这是一个面向JVM的新语言 参考资料 官网&#xff1a;https://kotlinlang.org/中文官网&#xff1a;https://w…

【测试基础02】

测试基础02 一、HTML基础二、Python导入三方模块三、安装webgrock驱动四、元素定位(1)、元素定位工具(2)、元素定位方式(3)、XPATH路径(3)、CSS选择器 五、Selenium WebDriver初步应用(1)、基本方法(2)、测试案例1(3)、测试案例2(3)、测试案例3 六、获取元素信息的方法七、fram…

黑马Redis视频教程实战篇(三)

目录 一、优惠券秒杀 1.1 全局唯一ID 1.2 Redis实现全局唯一ID 1.3 添加优惠卷 1.4 实现秒杀下单 1.5 库存超卖问题分析 1.6 代码实现乐观锁解决超卖问题 1.7 优惠券秒杀-一人一单 1.8 集群环境下的并发问题 二、分布式锁 2.1 基本原理和实现方式对比 2.2 Redis分布…

QQ截屏快速获取像素颜色

QQ截屏快速获取像素颜色 qq截屏的快捷键是 CTRL ALT A qq截屏除了截屏 还有个很不错的小功能 获取像素的颜色 是大家都容易忽略的 具体方法很简单 第一步 按下 Ctrl Alt A 快捷键 但是 不要点击鼠标 第二步 移动鼠标 到你想要像素点的颜色 如图所示 按C 即可复制 RGB十进…

计算机如何共享桌面,怎么共享电脑屏幕?

在平时的工作生活中&#xff0c;有的时候我们需要把自己的电脑屏幕共享到另一台电脑上&#xff0c;来方便给同事或者朋友演示一些操作。今天在这里给大家分享2个电脑屏幕共享的方法&#xff0c; 2种电脑屏幕共享的方法 幕享电脑投屏 幕享&#xff0c;英文名叫Letsview&#xff…

超简单友盟分享(微信、QQ)+ 原生微信分享

超简单友盟分享&#xff08;微信、QQ&#xff09; 原生微信分享 友盟分享&#xff08;微信、QQ&#xff09;原生微信分享QQ分享&#xff08;使用Android原生的api跳转QQ&#xff09; 友盟分享&#xff08;微信、QQ&#xff09; 之前写的项目好好的&#xff0c;后来打开就报这个…

手机端 html 怎么分享到朋友圈,【Web前端问题】移动web页面如何实现分享到微信、QQ等分享功能?...

移动web页面(浏览器打开的web应用&#xff0c;非App内置的Web页面)内有分享按钮&#xff0c;点击可分享到朋友圈&#xff0c;微信好友&#xff0c;QQ...... 据说是使用相关插件&#xff0c;求指导&#xff01; 回答&#xff1a; 如果不是app内置web页面,只能使用js的一键分享.具…