matlab实验报告

  • 格式:doc
  • 大小:144.50 KB
  • 文档页数:5

数学试验报告

一、实验问题:

有一形状较为复杂,但表面很光滑的曲面工件.通过科学手段,将其放置于某一空间坐标系下,测得曲面上若干个点的坐标如下:

Y

x -5 -4 -3 -2 -1 0 1 2 3 4 5

-5 13.6 -8.2 -14.8 -6.6 1.4 0 -3.8 1.4 13.6 16.8 0

-4 -8.2 -15.8 -7.9 2.2 3.8 0 0.6 7.3 10.1 0 -16.8

-3 -14.8 -7.9 2.5 5.8 2.3 0 2.7 5.1 0 -10.1 -13.7

-2 -6.6 2.2 5.9 3 -0.3 0 1.9 0 -5.1 -7.3 -1.4

-1 1.4 3.8 2.3 -0.3 -0.9 0 0 -1.7 -2.7 -0.6 3.8

0 0 0 0 0 0 0 0 0 0 0 0

1 -3.8 0.6 2.7 1.7 0 0 0.9 0.3 -2.3 -3.8 -1.4

2 1.4 7.3 5.1 0 -1.7 0 0.3 -3.1 -5.8 -2.2 6.6

3 13.6 10.1 0 -5.1 -2.7 0 -2.3 -5.8 -2.5 7.9 14.8

4 16.8 0 -10.1 -7.3 -0.6 0 -3.8 -2.2 7.9 15.8 8.2

5 0 16.3 -13.6 -1.4 3.8 0 -1.4 6.6 14.8 8.2 -13.6

要求:

(1)、画出该曲面工件的图形.

(2)、在已知相邻的横、纵坐标之间插入三个分点,用interp2命令计算出所有点处的竖坐标,画出相应的插值曲面.

(3)、分别用不同的方法求出该曲面工件表面积的近似值.

二、问题分析:

(1)、由x=-5:1:5;y=-5:1:5产生“格点”矩阵,再用已知的各“格点”的纵坐标z,用surf(x,y,z)命令即可画出未进行插值的工件表面图形。

(2)、要在已知相邻的横、纵坐标之间插入三个分点,则要用xc=-5:0.25:5;yc=-5:0.25:5产生另一个“格点”矩阵,然后使用interp2命令计算所有“格点”处的纵坐标z,然后再用surf(x,y,z)命令即可画出该插值曲面。

(3)、该工件是一个曲面,要求其表面积的近似值,可以想到的用“分”,“匀”,“和”,“精”的思想,将工件曲面分成n个在xoy平面上的投影是边长为d的矩形的曲面四边形(从第(2)题画出的曲面可以一目了然的看出),分别求出各个曲面四边形的面积再求和,n取的越大,d越小,越接近准确值。

对于如何求每一个曲面四边形的面积:

方法1:如图所示,曲面面积微元S近似等于以OP1和OP2为邻边的平行四边形的面积S=,只要n取的值较大,d足够小,误差会较小。

曲面微元:

方法2:由第一型面积分公式: ,曲面面积微元S等于. 由上述分割工件曲面的思想,dxdy即等于. 问题是如何求得曲面方程的对x、y的偏导数?通过查找资料,发现Matlab软件中有求梯度的命令gradient,因此,曲面的面积微元S可以求得,而且与方法一类似,当d取足够小时,误差可以忽略不计。

三、问题求解:

(1)、使用Matlab软件编写如下程序:

x=-5:1:5;

y=-5:1:5;

[xb,yb]=meshgrid(x,y);

zb=[13.6,-8.2,-14.8,-6.6,1.4,0,-3.8,1.4,13.6,16.8,0;

-8.2,-15.8,-7.9,2.2,3.8,0,0.6,7.3,10.1,0,-16.8;

-14.8,-7.9,2.5,5.8,2.3,0,2.7,5.1,0,-10.1,-13.7;

-6.6,2.2,5.9,3.0,-0.3,0,1.9,0,-5.1,-7.3,-1.4;

1.4,3.8,2.3,-0.3,-0.9,0,0,-1.7,-2.7,-0.6,3.8;

0,0,0,0,0,0,0,0,0,0,0;

-3.8,0.6,2.7,1.7,0,0,0.9,0.3,-2.3,-3.8,-1.4;

1.4,7.3,5.1,0,-1.7,0,0.3,-3.1,-5.8,-2.2,6.6;

13.6,10.1,0,-5.1,-2.7,0,-2.3,-5.8,-2.5,7.9,14.8;

16.8,0,-10.1,-7.3,-0.6,0,-3.8,-2.2,7.9,15.8,8.2;

0,16.3,-13.6,-1.4,3.8,0,-1.4,6.6,14.8,8.2,-13.6];

surf(xb,yb,zb)

图1、由已知坐标点画出的工件表面图形

(2)、使用Matlab软件编写如下程序:

x=-5:1:5;

y=-5:1:5;

[xb,yb]=meshgrid(x,y);

zb=[13.6,-8.2,-14.8,-6.6,1.4,0,-3.8,1.4,13.6,16.8,0; -8.2,-15.8,-7.9,2.2,3.8,0,0.6,7.3,10.1,0,-16.8;

-14.8,-7.9,2.5,5.8,2.3,0,2.7,5.1,0,-10.1,-13.7;

-6.6,2.2,5.9,3.0,-0.3,0,1.9,0,-5.1,-7.3,-1.4;

1.4,3.8,2.3,-0.3,-0.9,0,0,-1.7,-2.7,-0.6,3.8;

0,0,0,0,0,0,0,0,0,0,0;

-3.8,0.6,2.7,1.7,0,0,0.9,0.3,-2.3,-3.8,-1.4;

1.4,7.3,5.1,0,-1.7,0,0.3,-3.1,-5.8,-2.2,6.6;

13.6,10.1,0,-5.1,-2.7,0,-2.3,-5.8,-2.5,7.9,14.8;

16.8,0,-10.1,-7.3,-0.6,0,-3.8,-2.2,7.9,15.8,8.2;

0,16.3,-13.6,-1.4,3.8,0,-1.4,6.6,14.8,8.2,-13.6];

xc=-5:0.25:5;

yc=-5:0.25:5;

[xcb,ycb]=meshgrid(xc,yc);

zcb=interp2(xb,yb,zb,xcb,ycb,'spline')

surf(xcb,ycb,zcb)

图2、插值计算出的所有点的纵坐标值(截取了一部分)

图3、插值曲面

(3)、求工件表面面积:

①利用方法一求面积微元:

x=-5:1:5;

y=-5:1:5;

[xb,yb]=meshgrid(x,y);

zb=[13.6,-8.2,-14.8,-6.6,1.4,0,-3.8,1.4,13.6,16.8,0;

-8.2,-15.8,-7.9,2.2,3.8,0,0.6,7.3,10.1,0,-16.8;

-14.8,-7.9,2.5,5.8,2.3,0,2.7,5.1,0,-10.1,-13.7;

-6.6,2.2,5.9,3.0,-0.3,0,1.9,0,-5.1,-7.3,-1.4;

1.4,3.8,2.3,-0.3,-0.9,0,0,-1.7,-2.7,-0.6,3.8;

0,0,0,0,0,0,0,0,0,0,0;

-3.8,0.6,2.7,1.7,0,0,0.9,0.3,-2.3,-3.8,-1.4;

1.4,7.3,5.1,0,-1.7,0,0.3,-3.1,-5.8,-2.2,6.6; 13.6,10.1,0,-5.1,-2.7,0,-2.3,-5.8,-2.5,7.9,14.8;

16.8,0,-10.1,-7.3,-0.6,0,-3.8,-2.2,7.9,15.8,8.2;

0,16.3,-13.6,-1.4,3.8,0,-1.4,6.6,14.8,8.2,-13.6];

d=0.25; %改变d的值即可改变曲面四边形的个数n

xc=-5:d:5;

yc=-5:d:5;

[xcb,ycb]=meshgrid(xc,yc);

zcb=interp2(xb,yb,zb,xcb,ycb,'spline');

p=1;

q=1;

ss=0;

while p<10/d+1

while q<10/d+1

s=sqrt(d*d*(zcb(p,q+1)-zcb(p,q))^2+d*d*(zcb(p+1,q)-zcb(p,q))^2+d^4); %s为每一个曲面四边形的面积

ss=s+ss; %对s循环相加

q=q+1;

end

q=1;

p=p+1;

end

ss

(步长d取0.25时得工件表面积约为ss =670.0184)

②使用方法二求面积微元:

x=-5:1:5;

y=-5:1:5;

[xb,yb]=meshgrid(x,y);

zb=[13.6,-8.2,-14.8,-6.6,1.4,0,-3.8,1.4,13.6,16.8,0;

-8.2,-15.8,-7.9,2.2,3.8,0,0.6,7.3,10.1,0,-16.8;

-14.8,-7.9,2.5,5.8,2.3,0,2.7,5.1,0,-10.1,-13.7;

-6.6,2.2,5.9,3.0,-0.3,0,1.9,0,-5.1,-7.3,-1.4;

1.4,3.8,2.3,-0.3,-0.9,0,0,-1.7,-2.7,-0.6,3.8;

0,0,0,0,0,0,0,0,0,0,0;

-3.8,0.6,2.7,1.7,0,0,0.9,0.3,-2.3,-3.8,-1.4;

1.4,7.3,5.1,0,-1.7,0,0.3,-3.1,-5.8,-2.2,6.6;

13.6,10.1,0,-5.1,-2.7,0,-2.3,-5.8,-2.5,7.9,14.8;

16.8,0,-10.1,-7.3,-0.6,0,-3.8,-2.2,7.9,15.8,8.2;

0,16.3,-13.6,-1.4,3.8,0,-1.4,6.6,14.8,8.2,-13.6];

d=0.25; %改变d的值即可改变曲面四边形的个数n

xc=-5:d:5;

yc=-5:d:5;

[xcb,ycb]=meshgrid(xc,yc);

zcb=interp2(xb,yb,zb,xcb,ycb,'spline');