摘要:本文介绍曲线拟合法的基本原理,利用用最小二乘法分别确定线性曲线、多项式、指数曲线的函数模型,并对模型的各个参数进行求解。并用Matlab编制程序,对样本数据进行指数拟合与仿真。

关键词:曲线拟合;最小二乘法;matlab;仿真

根据有限的离散测量点进行曲线拟合是工程实践中经常遇到的问题。曲线拟合是用连续曲线近似地刻画或比拟平面上离散点组函数关系的一种数据处理方法。传统的曲线拟合方法是用解析表达式逼近离散数据。目前,常用的曲线拟合方法有最小二乘法、遗传算法、契比雪夫法及插值法等,这使传统的方法得到了发展和改进:文献[1]对多周期正弦曲线拟合以及正弦曲线的外推存在的问题进行了探讨,指出正弦曲线的最小二乘多项式拟合方法的局限性,提出了一种基于傅利叶变换的频率已知正弦曲线拟合方法。文献[2]根据最小二乘原理,将样条小波函数应用于曲线拟合中,提出了一种新型的信号处理方法―样条小波最小二乘法(SWLS);文献[3]在利用BP神经网络进行曲线拟合时,提出了一种新的快速构建BP神经网络结构的方法,同时针对在曲线拟合过程中经常出现的一些问题提出了解决方案。

本文介绍曲线拟合法的基本原理,针对样本点的各种分布情况,采用最小二乘法的方法,选取不同的函数曲线进行拟合。

1.曲线拟合的最小二乘法

曲线拟合问题是指:通过观察和测量得到一组离散数据序列(xi,yi),i=1,2,3・・・m,当所得到数据是比较准确时,那么,构造拟合函数ψ(x)逼近客观存在的函数y,使得ψ(x)和y的误差或距离最小。

常用曲线拟合标准有以下三种:

①各点误差绝对值(1范数)的和最小,即:

R1=min∑mi=1ψ(xi)-yi

②各点误差模的最大值(∞范数)最小,即:

R∞=min(max1≤i≤mψ(xi)-yi)

③各点误差的平方和最小,即:

R=min∑mi=1[ψ(xi)-yi]2

数据拟合的最小二乘法问题是:根据给定的数据组(xi,yi),i=1,2,3・・・m,选取近似函数形式,即给定函数类H,求函数ψ(x)∈H,使得

∑ni=1[ψ(xi)-yi]2=minφ∈H∑mi=1[φ(xi)-yi]2

这种求近似函数的方法称为数据拟合的最小二乘法,函数ψ(x)称为这组数据的最小二乘函数[4]。

2.曲线拟合

2.1线性拟合

对给定的数据组(xi,yi),i=1,2,3・・・m,求一条直线:p(x)=a+bx,按最小二乘法的求作方法,拟合直线与定标曲线相应点输出量偏差的平方和为最小。有多元函数的极值原理,minQ(a,b)的极小值要满足:

Q(a,b)a=2∑mi=1(a+bxi-yi)・1=0Q(a,b)b=2∑mi=1(a+bxi-yi)・xi=0

整理得到满足最小均方差的正则方程,用消元法或者克莱姆方法解出方程,得方程(1):

a=1D(∑mi=1yi∑mi=1x2i-∑mi=1xi∑mi=1xiyi)b=1D(m∑mi=1xiyi-∑mi=1xi∑mi=1yi)

其中,D=m∑mi=1x2i-(∑mi=1xi)2。

2.2多项式拟合[4]

对给定的数据组(xi,yi),i=1,2,3・・・m,求一个n的多项式(n

ma0 + a1 ∑mi = 1xi + ・・・ + an ∑mi = 1xni = ∑mi = 1yi a0 ∑mi = 1xi + a1 ∑mi = 1x2i ・・・ + an ∑mi = 1xn + 1i = ∑mi = 1yi xi ・・・a0 ∑mi = 1xni + a1 ∑mi = 1xn + 1i ・・・ + an ∑mi = 1x2ni = ∑mi = 1yi xni

由函数组1,x,x2,・・・xm的线性无关性可证明,方程组存在唯一的解,且解所对应的多项式必定是已给数据组的最小二乘法n次拟合多项式。

2.3指数拟合

如果数据组(xi,yi),i=1,2,3・・・m的分布近似指数曲线,则拟合时可用指数函数y=a・ebx。先将曲线方程线性化,两边取对数得:lny=lnb+ax(1),分别命Y=lny,A=lnb,则方程(1)可写成Y=A+ax,再用最小二乘法按直线拟合的原理求出A,进而b=eA可求。

3.matlab仿真

采用Basic,C等编程语言来实现曲线拟合,需要编写非常复杂的算法程序,而Matlab 语言是集数值计算、符号运算和图形处理等强大功能于一体的科学计算语言,适用于工程应用各领域的分析、设计和复杂计算。在此方面,Mat lab 具有一般高级语言无法比拟的优势。

在经济统计中的某商品销售量预测或者人口统计中的短期人口测算等等,都可以用指数函数来拟合,如表1为某疾病发病率与年龄段的关系。

表1某疾病发病率与年龄段的关系

x12345678y0.8982.383.071.842.021.942.222.77x9101112131415y4.024.675.466.5310.916.522.5

根据表1数据,建立以x为横坐标, y为纵坐标的坐标系,用Matlab软件把各x、y的值作为坐标点,画出这些点。在根据指数曲线拟合原理,可以求出A=-0.0910,a=0.1824,则作出函数图象如图1所示。

图1指数拟合仿真结果图

4.结束语

在通常的数据处理中,不论是线性拟合,还是多项式拟合,至相当一部分经变换可转变为线性拟合的非线性拟合,都可采用最小二乘法的原理来进行曲线拟合,并且基于最小二乘曲线拟合及Matlab实现方法简明、适用,可应用于类似的测量数据处理和实验研究。(作者单位:中国农业银行青海分行西宁支行)

参考文献:

[1]齐国清,吕健.正弦曲线拟合若干问题探讨[J].计算机工程与设计,2008,29(14):3677-3680.

[2]郑小萍,莫金垣,谢天尧.一种新型的曲线拟合技术在分析信号处理中的应用[J].计算机与应用化学,1999,16(5):371-372.

[3]包健,赵建勇,周华英. 基于BP网络曲线拟合方法的研究[J].计算机工程与设计,2005,26(7):1840-1848.

曲线拟合最小二乘法对数c语言实现,基于最小二乘法的曲线拟合相关推荐

  1. 曲线拟合最小二乘法对数c语言实现,数值计算_第6章曲线拟合的最小二乘法

    <数值计算_第6章曲线拟合的最小二乘法>由会员分享,可在线阅读,更多相关<数值计算_第6章曲线拟合的最小二乘法(23页珍藏版)>请在人人文库网上搜索. 1.第6章 曲线拟合的最 ...

  2. 最小二乘法幂函数C语言,跪求最小二乘法幂函数C 语言程序

    满意答案 mj43976914 2014.10.25 采纳率:44%    等级:7 已帮助:311人 最小二乘法是统计学里的东西额..怎么又幂函数?我猜想你是要logn复杂度的乘方快速幂吧: //a ...

  3. 基于最小二乘法的图像边界曲线拟合(matlab平台)

    **(源码资源****有常(注意目前是有常哦)私我vx:xdsqczkyqs713,源码(带GUI,GUI是用户界面的意思)40圆, 加一份课设报告50圆,加vx之前注意下后边的说明内容哦**,**说 ...

  4. matlab最小二乘法_基于最小二乘法的线性回归拟合

    阅读本文需要的知识储备: 高等数学 概率论与数理统计 Python基础 线性回归,其实生活中有很多这样的例子,比如:票价与行车距离.服务质量之间的关系,买房时房价与面积.地域等的关系.给我们一组这样的 ...

  5. matlab最小二乘法参数辨识,基于最小二乘法的MATLAB辨识仿真实验

    <工业控制计算机>2013 年第 26 卷第 7 期基于最小二乘法的 MATLAB 辨识仿真实验 崔秀美 刘文杰 陈 澄 (苏州大学机电工程学院,江苏 苏州 215021) Experim ...

  6. 基于最小二乘法的磁力计椭球拟合方法

    基于最小二乘法的磁力计椭球拟合方法 在写飞控代码时,必然要对磁力计的测量数据进行校正,本文将介绍一种简单实用的校正方法–基于最小二乘法的椭球拟合方法. 本文椭球拟合部分来自博文IMU加速度.磁力计校正 ...

  7. 电机仿真系列-基于最小二乘法的永磁同步电机参数辨识

    基于最小二乘法的永磁同步电机参数辨识   永磁同步电机具有体积小.转动惯量低.结构简单等优点,被广泛应用于控制系统中.然而在实际应用过程中,控制系统会受到高温.负载等外界因素的影响,永磁同步电机的电感 ...

  8. matlab最小二乘法参数辨识,基于最小二乘法的永磁同步电机在线参数辨识的仿真...

    摘  要:较高性能的永磁同步电机矢量控制系统需要实时更新电机参数,文章中采用一种在线辨识永磁同步电机参数的方法.这种基于最小二乘法参数辨识方法是在转子同步旋转坐标系下进行的,通过MATLAB/SIMU ...

  9. Python基于最小二乘法的一元线性回归方程

    基于最小二乘法的一元线性回归方程 要求 关于房价的,只需要一个自变量一个因变量 用到最小二乘,但不是封装好的函数,有算法的具体实现 原理 最小二乘法 我们以最简单的一元线性模型来解释最小二乘法.什么是 ...

  10. python 最小二乘法 线性方程组_Python实现基于最小二乘法的线性回归

    下面展示利用Python实现基于最小二乘法的线性回归模型,同时不需要引入其他科学计算以及机器学习的库. 利用Python代码表示如下: #首先引入数据集x,和y的值的大小利用Python的数据结构:列 ...

最新文章

  1. 谢烟客---------Linux之文件安全上下文及特殊权限位
  2. 掌握 Ajax,第 8 部分: 在请求和响应中使用 XML
  3. Windows 窗设计时结构
  4. http 路径 |_HTTP 请求與响应的格式及 curl 命令使用
  5. LwIP应用开发笔记之九:LwIP无操作系统TELNET服务器
  6. (50)流式布局—京东移动端首页制作案例
  7. hive 语句总结_HiveQL查询语句总结
  8. python jsonpath set value_Python学习:json对象快速访问(续)
  9. 基于深度学习、强化学习、开源RASA对话引擎的多场景对话机器人
  10. Oracle中job_type,【学习笔记】Oracle DBMS_SCHEDULER详细介绍与使用案例
  11. 《数学之美》—信息指纹及其应用
  12. 小程序体验版二维码进入请求超时
  13. Day2:数据类型介绍及相关使用方法
  14. 数字签名的全过程签名与验证
  15. ASP.NET实现日期转为大写的汉字
  16. c语言数组文曲星猜数游戏编程,文曲星“猜数字”游戏的计算机模拟 —— 算法分析与实现...
  17. PCIe数据卡设计资料第611篇:基于VU9P的双路5Gsps AD 双路6Gsps DA PCIe数据卡
  18. 计算机网络:(终章)4万字长文,总复习
  19. 小猿圈python之python期末考试测试题(二)_小猿圈Python开发面试题(二)
  20. TikTok抖音国际版留存背后的数据和算法推演

热门文章

  1. ElasticSearch 7.7.0 核心篇
  2. ST7789-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)
  3. smartPrinter安装报错
  4. OCR文字识别方法综述
  5. Hadoop和大数据:60款顶级大数据开源工具
  6. 基于Spatial-Temporal Transformer的城市交通流预测
  7. Unity 使用 iTween
  8. 猿创征文|从单机百万tpmc到分布式千万tpmc,GaussDB性能提升的3个关键技术剖析
  9. java项目代码加密
  10. Linux介绍及基本操作