其中: 2 个输入参数x, y 是矢量, 表示已知的原始的输入值和输出值; m 为拟合多项式的次数。当m = 1 时为线性拟合。以及求解多项式拟合的测试函数:y1 = polyval( p , x1 )其中: x1 为测试数据矢量;y1 为多项式拟合曲线的输出矢量。
4 应用实例
假设一组测试数据x 和y:x = 0∶0. 5∶10;y = 0. 1* exp( - 0. 2* x) + 0. 5* exp( -0. 2* x) * sin( 1. 5* x ) ;该测试数据满足函数原型为:y( x) = a1ea2x + a 3ea4xsin( a5x )其中: ai 为待定系数。采用最小二乘曲线拟合的目的就是获得这些待定系数, 使得目标函数的值为最小。使用函数lsqcurvefit ( ) 来实现曲线拟合的步骤:
( 1) 根据原型函数, 编写如下的原型函数:function y= f unlch6( a, x)y = a ( 1) * exp( a ( 2) * x)+ a ( 3) * exp ( a( 4) * x) . * sin( a( 5) * x) ;
( 2) 使用函数lsqcurvefit( ) 来实现曲线拟合:x= 0∶0. 5∶10;y= 0. 1* exp( - 0. 2* x) + 0. 5* exp( - 0. 2* x) . * sin( 1. 5* x) ; %输入测试数据[ xx, r es]= lsqcurvefit( @funlch6, [ 1, 1, 1, 1, 1] , x, y) ;%进行曲线拟合计算可得到:xx= [ 0. 0998, - 0. 1994, 0. 5002, - 0. 2001, 1. 5000]r es= 1. 2398e- 007.由此可知, 计算出的待定系数xx 接近理论值a=[ 0. 1, - 0. 2, 0. 5, - 0. 2, 1. 5] , 精度较高。
( 3) 测试数据可视化处理:
x1= 0∶0. 1∶10;
y1= funlch6 ( xx, x1) ; %拟合曲线计算
y2= funlch6 ( xx, x) ; %拟合曲线的计算值
y3= ( y2- y) . / y; %计算相对误差
plot ( x1, y1, x, y, '* ') ; %画出拟合曲线可得到拟合曲线如图1 所示。
图1 拟合曲线图
5 结 语
本文介绍最小二乘曲线拟合法的基本原理, 就其Matlab 的实现方法进行研究, 给出曲线拟合Matlab实现的源程序, 并进行仿真测试。采用Matlab 对实验数据进行处理, 能够快捷的得到图文并茂的比较令人满意的处理结果。在许多工程分析和科学研究中,Matlab 软件正起着越来越重要的作用。可以预见,Matlab 软件在工程界将获得日益广泛的应用, 必将使他成为工程人员必备的工具。
参 考 文 献
[ 1] 刘钦圣. 最小二乘问题计算方法[M] . 北京:北京工业大学出版社, 1989.
[ 2] 王学辉, 张明辉, 等. Matlab 6. 1 最新应用详解[M] . 北京: 中国水利水电出版社, 2002.
来源:现代电子技术