最小二乘法工程实践

这篇具有很好参考价值的文章主要介绍了最小二乘法工程实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

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

关于其原理的介绍以及公式推导有很多优质资料,比如我学习最小二乘法时的两个视频课程。本文不再介绍原理,而是介绍最小二乘法的工程应用。

数学建模之数据拟合(3):最小二乘法_哔哩哔哩_bilibili

[知识梳理-04] Recursive Least Squares 递归最小二乘法 RLS_哔哩哔哩_bilibili

工程实践

本文介绍函数拟合与信号预测方面的应用,学会基本的使用之后,读者可以根据自身需求应用到误差估计、参数辨识等领域,具体使用方法可以参考相关文献资料。使用Matlab作为演示,为了展示最小二乘法的向量表示,不使用Matlab的库函数。读者自己使用时也可以使用matlab的函数,比如polyfit、lsqcurvefit等,他们都是基于最小二乘法,根据需求选择函数,查看Matlab帮助文档即可。

用最小二乘求解非线性曲线拟合(数据拟合)问题 - MATLAB lsqcurvefit- MathWorks 中国

多项式曲线拟合 - MATLAB polyfit- MathWorks 中国

计算公式

向量计算

普通的最小二乘法只有两个公式,其中:

inv(A):求A得逆矩阵

X.' :求X得转置矩阵

function [ w ] = LS_Fitting( X, Y)
%输入: X 自变量矩阵
%      Y 因变量矩阵
%输出: w 系数矩阵
%作者:飞鸟

P = inv(X.'*X );
w = P * X.' * Y;
 
end

转换优化问题求解

最小二乘法可以转化为优化问题,我们假设目标方程为一阶线性方程,即:y = ax + b ,我们的目的是求解一个合适的a和b,使得目标函数的值最小。通过极值的方法进行求解,会涉及高数中的求偏导。当然不懂偏导也没有关系,我们直接看求解结果,会使用就行。

最小二乘法工程实践,数学建模,单片机,最小二乘法,算法,c语言,matlab,stm32

求解结果:

 

最小二乘法工程实践,数学建模,单片机,最小二乘法,算法,c语言,matlab,stm32

在c语言中,不方便进行矩阵、向量运算,可以直接使用a、b的求解结果。实际使用时,x与y均为已知量。计算为最基本的加减乘除运算,我们很容易写出运算的代码。

a、b为一阶线性方程的解,一般一阶线性方程就可以了,如果需要其他目标方程,可以去查阅相关资料,查找的资料也是直接查找对应的系数值(a、b、...)就行,不用关注推导过程。

函数拟合

我们已经介绍了2种最小二乘法的计算方法,可以根据数据求解出我们需要的目标方程,以下是算法实践。

线性方程

目标方程:y = ax + b

系数矩阵:w = [a;b];

  1. 以奥运会历年男子百米成绩作为数据,历年年份写为自变量矩阵。历年成绩写为因变量矩阵。注意X自变量矩阵的写法,之后看到非线性方程会更加清晰。
X = [ 1980 1
      1984 1
      1988 1
      1992 1
      1996 1
      2000 1
      2004 1
      2008 1
      2012 1
      2016 1
      2020 1 ];
Y = [ 10.25
      9.99
      9.92
      9.96
      9.84
      9.87
      9.85
      9.69
      9.63
      9.81
      9.80];

w= LS_Fitting( X, Y);    
  1. 将数据输入函数LS_Fitting计算得到系数矩阵。 获得系数矩阵w,就拟合出了线性方程y = ax + b
  2. 数据对比如下图,拟合数据基本复合实际数据的趋势。

最小二乘法工程实践,数学建模,单片机,最小二乘法,算法,c语言,matlab,stm32

非线性方程

目标方程:y = ax^2 + bx + c

系数矩阵:w = [a;b;c];

  1. 以奥运会历年男子百米成绩作为数据,历年年份写为自变量矩阵。历年成绩写为因变量矩阵。注意X自变量矩阵的写法,自变量矩阵的写法包含了目标方程的信息。
X = [ 1980*1980 1980 1
      1984*1984 1984 1
      1988*1988 1988 1
      1992*1992 1992 1
      1996*1996 1996 1
      2000*2000 2000 1
      2004*2004 2004 1
      2008*2008 2008 1
      2012*2012 2012 1
      2016*2016 2016 1
      2020*2020 2020 1];
Y = [ 10.25
      9.99
      9.92
      9.96
      9.84
      9.87
      9.85
      9.69
      9.63
      9.81
      9.80];

w= LS_Fitting( X, Y);    
  1. 将数据输入函数LS_Fitting计算得到系数矩阵。 获得系数矩阵w,就拟合出了线性方程y = ax^2 + bx + c
  2. 数据对比如下图,拟合数据基本复合实际数据的趋势,并且相比线性方程,一元二次非线性方程的拟合效果更好。

最小二乘法工程实践,数学建模,单片机,最小二乘法,算法,c语言,matlab,stm32

信号预测

以非线性方程拟合结果预测2024年百米冠军成绩为例,拟合方程为:

Fun =(1039712176776813*x^2)/2305843009213693952 - (8167480322080091*x)/4503599627370496 + 4031421507106269/2199023255552

带入年份x=2024,输出预测成绩:9.8228

总结

最小二乘法应用广泛,拟合方程后的用法也不只是信号预测方面,例如还可以做智能控制,可以结合本文的拟合方法带入自己的应用场景。实际使用中,灵活选择目标方程,可以获得更好的拟合结果。

以上介绍的最小二乘法对离线数据进行拟合,而递归最小二乘法可以应用于时变系统,可以进行实时的参数估计、自适应控制等,并且占用内存资源更小,下一篇文章中介绍递归最小二乘法。

参考资料:

曹连江著,电子信息测量及其误差分析校正的研究,东北师范大学出版社,2017.09,第260页文章来源地址https://www.toymoban.com/news/detail-769108.html

到了这里,关于最小二乘法工程实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模十大算法04—图论算法(最短路径、最小生成树、最大流问题、二分图)

    一、最短路径问题 从图中的某个顶点出发,到达另一个顶点的 所经过的边的权重之和最小 的一条路径。 1.1 两个指定顶点之间的最短路径 问题如下:给出了一个连接若干个城镇的铁路网络,在这个网络的两个指定城镇间,求一条最短铁路线。 1.1.1 Dijkstra算法 迪杰斯特拉(D

    2024年02月02日
    浏览(73)
  • 数学建模理论与实践国防科大版

    目录 1.数学建模概论 2.生活中的数学建模 2.1.行走步长问题 2.2.雨中行走问题 2.3.抽奖策略 2.4.《非诚勿扰》女生的“最优选择” 3.集体决策模型 3.1.简单多数规则 3.2.Borda数规则 3.3.群体决策模型公理和阿罗定理 1.数学模型的概念 2.数学建模的概念 3.数学建模的一般过程 自然界

    2024年03月13日
    浏览(84)
  • 【深度学习】因果推断与机器学习的高级实践 | 数学建模

    身处人工智能爆发式增长时代的机器学习从业者无疑是幸运的,人工智能如何更好地融入人类生活的方方面面是这个时代要解决的重要问题。滴滴国际化资深算法工程师王聪颖老师发现,很多新人在入行伊始,往往把高大上的模型理论背得滚瓜烂熟,而在真正应用时却摸不清

    2024年02月05日
    浏览(46)
  • matlab数据的获取、预处理、统计、可视化、降维 | 《matlab数学建模方法与实践(第三版)》学习笔记

    一、数据的获取 1.1 从Excel中获取 使用readtable() 使用xlsread()——xlswrite() 1.2  从TXT中获取 使用load() 使用textread() 使用fopen() fread() fclose()  使用fprintf()写入信息到txt  1.3 从图片中获取 使用imread  1.4 从视频获取  使用视觉工具箱中的VideoFileReader  二、数据的预处理 2.1 缺失值处

    2024年01月19日
    浏览(67)
  • 【数学建模笔记】【第三讲】拉格朗日插值法,牛顿插值法,分段三次埃尔米特插值法及其MATLAB实践

    温馨提示:本文共有3748字,阅读并理解全文大概需要15-20分钟 数模比赛中,常常需要根据已知的函数点进行数据、模型的处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就 需要使用一些数学的方法,“模拟产生”一些新的但又比较靠谱的值来满足

    2024年02月05日
    浏览(47)
  • 2023年第十五届“中国电机工程学会杯”全国大学生电工数学建模竞赛题目 A题:电采暖负荷参与电力系统功率调节的技术经济分析

    建设以新能源为主体的新型电力系统是应对全球气候变化挑战的重要举措。高比例新能源接入导致电力系统调节能力稀缺,亟需开发新的调节资源,如火电深度调峰、建设抽水蓄能电站、配置储能和挖掘负荷中的调节能力等。现代电力负荷中含有较大比重的温控型负荷(如空

    2024年02月06日
    浏览(50)
  • 人工智能之数学基础【最小二乘法】

    原理 最小二乘法由勒让德(A.M.Legendre)于1805年在其著作《计算彗星轨道的新方法》中提出,主要思想是最小化误差二次方和寻找数据的最佳匹配函数,利用最小二乘法求解未知参数,使得理论值与观测值之差(即误差,或称为残差)的二次方和达到最小,即: E = ∑ i = 1 n

    2024年02月21日
    浏览(49)
  • 【笔记ing】数学建模(厦大谭忠)-引言、数学建模与数学思想

    数学建模  第一章 数学建模与数学思想 1 何谓数学建模 2 确定性数学 3 不确定性数学 4 数学与现实 5 数学建模与各学科 6 数学建模与各行业 7 变量识别 8 数学建模的步骤 9 论文写作要求 10 《数学建模》课程特色 11 先修课程教材与网站 12 培养目标 13 教学方法 1 何谓数学建模

    2024年02月03日
    浏览(50)
  • 零基础学习数学建模——(一)什么是数学建模

    本篇博客将详细介绍什么是数学建模。 ​ 本人在本科阶段获得过国赛省一、mathorcup数学建模一等奖、五一杯数学建模一等奖、华数杯数学建模一等奖、亚太杯数学建模一等奖和两次美赛一等奖。自己在数学建模这条路上摸爬滚打了几年,现在想借助博客分享自己在数学建模

    2024年01月25日
    浏览(59)
  • 什么是数学建模?如何在数学建模中拿奖?通过建模学到了啥?

    本人大一开始参加建模,先后参加过多项数学建模比赛和数学竞赛,拿过多项一等奖,二等奖。 提起模型,其实在初高中时期,我们就接触过,分别是数学模型,物理模型,概念模型。那么什么是数学模型?大部分人都会与 数字,符号,公式 等联系起来,这是非常正确的,

    2024年02月05日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包