最小二乘法原理及应用

最小二乘法原理及应用最小二乘法是一种在误差估计 不确定度 系统辨识及预测 预报等数据处理诸多学科领域得到广泛应用的数学工具

一、最小二乘法介绍

        最小二乘法是一种在误差估计、不确定度、系统辨识及预测、预报等数据处理诸多学科领域得到广泛应用的数学工具。

        这样说,可能比较抽象,难于理解,我们下面来详细解释一下。假设两个物理量x,y满足某个函数关系,即y=f(x),但是我们并不知道这个函数的具体公式。我们已知的是一些数据,也就是f(x)在若干点x_{i}处的取值为y_{i}(i=1,2,……N)。我们根据这些数据来推算出f(x)的近似表达式的过程,我们称为拟合。

        具体怎么拟合呢,就涉及到最小二乘法了。当然最小二乘法只是其中一种拟合方法,也可以采用其他方法来拟合。我们首先假设一个函数\psi \left ( x,a_{0},a_{1},\cdots ,a_{n} \right ),其中a_{0}~a_{n}为函数中的参数,f(x)可以近似表示成\psi \left ( x,a_{0},a_{1},\cdots ,a_{n} \right )。一般\psi \left ( x,a_{0},a_{1},\cdots ,a_{n} \right )是一个n次多项式,因为根据泰勒公式,任何函数都可以近似展开为一个n次多项式。对于上边提到的N个已知数据,我们设定一个指标

R=\sum_{i=1}^{N}\left ( y_{i}-\psi \left ( x_{i} \right ) \right )^{2}

这个指标就相当于是用\psi \left ( x,a_{0},a_{1},\cdots ,a_{n} \right )来替代f(x)对于数据样本的误差的平方和,当这个指标取最小值时,认为\psi \left ( x,a_{0},a_{1},\cdots ,a_{n} \right )为最优的函数,并以此计算出a_{0}~a_{n},从而得到\psi \left ( x,a_{0},a_{1},\cdots ,a_{n} \right )的表达式,这种方法就是最小二乘法。

二、最小二乘法拟合常量

        在有些情况下,有些物理量是常量,不存在函数关系,比如某个时刻的气温。这种情况,可以表示为y=a,对于这个物理量我们也可以获得N个测量值y_{i},我们可以采用最小二乘法的方法来拟合出这个常量的真实值。

       根据最小二乘法的规则,需要使下面的指标最小

R=\sum_{i=1}^{N}(y_{i}-a)^{2}

那这个问题就变成了我们要找一个a的值,使这个指标最小。我们将这个指标对a求导,可得

\frac{dR}{da}=-2\sum_{i=1}^{N}(y_{i}-a)=0

R取最下值的条件需要满足这个导数为0。由上面的等式可以计算得到

a=\frac{\sum_{i=1}^{N}y_{i}}{N}

有上式可知,a的最优取值就是N个测量值的平均值。

三、最小二乘法拟合线性函数

        在有些情况,变量x,y,满足线性关系,即y=ax+b。我们通过测量可以得到N组测量值\left ( x_{i},y_{i} \right ),根据最小二乘法的思想,则总的误差平方和指标为

R=\sum_{i=1}^{N}(ax_{i}+b-y_{i})^{2}

不同的a、b的取值会导致不同的指标值,我们需要找到一组a、b的取值使上述指标最小。根据多元微积分的知识,分别对a、b求偏导,并且偏导为0。

\left\{\begin{matrix} \frac{\partial R}{\partial a}=2\sum_{i=1}^{N}(ax_{i}+b-y_{i})x_{i}=0\\ \frac{\partial R}{\partial b}=2\sum_{i=1}^{N}(ax_{i}+b-y_{i})=0 \end{matrix}\right.

整理上式,可得

\left\{\begin{matrix} \left ( \sum_{i=1}^{N}{x_{i}}^{2} \right )a+\left ( \sum_{i=1}^{N}{x_{i}} \right )b=\sum_{i=1}^{N}{x_{i}}{y_{i}}\\ \left ( \sum_{i=1}^{N}{x_{i}} \right )a+Nb=\sum_{i=1}^{N}{y_{i}} \end{matrix}\right.

联立解方程组可得

\left\{\begin{matrix} a=\frac{N\sum_{i=1}^{N}{x_{i}}{y_{i}}-\sum_{i=1}^{N}{x_{i}}\sum_{i=1}^{N}{y_{i}}}{N\sum_{i=1}^{N}{x_{i}}^{2}-\left ( \sum_{i=1}^{N}{x_{i}} \right )^{2}}\\ b=\bar{y}-a\bar{x} \end{matrix}\right.

其中,\bar{y}\bar{x}为N组测量值的y和x的平均值。由此可得到线性函数的表达式。

四、最小二乘法拟合多项式函数 

     最小二乘过程很容易推广到多项式拟合数据的情况。首先,我们先来拟合一个二次多项式。

y=a_{0}x^{2}+a_{1}x+a_{2}

根据最小二乘法的思想,则总的误差平方和指标为:

R=\sum_{i=1}^{N}\left ( a_{0}x^{2}+a_{1}x+a_{2}-y_{i} \right )^{2}

根据多元微积分的知识,分别对各系数求偏导,并且偏导为0。

\left\{\begin{matrix} \frac{\partial R}{\partial a_{0}}=2\sum_{i=1}^{N}{x_{i}}^{2}\left ( a_{0}{x_{i}}^{2}+a_{1}x_{i}+a_{2}-y_{i} \right )\\ \frac{\partial R}{\partial a_{1}}=2\sum_{i=1}^{N}x_{i}\left ( a_{0}{x_{i}}^{2}+a_{1}x_{i}+a_{2}-y_{i} \right )\\ \frac{\partial R}{\partial a_{2}}=2\sum_{i=1}^{N}\left ( a_{0}{x_{i}}^{2}+a_{1}x_{i}+a_{2}-y_{i} \right ) \end{matrix}\right.

对上式进行整理,可得

\left\{\begin{matrix} \left ( \sum_{i=1}^{N}{x_{i}}^{4} \right )a_{0}+\left ( \sum_{i=1}^{N}{x_{i}}^{3} \right )a_{1}+\left ( \sum_{i=1}^{N}{x_{i}}^{2} \right )a_{2}=\sum_{i=1}^{N}{x_{i}}^{2}{y_{i}}\\ \left ( \sum_{i=1}^{N}{x_{i}}^{3} \right )a_{0}+\left ( \sum_{i=1}^{N}{x_{i}}^{2} \right )a_{1}+\left ( \sum_{i=1}^{N}{x_{i}} \right )a_{2}=\sum_{i=1}^{N}{x_{i}}{y_{i}}\\ \left ( \sum_{i=1}^{N}{x_{i}}^{2} \right )a_{0}+\left ( \sum_{i=1}^{N}{x_{i}} \right )a_{1}+Na_{2}=\sum_{i=1}^{N}{y_{i}} \end{matrix}\right.

以上是三个线性方程,三个位置数,方程式可解的。因此可以计算出a_{0}a_{1}a_{2}的值,进而得到二次多项式的表达式。

我们很容易将上述方法推广到m此多项式的你和问题,只是复杂度会更高一些。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233286.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PHP小程序开发_微信小程序后端语言

    PHP小程序开发_微信小程序后端语言想要快速地开发一个小程序,很多环节都需要注意,微信小程序php后端的开发估计很多人都还很陌生,但是这也是至关重要的,一起来看看开发实例详解吧。1.小程序相对于之前的WEB+PHP建站来说,个人理解为只是将web放到了微信端,用小程序固定的格式前前端进行布局、事件触发和数据的输送和读取,服务器端可以用任何后端语言写,但是所有的数据都要以JSON的形式返回给小程序。2.昨天写了登录注册、忘记密码功能,…

    2022年9月17日
    1
  • 8.WLAN频段介绍_频段与信道「建议收藏」

    8.WLAN频段介绍_频段与信道「建议收藏」频段与信道1、ISM频段一、pandas是什么?二、使用步骤1.引入库2.读入数据总结1、ISM频段一、pandas是什么?示例:pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimportseabornassnsimportwarningswarnings.fil

    2022年10月9日
    1
  • 计算机中1kb表示的字节数是多少_在计算机中1KB是指几字节

    计算机中1kb表示的字节数是多少_在计算机中1KB是指几字节大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。1kb等于1024个字节。kB(Kilobyte),是一种资讯计量单位,是计算机数据存贮器存储单位字节的多倍形式。现今通常在标识内存等具有一般容量的储存媒介之储存容量时使用。根据国际单位制标准,1kB=1000B(字节,Byte)。根据按照IEC命名标准,用于二进制存储单位的标准命名是KiB,MiB等,1kiB=1024B。这是由…

    2022年9月30日
    1
  • java中page的对象,page对象[通俗易懂]

    java中page的对象,page对象[通俗易懂]page对象是JSP九大内置对象之一。JSP全称JavaServerPage,是一种动态网页技术标准,以Java语言作为脚本语言。在JSP中预先定义了九个内置对象,这个九个内置对象不需要声明就可以在脚本代码和表达式中任意使用,九个内置对象分别是:request、response、session、application、out、pageContext、config、page、exception。pa…

    2022年7月27日
    12
  • 史上最全69道Spring面试题和答案

    史上最全69道Spring面试题和答案目录Spring概述 依赖注入 Springbeans Spring注解 Spring数据访问 Spring面向切面编程(AOP) SpringMVCSpring 概述1. 什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Ja…

    2022年5月11日
    34
  • typescript类型定义_浅基础的类型及特点

    typescript类型定义_浅基础的类型及特点基础类型TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。布尔值最基本的数据类型就是简单的true/false值,在JavaScri

    2022年8月7日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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