物理实验中,数据处理经常用到最小二乘法。当然最小二乘法用手算的话好麻烦啊。

大家可能已经知道最小二乘法是什么了,这里也不多说了,就简单提一下。

一、最小二乘法原理

线性的最小二乘法是用来产生最能代表一组数据的一个一次函数,这里说的是最好的拟合,而不是完美的拟合。

例如这样一个例子:

这里有三个数据点,A(x1,y1),B(x2,y2),C(x3,y3)。我们要找一条最能够代表这三个点的直线。那如何找呢?

我们的想法是要使得误差最小。可是什么是误差?怎么代表误差?

假设我们现在已经把这条线找到了,比如是 y = f(x)。那么如果 A 点相对于直线的误差是不是可以用 A' 和 A 的纵坐标之差来表示?这样我们把所有的三个点的这些误差加起来,是不是就可以代表所有点的总的误差呢?

这里有个问题,但看一个点,这个方法没有问题,但是如果是很多点,那么这个差值有正有负,加起来就可能会有相互抵消的。所有呢,我们的办法是求这些误差的平方和。

那么最小二乘法就是要这个误差最小。Least squares 就是说要这个带 squares 的式子最小。

至于如何使得这个最小,至少有两种方法。一种是直接用微积分的知识,对所有未知的参量求偏导数并设为零,就可以求出参量了。另一种方法是用线性代数的方法,就是利用往空间上投影的方法。

当然,两种方法都是课本上的公式了,具体求解的话,也就是要带公式了。

不过呢,要是这个帖子只说这点内容,就没啥意义了对吧。

所以最好能讨论一下从线性代数的角度,或者说从几何的角度来看最小二乘法。

最小二乘法是要找到一条直线, y = c + d x。这样的话,我们把数据带进去,就会形成系列方程组,可以写成矩阵的样子:

但是,要知道,我们只有两个待定系数,所以这是过度确定的。一般是无解的。这就是我们前面说最小二乘法是在找最好的拟合,而不是完美的拟合的原因。

那么我们要怎么做呢?

现在有一组纵轴的数据,

这组数据呢,就是一个 n 维空间的一个矢量。

而系数矩阵

呢,就像一个参考空间。

我们要做的呢,就是要把这个 n 维空间的矢量的末端到这个参考空间上的投影,这个投影就是最合适的拟合,也就是我们的最小二乘法的精要。

做个比喻。这就好比说我们有个平面,如果我们的数据是完全线性的,那么所有的数据都会落在这个平面内,但是,实际情况可能有所偏差,是的代表所有数据的点脱离了这个平面,那我们要找的那条曲线是什么呢?那自然是代表所有数据在这个点(或者说从起点出发的矢量)在这个平面内的投影啦!

但,这不能算啊?我们要找到的是 c,d 的值啊?怎么算呢?

我们还有个

里面我们给 c 和 d 加了帽了~ 有帽表示这个只是个最好的拟合,但不一定是完美的~

那这些之间有什么关系呢?我们可以看前面的等式,比如用 A 表示系数矩阵,用 M 表示要求解的两个参数(戴帽子哦)矩阵,还有一个 b 表示所有的代表纵坐标的数据矩阵。

好啦,书上说我们要求解的方程是

为嘛呢?我们做个变化

好嘛,这样就可以理解几何意义了。因为这里面右边的是

一个投影算符作用在了 b 上!太好了,投影算符的作用就是把 b 在 A 空间内投影!这样数学就跟我们上面的意义的描述结合起来啦。所以对于最小二乘法,我们要做的是解这样一个矩阵方程

不过这个跟用微积分做是一样的,方程组一样,结果更一样。只是这样可以看到一点从微积分来理解看不到的东西。

二、软件处理

好了,最实用的部分。如何用软件快速的来做最小二乘法的拟合呢?

我想大学里面可能教大家最多的是用 Origin,Sigmaplot 甚至 Excel 之类的软件来做的。挺好的,总之能做出来就成。这些软件里面呢,用的最广的应该是 Origin,但是我更喜欢 Sigmaplot,因为 Sigmaplot 做出来的图不需要做很大的调整就挺好看的,多图排版什么的也很容易。作图嘛,漂亮太重要了。

但是这里我们要说的不是 Sigmaplot,而是一款很多人听说过但是没用过的软件,Mathematica。

可能有人要问,为什么我要用 Mathematica 这么专业的软件啊?

说实话,Mathematica 这几年发展下来,已经不算是一款专业软件了,它上手快,用起来简单而优雅。甚至 Mathematica 都有了 Home 版了!(这…… )

关于 Mathematica 的函数f作图呢?参考 高数也要用 Mathematica —— 作图一 这篇文章。

但数据处理这部分需要比较长的篇幅,所以请看怎样学高数小组的这篇吧:

http://www.guokr.com/post/449185/

h = a –bqc线性最小二乘问题 c语言,物理实验之最小二乘法 | 怎样学习大学物理小组 | 果壳网 科技有意思...相关推荐

  1. c语言实验设备管理系统设计作业,c语言程序设计实验设备管理系统

    c语言程序设计实验设备管理系统 1 苏州市职业大学继续教育学院 课 程 设 计 说 明 书 名称 C 语言程序设计课程设计 2012 年 10 月 31 日至 2012 年 11 月 14 日共 2 ...

  2. 线性最小二乘问题求解的豪斯荷尔德法C实现

    求解线性最小二乘问题的豪斯荷尔德法 需要调用的QR分解见另一篇: 一般实矩阵的QR分解 下面是具体算法: #include "4maqr.c"#include "stdl ...

  3. 求解线性最小二乘问题的奇异值分解及广义逆法的C++实现

    求解线性最小二乘问题的广义逆法的C++实现 1,功能 2,方法说明 3,函数语句与形参说明 第一步,求对系数矩阵进行奇异值分解(muav函数) #include "stdlib.h" ...

  4. GSL中的线性最小二乘拟合

    线性最小二乘拟合 本章描述使用线性组合函数对实验数据进行最小二乘拟合的例程.数据可以是加权的,也可以是未加权的,即带有已知的或未知的错误.对于加权数据,函数计算最佳拟合参数及其相关的协方差矩阵.对于未 ...

  5. Matlab最小二乘法:线性最小二乘、加权线性最小二乘、稳健最小二乘、非线性最小二乘与剔除异常值效果比较

    最近我们被客户要求撰写关于最小二乘法的研究报告,包括一些图形和统计输出.matlab软件在拟合数据时使用最小二乘法.拟合需要一个参数模型,该模型将因变量数据与具有一个或多个系数的预测数据相关联.拟合过 ...

  6. 一文详解线性最小二乘与非线性最小二乘

    一文详解线性最小二乘与非线性最小二乘 一.最小二乘法的引出 二.线性最小二乘法 1.线性最小二乘的描述 2.线性最小二乘特殊情况的求解 3.线性最小二乘一般情况的求解 三.非线性最小二乘法 1.非线性 ...

  7. MULLS:一种基于多尺度线性最小二乘的激光SLAM算法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨paopaoslam 来源丨 泡泡机器人SLAM 标题:MULLS: Versatile LiD ...

  8. 数据结构_C语言_实验一_线性结构 ——一元多项式求导

    文章目录 实验一 线性结构 1. 实验目的 2. 实验内容 3. 实验要求 4. 实验过程 (1) 问题描述 (2) 数据结构与算法设计 (3) 程序实现 (4) 实验结果 (5) 实验总结 实验一 ...

  9. 数值计算——线性最小二乘问题

    数值计算--线性最小二乘问题         最小二乘法(又称最小平方法)是一种数学优化技术.它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数 ...

最新文章

  1. VS中怎样使用Nuget添加MQTTnet依赖
  2. CSS一些实用的技巧
  3. ucla ai_UCLA的可持续性:用户体验案例研究
  4. 三分钟教你用 Scarlet 写一个 WebSocket App
  5. linqto 多个关键字模糊查询_MySQL查询与约束
  6. java在控制台输出空心正方形,菱形,空心菱形
  7. 方舟生存进化刷精英恐龙代码
  8. 迭代法动态生成谢尔宾斯基三角形
  9. python中文分词器(jieba类库)
  10. 多租户:防止意外创建可插拔数据库(PDB)- Lone-PDB
  11. 在vue项目中使用echarts 阿星小栈
  12. 美国计算机科学学会会长,美国计算机科学computerscience 专业
  13. [nginx代理配置][nginx proxy_pass][nginx从一台服务器代理到另外一台服务器,浏览器地址不改变]
  14. 悟空问答python反爬_悟_刘德华_高音质在线试听_悟歌词|歌曲下载_酷狗音乐
  15. java 支付宝帐单_java后台实现支付宝对账功能的示例代码
  16. “九”答不可 | 量子通信如何做到安全保密?
  17. 从键盘输入10个正负相间的整数,输出个位数是奇数、十位数是偶数的所有数。
  18. Python Excel处理脚本
  19. 后端向前端通过 fastJson 传递 Json 到前端无法显示或者显示位 [object object] 问题
  20. 大话西游手游服务端可开服

热门文章

  1. 【递归与递推】诸侯安置
  2. C++创建桌面应用程序:处理对话框DialogBox
  3. GreenDao3.2的基本使用方法
  4. 关于点击事件网页自动跳转,并且F12的调试窗口消失,找不到调用方法的解决办法
  5. 基于android的ipcamera编程,spydroid-ipcamera-master完整实现源码
  6. HTML5期末大作业:电影网页设计——在线影院6页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计
  7. 学无止境的CSS(xHTML+CSS技巧教程资源大全)
  8. 【WPS-OFFICE-Word】 WPS中样式的运作原理?样式自动更新、自动改变如何处理?样式的管理方法?
  9. 武汉理工大学计算机学院导师联系方式,武汉理工大学计算机学院班主任(班导师)工作条例.doc...
  10. 修改游戏服务器的数据,修改游戏服务器数据的教程