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

7.9 随机数据点上的n元拟合及其MATLAB程序


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

 

 

例7.9.1 首先利用MATLAB函数rand产生随机数据X1,Y1,Z1,然后用线性变换 (其中)将随机数据X1,Y1 ,Z1 变换为节点坐标(X,Y,Z),再用函数e生成数据W, 用三元最近邻内插法方法计算函数在插值点xi yizi=yi 处拟合数据的值,并作其图形.

解  输入程序   

>>  X1=-5+5*rand(10,1);

Y1=-5+5*rand(10,1);

Z1=Y1;

[X,Y,Z] = meshgrid(X1,Y1,Z1);

W=7-3* X.^3 .* Y.*(Z+1).* exp(-X.^2 - Y.^2- Z.^2);

xi=-3:0.5:10;

yi=-2:0.5:13;

zi=yi;

[XI,YI,ZI] = meshgrid(xi,yi,zi);

W1=griddata3(X, Y, Z, W, XI, YI, ZI, 'nearest');

slice(XI,YI,ZI,W1,[-2 4 9.5],9,[-2 2 9]),

%shading flat

%lighting flat

xlabel('x'), ylabel('y'), zlabel('z'),

title('被拟合函数W=7-3X^3Y(Z+1)exp(-X^2 - Y^2- Z^2) ');

hold on

colorbar('horiz')

view([-30  45])

运行后屏幕显示三元线性拟合值及其图形(略).

 

例7.9.2  设节点(X,Y,Z,W)中的X,Y和Z分别是在区间,Y=Z上的15个随机数,W是函数e在(X,Y,Z)的值,拟合点(xi,yi,zi)中的xi=-3:0.2:3,yi=-2.5:0.2:3.5,zi=yi, 用'linear'方法计算拟合数据的值,并作其图形.

解  输入程序

>> x=rand(15,1); y=rand(15,1);

X1=-3+(3-(-3))*x;

Y1=-2.5+(3.5-(-2.5))*y;Z1=Y1;

[X,Y,Z] = meshgrid(X1,Y1,Z1);

W=2+X.* exp(-X.^2 - Y.^2- Z.^2);

xi=-3:0.2:3; yi=-2.5:0.2:3.5; zi=yi;

[X2,Y2,Z2]=meshgrid(xi,yi,zi);

W1=griddata3(X, Y, Z, W, X2,Y2,Z2,'linear');

slice(X2,Y2,Z2,W1,[-1 0 1.5],2,[-2 3]),

shading flat,lighting flat,

xlabel('x'), ylabel('y'), zlabel('z'),

title('被拟合函数W=2+X exp(-X^2 - Y^2- Z^2)');

hold on,colorbar('horiz'), view([-3  5])

运行后屏幕显示三元线性拟合值及其图形(略).

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