王浩宇,唐诗华
(桂林理工大学 土木与建筑工程学院 ,广西 桂林 541004)
(1)
最小二乘的原则定出参数ak(k=0,1,2,…,n),从而得到所求的拟合曲线方程y=S*(x).假定拟合曲线为多项式,即S(x)=a0+a1x+…+anxn,n (2) (3) 这是关于a0,a1,…,an的线性方程组,写成向量与矩阵形式为 (5) 上述法方程当较大时呈现病态,因此,n≥3时可以用正交多项式做基,即令S(x)=a0p0(x)+a1p1(x)+…+anpn(x),pk(x)(k=0,1,2,…,n)是关于数据(xi,yi)(i=0,1,2,…,m)的正交多项式,进行Schmit正交化后在进行拟合,这里不做具体介绍[1]. (6) 表1 变形观测数据Tab.1 Deformation observation data 对某建筑物进行载荷变形监测,由观测给出数据表1. 主程序[2] function p=nihe(x,y,n) % 多项式拟合 % x,y为数据向量,n为拟合多项式次数,p为返回多项式 A=zeros(n+1,n+1); for i=0:n for j=0:n A(i+1,j+1)=sum(x.^(i+j)); end b(i+1)=sum(x.^i.*y); end a=A′; p=fliplr(a′); 说明:多项式拟合过程中由于涉及高阶多项式求值,往往会产生病态问题或者计算溢出等问题,可以采用自变量和自变量均值之差替代自变量进行运算,或者作不同的分段低次拟合以及将节点分布区间作平移变换以降低方程组条件数等[3],这里不做进一步的探讨. 在编辑窗口输入: x=[0.0 0.1 0.2 0.3 0.5 0.6 0.8 0.9 1.0]; y=[0.1 0.41 0.50 0.61 0.81 1.35 2.02 2.34 2.87]; p3= nihe (x,y,3) p5= nihe (x,y,5) p8= nihe (x,y,8) 可得到该数据的某次多项式拟合的各项系数例如: p3= 1.619 9 -0.319 7 1.415 9 0.173 6 p5= 32.901 9 -91.297 9 90.860 6 -36.029 9 6.336 8 0.087 7 p8= 1.0e+004 * Columns 1 through 8 -0.320 5 1.260 4 -2.000 2 1.641 6 -0.743 7 0.185 0 -0.023 7 0.001 4 图1 3次多项式拟合Fig.1 Cubic polynomial fitting Column 9 0.000 0 继续在编辑窗口输入: x1=0:0.01:1.0; y3=polyval(p3,x1); y5=polyval(p5,x1); y8=polyval(p8,x1); plot(x,y,′m*′,x1,y3,′r-.′,x1,y5,′c:′,x1,y8,′k-′ ); title(′ 不同次数多项式拟合对比′ ); legend(′数据点′,′3次拟合′, ′5次拟合′, ′8次拟合′ ) 图2 5次多项式拟合Fig.2 5 times polynomial fitting xlabel(′x-载荷′),ylabel(′y-变形量′ ) grid axis square 得到曲线拟合的图像如图1、图2、图3与图4所示. 根据拟合曲线即可对大桥的载荷和变形量进行分析和对比,从而分析最大的载荷通行量,对桥梁安全起到积极的作用. 图3 8次多项式拟合Fig.3 8 times polynomial fitting 图4 不同次数多项式拟合对比Fig.4 Different number of polynomial fitting contrast 表2 精度分析Tab.2 Precision analysis 后期通过观测数据与预测数据进行比较,通过对多项式拟合精度以及误差多次解算分析,取其平均值,数据见表2. 本文通过Matlab进行多项式拟合的实现,Matlab和其他汇编语言相比,实现起来比较方便,在变形监测分析中有着很广泛的应用.但是, 不同建筑物的荷载情况存在差异, 文中曲线拟合 的运用可能有一定的局限性,仍需要大量的实例进行验证.本文的方法只是一个初步的探讨,如能将更多影响变形的因素纳入模型并获得大范围的应用,定期重复观测次数也足够多,可能会获得较好的拟合度,从而得到最佳的预测结果. 参考文献: [1] 李庆扬.科学计算方法基础[M] .北京:清华大学出版社,2004:115-118. [2] 姜健飞,胡良剑,唐俭.数值分析及其Matlab实验[M].北京:科学出版社,2004:91-98. [3] 曾长雄.离散数据的最小二乘曲线拟合及应用分析[J].岳阳职业技术学院学报,2010,2(3):96-99.2 在变形监测中的实验分析
2.1 实验数据
2.2 用Matlab实现拟合
2.3 精度评定
3 结 论