a = 0.3828 0.4070 -0.3901 0.0765 -0.4598
0.5653
WE = 1.5769e-004
即,最佳逼近函数为
y=0.3828+0.4070*x-0.3901*x^2+0.0765*exp(x) -0.4598*cos(x) +0.5653*sin(x).
8 随机数据点上的二元拟合及其MATLAB程序
例8 设节点(X,Y,Z)中的X和Y分别是在区间[?3,3]和[?2.5,3.5]上的50个随机数,Z是函数Z=7-3x3e-x -y在(X,Y)的值,拟合点(XI,YI)中的XI=-3:0.2:3, YI=-2.5:0.2:3.5.分别用二元拟合方法中最近邻内插法、三角基线性内插法、三角基三次内插法和MATLAB 4网格化坐标方法计算在(XI,YI)处的值,作出它们的图形,并与被拟和曲面进行比较.
解 (1)最近邻内插法.输入程序
>> x=rand(50,1);
y=rand(50,1); %生成50个一元均匀分布随机数x和y, x,y . X=-3+(3-(-3))*x;%利用x生成的随机变量.
Y=-2.5+(3.5-(-2.5))*y; %利用y生成的随机变量.
Z=7-3* X.^3 .* exp(-X.^2 - Y.^2); %在每个随机点(X,Y)
处计算Z的值.
X1=-3:0.2:3;
Y1=-2.5:0.2:3.5;
[XI,YI] = meshgrid(X1,Y1); %将坐标(XI,YI)网格化. ZI=griddata(X,Y,Z,XI,YI, 'nearest') %计算在每个插值点
(XI,YI)处的插值ZI.
mesh(XI,YI, ZI) %作二元拟合图形. xlabel('x'), ylabel('y'), zlabel('z'),
title('用最近邻内插法拟合函数z =7-3 x^3 exp(-x^2 - y^2)
的曲面和节点的图形')
%legend('拟合曲面','节点(xi,yi,zi)')
hold on %在当前图形上添加新图形. plot3(X,Y,Z, 'bo') %用兰色小圆圈画出每个节点
(X,Y,Z).
hold of %结束在当前图形上添加新图形.
22运行后屏幕显示用最近邻内插法拟合函数Z=7-3x3e-x -y在两组不同节点处的曲面及其插值ZI(略).
(2)三角基线性内插法. 输入程序
>> x=rand(50,1);
y=rand(50,1); %生成50个一元均匀分布随机数x和y, x,y . X=-3+(3-(-3))*x;%利用x生成 上的随机变量.
Y=-2.5+(3.5-(-2.5))*y; %利用y生成 上的随机变量.
Z=7-3* X.^3 .* exp(-X.^2 - Y.^2); %在每个随机点(X,Y)
处计算Z的值.
22X1=-3:0.2:3;
Y1=-2.5:0.2:3.5;
[XI,YI] = meshgrid(X1,Y1); %将坐标(XI,YI)网格化. ZI=griddata(X,Y,Z,XI,YI, 'linear') %计算在每个插值点
(XI,YI)处的插值ZI.
mesh(XI,YI, ZI) %作二元拟合图形. xlabel('x'), ylabel('y'), zlabel('z'),
title('用三角基线性内插法拟合函数z =7-3 x^3 exp(-x^2 -
y^2) 的曲面和节点的图形')
%legend('拟合曲面','节点(xi,yi,zi)')
hold on %在当前图形上添加新图形. plot3(X,Y,Z, 'bo') %用兰色小圆圈画出每个节点
(X,Y,Z).
hold of %结束在当前图形上添加新图形. 运行后屏幕显示用三角基线性内插法拟合函数Z=7-3xe在两组不同节点处的曲面和节点的图形及其插值ZI(略).
(3)三角基三次内插法. 输入程序
>> x=rand(50,1);
y=rand(50,1); %生成50个一元均匀分布随机数x和y, x,y . X=-3+(3-(-3))*x;%利用x生成 上的随机变量.
Y=-2.5+(3.5-(-2.5))*y; %利用y生成 上的随机变量.
Z=7-3* X.^3 .* exp(-X.^2 - Y.^2); %在每个随机点(X,Y)
处计算Z的值.
X1=-3:0.2:3;
Y1=-2.5:0.2:3.5;
[XI,YI] = meshgrid(X1,Y1); %将坐标(XI,YI)网格化. ZI=griddata(X,Y,Z,XI,YI, 'cubic') %计算在每个插值点
(XI,YI)处的插值ZI.
mesh(XI,YI, ZI) %作二元拟合图形. xlabel('x'), ylabel('y'), zlabel('z'),
title('用三角基三次内插法拟合函数z =7-3 x^3 exp(-x^2 -
y^2) 的曲面和节点的图形')
%legend('拟合曲面','节点(xi,yi,zi)')
hold on %在当前图形上添加新图形. plot3(X,Y,Z, 'bo') %用兰色小圆圈画出每个节点
(X,Y,Z).
hold of %结束在当前图形上添加新图形.
-x -y3
22运行后屏幕显示用三角基三次内插法拟合函数Z=7-3x3e-x -y在两组不同节点处的曲面和节点的图形及其插值ZI(略).
(4)MATLAB 4网格化坐标方法. 输入程序
>> x=rand(50,1);
y=rand(50,1); %生成50个一元均匀分布随机数x和y, x,y . X=-3+(3-(-3))*x;%利用x生成 上的随机变量.
22Y=-2.5+(3.5-(-2.5))*y; %利用y生成 上的随机变量.
Z=7-3* X.^3 .* exp(-X.^2 - Y.^2); %在每个随机点(X,Y)
处计算Z的值.
X1=-3:0.2:3; Y1=-2.5:0.2:3.5;
[XI,YI] = meshgrid(X1,Y1); %将坐标(XI,YI)网格化. ZI=griddata(X,Y,Z,XI,YI, 'v4') %计算在每个插值点
(XI,YI)处的插值ZI.
mesh(XI,YI, ZI) %作二元拟合图形. xlabel('x'), ylabel('y'), zlabel('z'),
title('用MATLAB 4网格化坐标方法拟合函数z =7-3 x^3
exp(-x^2 - y^2) 的曲面和节点的图形')
%legend('拟合曲面','节点(xi,yi,zi)')
hold on %在当前图形上添加新图形. plot3(X,Y,Z, 'bo') %用兰色小圆圈画出每个节点
(X,Y,Z).
hold of %结束在当前图形上添加新图形. 运行后屏幕显示用MATLAB 4网格化坐标方法拟合函数Z=7-3x3e-x节点处的曲面和节点的图形及其插值ZI(略).
222 -y2在两组不同
(5)作被拟合曲面Z=7-3x3e-x -y和节点的图形. 输入程序
>> x=rand(50,1);
y=rand(50,1); %生成50个一元均匀分布随机数x和y, x,y . X=-3+(3-(-3))*x;%利用x生成随机变量.
Y=-2.5+(3.5-(-2.5))*y; %利用y生成随机变量.
Z=7-3* X.^3 .* exp(-X.^2 - Y.^2); %在每个随机点(X,Y)
处计算Z的值.
X1=-3.:0.1:3.; Y1=-2.5:0.1:3.5;
[XI,YI] = meshgrid(X1,Y1); %将坐标(XI,YI)网格化. ZI=7-3* XI.^3 .* exp(-XI.^2 - YI.^2); mesh(XI,YI, ZI) %作二元拟合图形. xlabel('x'), ylabel('y'), zlabel('z'),
title('被拟合函数z =7-3 x^3 exp(-x^2 - y^2) 的曲面和节
点的图形')
%legend('被拟合函数曲面','节点(xi,yi,zi)')
hold on %在当前图形上添加新图形. plot3(X,Y,Z, 'bo') %用兰色小圆圈画出每个节点
(X,Y,Z).
hold of %结束在当前图形上添加新图形. 运行后屏幕显示被拟合函数Z=7-3x3e-x(略).
2 -y2的曲面和节点的图形及其函数值ZI

