资源描述:
《数学建模—插值拟合new》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、插值与拟合数学建模插值求一个函数,经过已知的数据点。常用的插值方法有:多项式插值,Hermite插值,分段线性插值,三次样条插值,多项式插值(拉格朗日多项式插值,牛顿插值):可找到一个唯一的n次多项式经过已知的n+1个数据点;但高次多项式插值往往会产生严重的振荡现象(龙格现象)常用分段低次插值代替。如分段线性插值,三次样条插值等。Hermite插值要求在节点处与函数有相同的一阶、二阶甚至更高阶的导数值,用Matlab插值y=interp1(x0,y0,x):分段线性插值,x0,y0为节点数组,x为插值点数组,y为插值结果。y=i
2、nterp1(x0,y0,x,'spline'):三次样条插值。y=spline(x0,y0,x):三次样条插值。或:y=ppval(spline(x0,y0),x))y=pchip(x0,y0,x):分段三次Hermite插值。或:y=ppval(pchip(x0,y0,x))三次样条插值和分段三次Hermite插值的区别:三次样条插值更光滑,而分段三次Hermite插值振荡少,更平坦。见helppchip二维插值插值节点为网格节点z=interp2(x0,y0,z0,x,y,'method')method有'nearest'
3、,'linear','cubic','spline'pp=csape({x0,y0},z0,conds),z=fnval(pp,{x,y})conds是边界条件例题在一丘陵地带测量高程,x和y方向每隔100米测一个点,得高程如下表,试插值一曲面,确定合适的模型,并由此找出最高点和该点的高程。Matlab求解二维网格节点插值编写程序如下:x=100:100:500;y=100:100:400;z=[636697624478450698712630478420680674598412400662626552334310];pp=cs
4、ape({x,y},z')xi=100:10:500;yi=100:10:400;cz=fnval(pp,{xi,yi});[i,j]=find(cz==max(max(cz)))%找最高点的地址xh=xi(i),yh=yi(j),zmax=cz(i,j)%求最高点的坐标[xx,yy]=meshgrid(xi,yi);[x0,y0]=meshgrid(x,y);mesh(xx,yy,cz'),holdon,plot3(x0,y0,z,'ko')二维插值插值节点为散乱节点Matlab中提供了插值函数griddata,其格式为:z=
5、griddata(x0,y0,z0,x,y,'method')method有'nearest','linear','cubic'例题在某海域测得一些点(x,y)处的水深z由下表给出,在矩形区域(75,200)×(-50,150)内画出海底曲面的图形。Matlab求解二维网格节点插值编写程序如下:clc,clearx=[129,140,103.5,88,185.5,195,105,157.5,107.5,77,81,162,162,117.5];y=[7.5,141.5,23,147,22.5,137.5,85.5,-6.5,-8
6、1,3,56.5,-66.5,84,-33.5];z=-[4,8,6,8,6,8,8,9,9,8,8,9,4,9];xmm=minmax(x)%求x的最小值和最大值ymm=minmax(y)%求y的最小值和最大值xi=xmm(1):xmm(2);yi=ymm(1):ymm(2);zi1=griddata(x,y,z,xi,yi','cubic');%立方插值zi2=griddata(x,y,z,xi,yi','nearest');%最近点插值zi=zi1;%立方插值和最近点插值的混合插值的初始值zi(isnan(zi1))=zi
7、2(isnan(zi1));%把立方插值中的不确定值换成最近点插值的结果subplot(1,2,1),plot(x,y,'*')subplot(1,2,2),mesh(xi,yi,zi)已知一组(二维)数据,即平面上n个点(xi,yi)i=1,…n,寻求一个函数(曲线)y=f(x),使f(x)在某种准则下与所有数据点最为接近,即曲线拟合得最好。+++++++++xyy=f(x)(xi,yi)ii为点(xi,yi)与曲线y=f(x)的距离曲线拟合第一步:先选定一组函数r1(x),r2(x),…rm(x),m8、1r1(x)+a2r2(x)+…+amrm(x)(1)其中a1,a2,…,am为待定系数。第二步:确定a1,a2,…am的准则(最小二乘准则):使n个已知点(xi,yi)与曲线y=f(x)的距离i的平方和最小。记问题归结为,求a1,a2,…am使J(a1,a2