《数学建模》实训题目答案第1页共7页实践训练1、对以下问题,编写M文件:(1)用起泡法对10个数由小到大排序。即将相邻两个数比较,将小的调到前头。a=rand(1,10);fori=1:10forj=1:10-i;ifa(j)a(j+1);t=a(j);a(j)=a(j+1);a(j+1)=t;endendenda(2)有一个4×5矩阵,编程求其最大值及其所处的位置。a=10000*rand(4,5)max=a(1:1,1:1);hang=1;lie=1;fori=1:4;forj=1:5;《数学建模》实训题目答案第2页共7页x=a(i:i,j:j);ifxmax;max=x;hang=i;lie=j;endendendmaxhanglie(3)编程求201!nn。sum=0;fori=1:20,part=1;forj=1:i;part=part*j;endsum=sum+part;fprintf('part(%d)=%d.\n',i,part);endfprintf('Thetotalsumis%d.\n',sum);《数学建模》实训题目答案第3页共7页(4)一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹有多高?x0=100;distance=x0;n=1;whilen10n=n+1;x0=x0/2;distance=distance+x0;endalldistance=distancelast=x0/2(5)有一函数yxyxyxf2sin),(2,写一程序,输入自变量的值,输出函数值。①functionf=fun(x,y)f=x.^2+sin(x.*y)+2*y;②保存一下。③在matlab命令窗口给fun(x,y)赋值。例如:输入fun(1,0),就可以计算当x=1,y=0时的值,得到的结果是ans=《数学建模》实训题目答案第4页共7页12、在同一平面中的两个窗口分别画出心形线和马鞍面。要求:(1)在图形上加格栅、图例和标注。(2)定制坐标。(3)以不同角度观察马鞍面。subplot(1,2,1);theta=0:.01*pi:2*pi;rho=1+cos(theta);polar(theta,rho,'m');gridon;xlabel('自变量x');ylabel('自变量y');title('心形线');subplot(1,2,2);x=-4:0.1:4;y=-3:0.1:5;[XY]=meshgrid(x,y);Z=X.^2-Y.^2;surf(X,Y,Z);gridon;《数学建模》实训题目答案第5页共7页xlabel('自变量x');ylabel('自变量y');title('马鞍面');view(-30,30)3、以不同的视角观察球面2222rzyx和圆柱面rxyx22所围区域。[x,y,z]=ellipsoid(0,0,0,2,2,2);surf(x,y,z);axisequal;view(-30,30);《数学建模》实训题目答案第6页共7页f=inline('x^2+y^2-1');fvector=vectorize(f);x=linspace(-1,1);y=x;z=2*x;[x1,y1,z1]=meshgrid(x,y,z);fvalues=feval(fvector,x1,y1);isosurface(x1,y1,z1,fvalues,0);view(-45,45);《数学建模》实训题目答案第7页共7页