热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

最小二乘法拟合注意的问题

最小二乘法拟合注意的问题使用类似yax+b这样的函数做曲线拟合可以很方便通过最小二乘法转换为线性方程组,继而通过矩阵操作求解。相关的教程可见:http:mathworld

最小二乘法拟合注意的问题

 

使用类似y=ax+b这样的函数做曲线拟合可以很方便通过最小二乘法转换为线性方程组,继而通过矩阵操作求解。

相关的教程可见:

http://mathworld.wolfram.com/LeastSquaresFitting.html

http://blog.csdn.net/yang6464158/article/details/24477547

 

对于类似y=aexp(bx)这样的函数用作曲线拟合,教科书往往会告诉你可以转换为log(y)=log(a)+bt,然后即转换成了上述线性的形式求解。

但我并不建议这样做,而是建议直接使用非线性最优化算法优化原始函数平方误差和的方式求解a 和b。

这主要是由于噪声的影响会导致两种方法有不一样的拟合结果。

 

例如这样一组数据:

X= [0      1     2     3     4     5     6     7     8     9     10    11    12    13    14];

Y=[ 0.4959    0.2616   0.1208    0.0553    0.0282   0.0151    0.0082    0.0053   0.0025    0.0024    0.0013   0.0009    0.0005    0.0002   0.0003];

Matlab中使用指数拟合的结果如下:

y= 0.4995*exp(-0.6916*x)

而通过取对数用线性拟合的结果如下:

Log(y)= -0.5462 *x + -1.161

y=0.3132*exp(-0.5462 *x)

可见两者差别非常之大

这主要是最小二乘法同等对待每个采样点的噪声,而且噪声往往跟函数值有关。直接采用最优化拟合时,每个点的噪声被同等对待,而取对数后,不同位置的噪声存在放大和缩小的效应,导致了这样的拟合误差。


图 1 直接最优化拟合

图 2取对数通过线性拟合


图 3线性拟合的最终拟合结果

 

 


推荐阅读
  • 事件是程序各部分之间的一种通信方式,也是异步编程的一种实现形式。本文将详细介绍EventTarget接口及其相关方法,以及如何使用监听函数处理事件。 ... [详细]
  • 本文章提供了适用于 Cacti 的多核 CPU 监控模板,支持 2、4、8、12、16、24 和 32 核配置。请注意,0.87g 版本的 Cacti 需要手动修改哈希值为 0021 才能使用,而 0.88 及以上版本则可直接导入。 ... [详细]
  • 本文为初学者提供了一条清晰的学习路线,帮助他们逐步成长为优秀的Web开发人员。通过十个关键步骤,涵盖从基础到高级的各个方面,确保每位学习者都能找到适合自己的学习方向。 ... [详细]
  • 最近遇到了一道关于哈夫曼树的编程题目,需要在下午之前完成。题目要求设计一个哈夫曼编码和解码系统,能够反复显示和处理多个项目,直到用户选择退出。希望各位大神能够提供帮助。 ... [详细]
  • Gty的二逼妹子序列 - 分块与莫队算法的应用
    Autumn 和 Bakser 正在研究 Gty 的妹子序列,但遇到了一个难题。他们希望计算某个区间内美丽度属于 [a, b] 的妹子的美丽度种类数。本文将详细介绍如何利用分块和莫队算法解决这一问题。 ... [详细]
  • 阿里云 Aliplayer高级功能介绍(八):安全播放
    如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机 ... [详细]
  • 高效重装Windows 10系统指南
    如何快速地为您的电脑重装Windows 10系统?本文将详细介绍从下载系统镜像到安装完成的每一步操作。 ... [详细]
  • 本文介绍了一种使用CSS3和jQuery实现的35款SVG图标加载动画。这些动画不仅视觉效果出色,还能提升用户体验。通过本文,您可以了解如何在项目中应用这些动画。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 本文介绍了如何使用Postman构建和发送HTTP请求,包括四个主要部分:方法(Method)、URL、头部(Headers)和主体(Body)。特别强调了Body部分的重要性,并详细说明了不同类型的请求体。 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 本文探讨了 Canvas 元素在不同尺寸设置下出现变形失真的原因,并详细解释了 HTML 尺寸和 CSS 尺寸的区别及其对视觉效果的影响。 ... [详细]
  • 第七卷《英才》强调,即使有良药,若不对症,效果也不如低等药物;即使有贤才,若不适用,效果也不如普通人。文中通过多个比喻,阐述了人才使用的重要性,指出合适的人才在适当的时间和场合才能发挥最大效用。 ... [详细]
  • 本文将详细介绍如何在Android Studio中导入和编译OSChina Android 2.4版本的源码。包括所需软件、下载地址以及一些注意事项。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
author-avatar
dongquchunlaizv_123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有