当前位置:文档之家› matlab实验报告

matlab实验报告

实验一小球做自由落体运动内容:一小球竖直方向做自由落体,并无损做往返运动。

程序:theta=0:0.01:2*pix=cos(theta)y=sin(theta)l=1v=1while l<10for t=1:10y=y+(-1)^l*v*tplot(x,y,[-1,1],[-56,2],'.')axis equalpause(0.1)endl=l+1end结果:-50-40-30-20-10收获:通过运用小球自由落体规律,及(-1)^n 来实现无损往返运动!实验二 旋转五角星内容:一个五角星在圆内匀速旋转程序:x=[2 2 2 2 2 2]y=[0 4/5*pi 8/5*pi 2/5*pi 6/5*pi 0]y1=2*sin(y)x1=2*cos(y)theta=0:4/5*pi:4*pix2=2*cos(theta)y2=2*sin(theta)plot(x,y,x1,y1,x2,y2) axis equaltheta1=theta+pi/10x2=2*cos(theta1)y2=2*sin(theta1)plot(x2,y2)axis equaltheta=0:4/5*pi:4*pifor rot=pi/10:pi/10:2*pi x=2*cos(theta+rot) y=2*sin(theta+rot) plot(x,y)pause(0.1)end结果:-2-1.5-1-0.500.51 1.52-2-1.5-1-0.50.511.52收获:通过theta1=theta+pi/10,我们可以实现五角星在圆内匀速旋转!实验三 转动的自行车内容:一辆自行车在圆内匀速转动程序:x=-4:0.08:4;y=sqrt(16-x.^2);theta1=-pi/2:0.01*pi:3*pi/2;x3=0.5*cos(theta1);y3=0.5*sin(theta1);theta=-pi/2+0.02*pifor k=1:100theta=theta-0.02*pix1=2*cos(theta);y1=2*sin(theta);x2=3.5*cos(theta);y2=3.5*sin(theta);x4=3.5*cos(theta+0.2*pi);y4=3.5*sin(theta+0.2*pi);x5=2.3*cos(theta);y5=2.3*sin(theta);yuanx=3.5*cos(theta);yuany=3.5*sin(theta);yuanx1=3.5*cos(theta+0.2*pi);yuany1=3.5*sin(theta+0.2*pi);plot(x,y,'k',x,-y,'k',x1,y1,'k',x2,y2,'k',[x1 x2],[y1 y2],'k',x3+yuanx,y3+yuany,'k',x4,y4,'k',[x2 x4],[y2y4],'k',x3+yuanx1,y3+yuany1,'k',[x5 x4],[y5 y4],'k')pause(0.1)end结果:-4-3-2-101234-4-3-2-11234收获:通过条件语句及极坐标来控制自行车在圆内匀速旋转!实验四 角度画圆内容:一个小球在下半圆内做往复运动程序:theta=0:-0.01*pi:-pix=10*cos(theta)y=10*sin(theta)x1=cos(theta1)y1=sin(theta1)l=1jiao=0while l<10for k=1:100jiao=jiao+(-1)^l*0.01*piyuanx=9*cos(jiao)yuany=9*sin(jiao)plot(x,y,x1+yuanx,y1+yuany,-11,-11,11,1)pause(0.1)endl = l+1end结果:-15-10-5051015-12-10-8-6-4-22收获:通过条件语句及 jiao=jiao+(-1)^l*0.01*pi ,和极坐标的应用,我们可以实现“角度画圆”!实验五 笑脸内容:用数学公式转化成程序语言,画出一个笑脸。

程序:x=-2:0.04:2y=sqrt(4-x.^2)x1=-1.5:0.01:-0.7y1=0.3*sqrt(1-((x1+1.1).^2)/0.16)+0.6;x2=-0.3:0.006:0.3y2=(sqrt(0.09-x2.^2))-0.2x3=-0.5:0.01:0.5y3=-0.3*sqrt(1-x3.^2/0.25)-1.2plot(x,y,'k',x,-y,'k',x1,y1,'k',x1+2.3,y1,'k',x2,y2,'k',x2,-y2-0.4,'k',x3,y3,'k')结果:-2-1.5-1-0.500.51 1.52-2-1.5-1-0.50.511.52收获:通过使用sqrt()函数,我们能够画出一个圆、椭圆,进而画出一个笑脸!实验六自行车车轮斜面滚动内容:一个自行车轮子在斜面上滚动,并在水平面上滑动。

程序:x=[10 0 10];y=[10 0 0];theta=0 :0.01:4*pix1=cos(theta)y1=sin(theta)theta2=[0 2/3*pi 4/3*pi]s=0for theta3= 0: pi/10 : 6*piif theta3/sqrt(2) >=9s=s + pi/10t=9elses=theta3/sqrt(2)t=theta3/sqrt(2)endx3=[(cos(theta2+theta3)+10-sqrt(2));(10-sqrt(2))*ones(1,3)] ;y3=[(sin(theta2+theta3)+10);10*ones(1,3)]; plot(x,y,x1+10-sqrt(2)-s,y1+10-t,x3-s,y3-t) pause(0.1)end结果:-8-6-4-20246810012345678910收获:通过画辐条theta2=[0 2/3*pi 4/3*pi]及条件语句的运用,我们可以使小轮在斜面上匀速滚动。

实验七 自行车在水平面上前进 内容:一辆自行车在水平面上匀速前进, 程序:x1=[3 2 4 7 6 3 4 6]y1=[6 4 2.5 2.5 1 1 2.5 1]x2=[3 1.5 2 0]y2=[1 9/4+1 4 1]x3=2.7:0.006:3.3y3=sqrt(0.09-(x3-3).^2)+1x4=-1:0.01:1y4=sqrt(1-x4.^2)+1dianx=[-13,8]diany=[0,11]for theta=0:pi/10:4*pia=[cos(theta) -sin(theta);sin(theta) cos(theta)]*[1;0]+[0;1] x5=[a(1) 0]y5=[a(2) 1]a=[cos(theta) -sin(theta);sin(theta)cos(theta)]*[-1/2;(sqrt(3))/2]+[0;1]x6=[a(1) 0]y6=[a(2) 1]a=[cos(theta) -sin(theta);sin(theta)cos(theta)]*[-1/2;-(sqrt(3))/2]+[0;1]x7=[a(1) 0]y7=[a(2) 1]plot(x1-theta,y1,'k-',x2-theta,y2,'k-',x3-theta,y3,'k-',x3-theta,-y3+2,'k-',x4-theta,y4,'k-',x4-theta,-y4+2,'k-',x4+6-theta,y4,'k-',x4+6-theta,-y4+2,'k-',x5-theta,y5,'k-',x6-the ta,y6,'k-',x7-theta,y7,'k-',x5+6-theta,y5,'k-',x6+6-theta,y 6,'k-',x7+6-theta,y7,'k-',dianx,diany,'.')pause(0.1)end结果:024681012收获:通过写自行车上各骨件的程序代码及应用theta=0:pi/10:4*pi ,我们能够很好的控制自行车在水平面上匀速前进!实验八 九九乘法表内容:显示四个九九乘法表,分别以上、下、左、右三角形形式呈现。

程序:(1)fid=fopen('b.txt','w')for k=1:9for l=1:kfprintf(fid,'%d*%d=%2d ',l,k,l*k);endfprintf(fid,'\n');endfclose(fid)结果:1*1= 11*2= 2 2*2= 41*3= 3 2*3= 6 3*3= 91*4= 4 2*4= 8 3*4=12 4*4=161*5= 5 2*5=10 3*5=15 4*5=20 5*5=251*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 程序:(2)fid=fopen('a.txt','w')for k=1:9for m=1:k-1fprintf(fid,' ')endfor l=1:10-kfprintf(fid,'%d*%d=%2d ',l,10-k,l*(10-k))endfprintf(fid,'\n')endfclose(fid)结果:1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25 1*4= 4 2*4= 8 3*4=12 4*4=16 1*3= 3 2*3= 6 3*3= 9 1*2= 2 2*2= 4 1*1= 1程序:(3)fid=fopen('a.txt','w')for k=9:-1:1for m=k-1:-1:1fprintf(fid,' ')endfor l=1:10-kfprintf(fid,'%d*%d=%2d ',l,10-k,l*(10-k)) endfprintf(fid,'\n')endfclose(fid)结果:1*1= 11*2= 2 2*2= 41*3= 3 2*3= 6 3*3= 91*4= 4 2*4= 8 3*4=12 4*4=161*5= 5 2*5=10 3*5=15 4*5=20 5*5=251*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81程序:(4)fid=fopen('b.txt','w')for k=1:9for l=1:10-kfprintf(fid,'%d*%d=%2d ',l,10-k,l*(10-k)); endfprintf(fid,'\n');endfclose(fid)结果:1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=811*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*5= 5 2*5=10 3*5=15 4*5=20 5*5=251*4= 4 2*4= 8 3*4=12 4*4=161*3= 3 2*3= 6 3*3= 91*2= 2 2*2= 41*1= 1收获:通过使用for循环,我们可以得到九九乘法表的两种形式,用for m=k-1:-1:1fprintf(fid,' ')end循环嵌套语句,可以实现另外两种形式,可以实现上、下、左、右三角形式。

相关主题