首页专业论文技术应用政策标准解决方案常用资料经验交流教育培训企业技术专家访谈电力期刊
您现在的位置:北极星电力网 > 技术频道 > 常用资料 > 曲线拟合法的Matlab实现(1)

曲线拟合法的Matlab实现(1)

北极星电力网技术频道    作者:罗成汉1,刘小山2   2003/12/12 0:00:00   

  曲线拟合法的Mat lab 实现

  罗成汉1, 刘小山2

  ( 1. 集美大学信息工程学院 福建厦门 361021; 2. 广州海运集团公司 广东广州 510220)

  摘 要: 介绍最小二乘曲线拟合法的基本原理, 对最小二乘曲线拟合法的Matlab 实现方法进行研究, 其实现方法非常方便、简单; 并给出曲线拟合Mat lab 实现的源程序。给出一个仿真测试实例, 仿真结果表明该方法是可行的、有效的。

  1 引 言

  试验数据的正确处理, 关系到是否能达到试验目的, 得出明确结论。传统的数据处理方法, 很难得到一条很好地适应所有点的曲线, 同时也无法估计所得曲线的精度, 由此所确定的特征值就可能有较大的误差, 且没有建立起由这些点构成曲线的数学模型, 直接影响利用数学方法进行解析分析。在进行试验数据的分析时, 通常可采用曲线拟合法, 曲线拟合方法的目的是寻找一条光滑曲线, 他在某种准则下最佳地拟合数据。常用的曲线拟合方法有最小二乘法、契比雪夫法及插值法等。考虑到一般测试仪器的实际测试精度要求、微机的数据运算存储能力及实际调试中的经验, 实际测试中如受条件限制, 原始数据量有限, 为保证测试精度, 可以用插值法增加数据, 以使插值后的拟合曲线更接近实际状态。插值的方法可采用拉格朗日插值、牛顿插值、样条插值等, 通常是采用具有一定精度而运算量相对较小的分段二次插值, 即分段抛物线插值。

  本文介绍最小二乘曲线拟合法的基本原理, 就其Matlab 的实现方法进行研究, 给出曲线拟合Matlab实现的源程序, 并进行仿真测试, 对测试误差进行分析。

  2 曲线拟合法

  曲线拟合问题是指:已知N + 1 个点( xi, yi) , i= 0, 1, 2, ⋯, n, 其中x i 互不相同, 寻求函数f ( x) , 使f ( x) 与所有的数据点最接近。也可称为数据的平滑问题。曲线拟合最常用的方法是线性最小二乘法, 其基本的思路是:f ( x) = Σmi= 0 a iki ( x)其中: ki ( x) 是事先选定的一组函数; a i 是待定系数, ( i= 0, 1, 2⋯m, m< n) 。寻求a 0, a1 , a 2, ⋯, am, 使得J = Σmi= 0 ( f ( x i) -yi) 2 最小, 即称为最小二乘法准则[ 1]。当选取f ( x) = a0+ a1x 称为线性拟合;f ( x) = a0+ a 1x+ a2x2⋯+ amxm 称为多项式拟合;当选取f ( x) = a0+ a1ex 称为指数拟合。在某些场合下可采用解线性方程组来求曲线拟合。以多项式拟合为例, 选取f ( x) = a 0+ a 1x+ a2x 2⋯+ amxm, 已知数据( xi, yi) , i= 0, 1, 2, ⋯, n, 将( xi , yi) 依次代入上述多项式得到如下线性方程组:Σmk= 0 akxik , i= 0, 1, 2, ⋯, n其中: a k 为变量。其矩阵式表示为:可记作RA= Y, 求解以上线性方程组可得ak。用Matlab求解该线性方程非常简单, 只需编写简单的程序就能实现。其他拟合方法与多项式拟合类似, 只是在构造矩阵选取的函数不同而已。如指数拟合, 其矩阵式表示为:

  3 最小二乘曲线拟合法的Matlab 实现

  采用Basic, For tran, C 等编程语言来实现曲线拟合, 需要编写非常复杂的算法程序, 对一般的工程技术人员而言, 将是一个非常艰巨的任务。而Matlab 语言是集数值计算、符号运算和图形处理等强大功能于一体的科学计算语言, 适用于工程应用各领域的分析、设计和复杂计算, 而且他易学易用, 不要求使用者具备高深的数学知识和编程技巧。在此方面, Matlab 具有一般高级语言无法比拟的优势[ 2]。在Matlab 环境中, 他提供了许多函数来实现曲线拟合, 下面介绍曲线拟合法的Matlab 实现方法。

  ( 1 ) 使用Matlab 的最优化工具箱中的lsqcurvefit ( ) 函数来实现该函数的调用格式为:[ a, J] = lsqcurvefit ( 原型函数名, a0 , x, y)其中: a 0 为最优化的初值; x, y 为原始输入输出数据矢量。调用该函数则将返回待定系数向量a , 以及在此待定系数下的目标函数的值J 。

  ( 2) 采用线性方程组编程实现根据上述的线性方程组的构造原则, 针对不同的原型函数, 他的构造矩阵不同, 编写的程序不同。以指数拟合为例, 其Matlab 实现方法的源程序如下所示:

  function f= funlch3 ( x, y)t= [ ones ( size ( x) ) exp ( x) ] ;a= t\ y针对多项式拟合的实现, 除了上述方法外, 还可采用多项式拟合函数来实现。Matlab 提供多项式拟合函数:p = ployfit( x, y, m)

来源:现代电子技术
友情链接
北极星工程招聘网北极星电气招聘网北极星火电招聘网北极星风电招聘网北极星水电招聘网北极星环保招聘网北极星光伏招聘网北极星节能招聘网招标信息分类电子资料百年建筑网PLC编程培训

广告直拨:   媒体合作/投稿:陈女士 13693626116

关于北极星 | 广告服务 | 会员服务 | 媒体报道 | 营销方案 | 成功案例 | 招聘服务 | 加入我们 | 网站地图 | 联系我们 | 排行

京ICP证080169号京ICP备09003304号-2京公网安备11010502034458号电子公告服务专项备案

网络文化经营许可证 [2019] 5229-579号广播电视节目制作经营许可证 (京) 字第13229号出版物经营许可证新出发京批字第直200384号人力资源服务许可证1101052014340号

Copyright © 2022 Bjx.com.cn All Rights Reserved. 北京火山动力网络技术有限公司 版权所有