多项式曲线拟合之最小二乘法推导[通俗易懂]

多项式曲线拟合之最小二乘法推导[通俗易懂]1、多项式曲线拟合之最小二乘法1.1问题来源1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的已有观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。只有时年24岁的高斯所计算的谷神星的轨道,被奥地利天文学家海因里希·奥尔伯斯的观测所证实,使天文界从此可以预测到谷神星的精确位置。同样的方法也产生了哈雷彗星等很多天文学成果。高斯使用的方法就是最小二乘法,

大家好,又见面了,我是你们的朋友全栈君。

1、多项式曲线拟合之最小二乘法

1.1 问题来源

1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的已有观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。只有时年24岁的高斯所计算的谷神星的轨道,被奥地利天文学家海因里希·奥尔伯斯的观测所证实,使天文界从此可以预测到谷神星的精确位置。同样的方法也产生了哈雷彗星等很多天文学成果。高斯使用的方法就是最小二乘法,该方法发表于1809年他的著作《天体运动论》中。

1.2 数学本质

采用最小二乘法进行曲线拟合的本质是通过样本集构造范德蒙德矩阵,将一元n次多项式非线性回归问题转化为n元一次线性回归问题。

给定一组数据点p_i(x_i,y_i)$,其中i=1,2,...m 。求近似曲线 y=\varphi(x),使其与 y=f(x)的偏差最小。

常见的曲线拟合方法:

  • 使偏差绝对值之和最小

\mathop{min}_{\varphi}\sum_{i=1}^m{\left|\delta_i\right|} = \sum_{i=1}^m{\left|\varphi(x_i)-y_i\right|}

  • 使最大的偏差绝对值最小

\mathop{min}_{\varphi}\ \mathop{max}_{i}{\left|\delta_i\right|} = \left|\varphi(x_i)-y_i\right|

  • 使偏差平方和最小

\mathop{min}_{\varphi}\sum_{i=1}^m{\delta_i^2} = \sum_{i=1}^m(\varphi(x_i)-y_i)^2

其中按照偏差平方和最小的原则选取拟合曲线,并且采取二项式方程为拟合曲线的方法,称为最小二乘法。

1.3 问题定义

minimize \qquad \parallel{Ax-b}\parallel_2^2

1.4 问题特性

  • 已是一种成熟的工业技术
  • 已有可靠和高效的算法解决此类问题
  • 存在可解析解: x^* = ({\mathbf{A}^\mathrm{T}A)}^{-1}{\mathbf{A}^\mathrm{T}b}

1.5 数学推导

  • 设定拟合多项式为:y = a_0+a_1{x}+\dots+{a_k}{x^k}
  • 偏差平方和表示如下:

R^2 = \sum_{i=1}^n[y_i - (a_0+a_1{x_i}+\dots+{a_k}{x_i}^k)]^2

  • 对右侧等式求\alpha_i偏导数,以求的符合条件的\alpha值:

\alpha_0 求偏导:

-2\sum_{i=1}^n[y_i - (a_0+a_1{x_i}+\dots+{a_k}{x_i}^k)] = 0

\alpha_1求偏导:

-2\sum_{i=1}^n[y_i - (a_0+a_1{x_i}+\dots+{a_k}{x_i}^k)]{x_i} = 0

\alpha_2 求偏导:

-2\sum_{i=1}^n[y_i - (a_0+a_1{x_i}+\dots+{a_k}{x_i}^k)]{x_i}^2 = 0

\vdots

\alpha_k 求偏导:

-2\sum_{i=1}^n[y_i - (a_0+a_1{x_i}+\dots+{a_k}{x_i}^k)]{x_i}^k = 0

  • 等式化简

a_0{n}+a_1\sum_{i=1}^n{x_i}+\dots+a_k\sum_{i=1}^n{x_i}^k = \sum_{i=1}^n{y_i}

a_0\sum_{i=1}^n{x_i}+a_1\sum_{i=1}^n{x_i}^2+\dots+a_k\sum_{i=1}^n{x_i}^{k+1} = \sum_{i=1}^n{x_i}{y_i}

a_0\sum_{i=1}^n{x_i}^2+a_1\sum_{i=1}^n{x_i}^3+\dots+a_k\sum_{i=1}^n{x_i}^{k+2} = \sum_{i=1}^n{x_i}^2{y_i}

a_0\sum_{i=1}^n{x_i}^k+a_1\sum_{i=1}^n{x_i}^{k+1}+\dots+a_k\sum_{i=1}^n{x_i}^{k+k} = \sum_{i=1}^n{x_i}^k{y_i}

  • 矩阵表示

\left[ \begin{array}{cccc} n & \sum_{i=1}^n{x_i} & \cdots & \sum_{i=1}^n{x_i}^k\\ \sum_{i=1}^n{x_i} & \sum_{i=1}^n{x_i}^2 & \cdots & \sum_{i=1}^n{x_i}^{k+1}\\ \vdots & \vdots & \ddots & \vdots\\ \sum_{i=1}^n{x_i}^k & \sum_{i=1}^n{x_i}^{k+1} & \cdots & \sum_{i=1}^n{x_i}^{k+k}\\ \end{array} \right] \left[ \begin{array}{cccc} a_0\\ a_1\\ \vdots\\ a_k\\ \end{array} \right] = \left[ \begin{array}{cccc} \sum_{i=1}^n{y_i}\\ \sum_{i=1}^n{x_i}{y_i}\\ \vdots\\ \sum_{i=1}^n{x_i}^k{y_i}\\ \end{array} \right]

  • 矩阵简化

X= \left[ \begin{array}{cccc} 1 & x_1 & x_1^2 & \cdots x_1^k \\ 1 & x_2 & x_2^2 & \cdots x_2^k \\ \cdots & \cdots & \cdots & \cdots \\ 1 & x_n & x_n^2 & \cdots x_n^k \\ \end{array} \right] \qquad Y= \left[ \begin{array}{cccc} y_1 \\ y_2 \\ \cdots \\ y_n \\ \end{array} \right]

上述矩阵可简化为: \mathbf{X}^\mathrm{T}Xa=\mathbf{X}^\mathrm{T}Y

  • 结果

a=(\mathbf{X}^\mathrm{T}*X)^{-1}*\mathbf{X}^\mathrm{T}*Y

矩阵a中对应的项则是拟合曲线的各项系数。

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145554.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • CLION输入激活码【在线注册码/序列号/破解码】

    CLION输入激活码【在线注册码/序列号/破解码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • javascript undefined_setvalidator

    javascript undefined_setvalidator解决DvaJS在models中的effects无法setInterval和setTimout的问题

  • git版本管理工具介绍(git管理工具有哪些)

    Git 是一个分布式版本控制工具,它的作者 LinusTorvalds是这样给我们介绍Git —— Thestupidcontenttracker(傻瓜式的内容跟踪器)1、Git背景Git最初由LinusTorvalds编写,用于Linux内核开发的版本控制工具。Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不必服务器端软

  • 进销存源码|ERP多仓库管理系统全开源php源码

    进销存源码|ERP多仓库管理系统全开源php源码  进销存(ERP)源码是用来管理企业数据的软件工具。进销存系统帮助不同的组织处理企业的不同部门。不同部门如收货、库存管理、客户订单管理、生产计划、发货、会计、人力资源管理等业务职能。基本上,它是将企业的计划、生产、销售和营销工作整合到一个管理系统中的实践。它将跨不同部门的所有数据库合并到一个单一的数据库中,该企业的所有员工都可以轻松访问该数据库。它有助于自动化执行业务流程所涉及的任务。    进销存源码演示及资源获取:e.csymzs.top    使用进销存前:    在使用进销存源码之前,

  • 数据挖掘概念与技术_第三版_课后习题「建议收藏」

    数据挖掘概念与技术_第三版_课后习题「建议收藏」写在前面该文为数据挖掘概念与技术第三版课后习题的答案,部分参考了第二版的英文答案,由于个人水平有限,如若存在纰漏,请在评论区批评指正。另外,由于本次编辑格式较乱,可在资源下载区下载PDF版本以便参考。第一章引论什么是数据挖掘?在你的回答中,强调以下问题:1) 它是又一种噱头吗?2) 它是一种从数据库、统计学、机器学习和模式识别发展而来的技术的简单转换或应用吗?3) 我们提出了一种…

  • 批处理 注释_批处理文件注释语句

    批处理 注释_批处理文件注释语句rem为注释命令,用来给程序加上注释,该命令后的内容不被执行,但是能够回显。::也可以起到和rem一样的注释效果,但是有两点需要注意:1.任何以:开头的字符行,在批处理中都被视作标号,而直接忽略其后所有的内容。一个有效的标号在冒号后紧跟一个以字母或数字开头的字符串,它能够被goto命令所识别。如果冒号后面跟的是非数字字母的特殊符号,则被视为无效标号,goto命令无法识别这类标号,从而起到注…

    2022年10月23日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号