当前位置:文档之家› MATLAB语言在非线性最小二乘估计中的应用

MATLAB语言在非线性最小二乘估计中的应用

eslimation to deal with matrix operation Compared with other arithmetic language.MATLAB has characters of simple and direct pro— gram and high speed of operation.In this paper.it is described that how MATLAB software is applied to parameter estimation of lion— linear models.What is mnrP。the function of simplex searI,h to estimate the parameter of rlonllnear models is given Key words:Matrix Laboratory;least squares parameter of nonlinear models;simplex search
语言相比,具有简单直观、速度快等特点==本文将MATLAB语言运用于非线性模型参数估计,井给出了单纯影法进行非线性
参数估计的函数程序
关键词:MATI.AB;非线性最小二乘;单纯形法
中图分类号:10208
文献标识码:B
文章编号:1672—5867(2004)03—0035—04
Application of MATLAB Software to Parameter Estimation of Nonlinear Models
收稿日期:2004—04—26
于科学运算中,包括数值计算、符号计算、数据拟 合、图形图像处理、系统模拟和仿真以及动画设计、 有限元分析等。
以MATLAB程序代码所编写的文件通常以 “m”为扩展名,所以又称为“M文件”。M文件分为 两类:脚本和函数。当在MATLAB命令窗口直接输 入脚率文件的主文件名时,MATLAB就可以逐一执 行此文件里的所有命令,而且所产生的变量均保留 在基本工作空间中,很容易进行变量查看及调试。 函数文件可以接受输入变量,并将运算结果送至输 出变量,运算过程中所产生的变量都存放在函数本 身的工作空间,并不会和MATLAB基本工作空间的 变量相互覆盖,因此特别适用于大型程序代码,会 使程序代码模块化,并易于维护和改进。 l非线性最,ix--莱估计
else
X(index(t+1),:)=Xs;
end
else ifRr>Rl&Rr<Ru
X(index(t+1),:)=Xr; end end
end
end;
函数4:确定反射点 function[斯,勋]=freflect(X,index) t=length(index)一1;i=1:£; Xcl=sum(X(index(1“),i));Xc=Xel/t; Xr=2十Xc—X(index(t+1),:); 函数5:确定伸长点 function Xe=fextend(舶,Xr,cgene) (cgene:伸长因子) if nargin<3
forj=1:m
i=1:n;
d1(J)=sum(exp(2}i_x2(J)));d2 (j)=slim(1.{exp(i·z2(j)));
R(j)=xl(j-)^2}dl(J)一2}xl(J)十d2
(J); End 算例:已知非线性模型为L.=x.e“。其中参数
x.和托的真值为X=(5.420 136 187,一0.254 361 89),L。的5个中真值(用参数的真值算得)和相应 的5个同精度观测值如表1所示:
IVlA'I'IAB与其他编程语言相比,其编程效率 高,语句简单而内涵丰富,具有高效的矩阵和数组 运算能力,用户使用方便。不需要编程者有很强的 计算机编程技巧,使我们使用起来就像在使用草稿 纸一样,只要在主窗口中输入数据,就可以直接得 到计算结果。而且,MATIAB的工具箱提供了与其 他高级语言如C.yFORTRAN的接口,所以在实际的
egene=2; end
Xe=(1+cgene)}肼一cgene·Xc; 函数6:确定缩短点 function Xs=fshorten(‰,册,dgene) (dgeng:缩短因子)
if nⅡgln<3
dgene=0.5: end
Xs=(1一dgene)十Xc+dgene·Xr; 函数7:确定缩小点 function XX=fshrink(X.index) n=length(index); XX=(X+ones(n,I)}X(index(I),:))/2; function R;tIlshu(1,x) n=length(1);xl=x(:,1);x2=*(:,2); m=length(x2);
d}ones(t)+(c—d)}eye(£); z=Olle8(t,1)十x0+cd;X=[加;x]; 函数2:搜索终止条件 function St=fstop(R,sgene) (注:sgene:给定的误差限)
if nm?gin<2 sgene=Ie一5:
end
RI=min(R);n=length(R); Stop。sqrt(SUm((R—RI+Ogles(1,n)).2)/H); if Stop<sgene
【SortR,index]=sort(R);
St=fstop(R);RI=SortR(1);Xl=X
(index(1),:);
Ru=SortR(t+1);地=X(index(t+
1),:);
[肼,Xc]=frefleet(X,index);Rr=f}ls.
hu(1,肼);
ifRr(=R,
‰):
Xe=fextend(&,肼); Re=fhshu(1,
值可以算得%(5.428,一0.256)。此例目标函数
为:
R(x)=,(x),(x)一2,(x)L


=xi∑e“2—2x:∑L.e”
用MATIAB构造目标函数程序如下: function R=f}lshu(1,*) n=length(1);xl=x(:,1);x2=z(:,2); m=length(x2); forj=1:m
St=1: else
St=0:
end;
函数3:单纯形法求最小二乘估值
funetion xl=fminseh(加,1)
(注:m:待估参数的初始近似值;1:观测值;XI:
待估参数的非线性最小二乘估计值)
X=feshi(柏,5);St=0;
While(St==0)
R=thshu(1,X);t=length(R)一l;
线性最小二乘估值的程序。其函数源代码如下: 函数1:选取初始单纯形 functionX=feshi(如,s) (注:如:待估参数的初始近似值㈣单纯形棱
长) t=length(加);c=(sqrt(t+1)+t一1)}s/
(sqrt(2)女t); d=(sqrt(t+1)一1)十s/(sqrt(2){t);cd=
i=1:n:
d1(j)=sum(exp(2十i}x2(j)));d2 (j)=SUlII(1-+exp(i}*2(j)));
尺(j)=xl(J)“2女dl(,)一2+xl(J)+d2 (J);
End
现在只需在MATIAB主窗口中输入初值X。, 及观测值厶,并设定好必要的参数,即可得到计算 结果。如输入本例中的l=[4.2,3.25,2.52,1.95, 1.51];x0:[5.4,一0.3];X1=fminsch(加,1);,即 可得到结果Xl=(5.422 3,一0.255 8)。参数估值 的中误差为:lM09lI=O.002 6。 4小结
衰1 L;的真值和相应的观测值 Table l the tlllle values and也elr
∞H唧蚰dlIIg observatiom
真值4.202 834 3 258 924 2.527 006 1.959 469 1 519 394
观测值4 20
3.25
2 52
1.95
1.51
本例中,取单纯形棱长为l=5,用前两个观测
ifRe<R,
X(index(£+1),:)=Xe;
else
X(index(t+1),:)=Xr; end
万方数据
第3期
张 庆等:MATLAB语言在非线性最小二乘估计中的应用
37
else ifRr>=Ru
(1,‰);
施=fshorten(‰,Xr);RsXX=fshfink(X,index):X=XX;
0引 言 在科学研究和工程应用中,往往要进行大量的
数学汁算,其中包括矩阵运算。这些运算一般米说 难以用手工精确和快捷地进行,而要借助计算机编 制相应的程序做近似计算。现在流行用Fortran、 C++和VC语言编制计算程序,既需要对有关算法 有深刻的了解,还需要熟练地掌握所用语言的语法 及编程技巧.,对多数科学工作者『『li言,同时具备这 两方面技能有一定困难。为克服上述困难,美国 MathWorks公司于1984年推出了MATLAB软件包, 其名称是巾”矩阵实验室”(Matrix I自tboratory)所合 成的,由此可知其最早的开发理念是提供一套{E常 完善的矩阵运算命令。如今它不仅可以提供强大 的科学运算、奠活的程序设计流程功能,还可以提 供高质量的图形可视化|j界面设计、便捷的与其他 程序和语青接口的功能。MA。n.AB被广泛地运用
在测量上,大量的数学模型是非线性模型。现
万方数据
测绘与空间地理信息
2004年
实世界中严格的线性模型并不多见,它们或多或少 都带有某种程度的近似。对于大地测量中大量的 非线性模型,传统的做法是线性近似,即将其展开 为泰勒级数,并取其一次项。如此线性近似,必然 会引起模型误差。过去由于测量精度不高,线性近 似所引起的模型误差往往小于观测误差,故可以忽 略不计。随着科学技术的不断发展.现在的观测精 度已大大提高,致使因线性近似所产生的模型误差 与观测误差相当,有些甚至还会大于观测误差。例 如,GPS载波相位观测的精度很高,往往小于因线 性近似所产生的模型误差。结合测量数据处理的 实际,对非线性模型参数估计的研究是必要的。
相关主题