matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

7.8 随机数据点上的二元拟合及其MATLAB程序

7.8  随机数据点上的二元拟合及其MATLAB程序

 

例7.8.1 设节点(X,Y,Z)中的X和Y分别是在区间上的50个随机数,Z是函数Z=7-3x3e在(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                     %结束在当前图形上添加新图形.

运行后屏幕显示用最近邻内插法拟合函数Z=7-3x3e在两组不同节点处的曲面及其插值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的值.

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, '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-3x3e在两组不同节点处的曲面和节点的图形及其插值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                     %结束在当前图形上添加新图形.

运行后屏幕显示用三角基三次内插法拟合函数Z=7-3x3e在两组不同节点处的曲面和节点的图形及其插值ZI(略).

(4)MATLAB 4网格化坐标方法.

输入程序

>> 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, '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在两组不同节点处的曲面和节点的图形及其插值ZI(略).

(5)作被拟合曲面Z=7-3x3e和节点的图形.

输入程序

>> 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的曲面和节点的图形及其函数值ZI(略).

欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3070800.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1