matlab实验报告10801460.docx
- 文档编号:24069835
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:21
- 大小:259.44KB
matlab实验报告10801460.docx
《matlab实验报告10801460.docx》由会员分享,可在线阅读,更多相关《matlab实验报告10801460.docx(21页珍藏版)》请在冰豆网上搜索。
matlab实验报告10801460
(此文档为word格式,下载后您可任意编辑修改!
)
实验一小球做自由落体运动
内容:
一小球竖直方向做自由落体,并无损做往返运动。
程序:
theta=0:
0.01:
2*pi
x=cos(theta)
y=sin(theta)
l=1
v=1
whilel<10
fort=1:
10
y=y+(-1)^l*v*t
plot(x,y,[-1,1],[-56,2],'.')
axisequal
pause(0.1)
end
l=l+1
end
结果:
收获:
通过运用小球自由落体规律,及(-1)^n来实现无损往返运动!
实验二旋转五角星
内容:
一个五角星在圆内匀速旋转
程序:
x=[222222]
y=[045*pi85*pi25*pi65*pi0]
y1=2*sin(y)
x1=2*cos(y)
theta=0:
45*pi:
4*pi
x2=2*cos(theta)
y2=2*sin(theta)
plot(x,y,x1,y1,x2,y2)
axisequal
theta1=theta+pi10
x2=2*cos(theta1)
y2=2*sin(theta1)
plot(x2,y2)
axisequal
theta=0:
45*pi:
4*pi
forrot=pi10:
pi10:
2*pi
x=2*cos(theta+rot)
y=2*sin(theta+rot)
plot(x,y)
pause(0.1)
end
结果:
收获:
通过theta1=theta+pi10,我们可以实现五角星在圆内匀速旋转!
实验三转动的自行车
内容:
一辆自行车在圆内匀速转动
程序:
x=-4:
0.08:
4;
y=sqrt(16-x.^2);
theta1=-pi2:
0.01*pi:
3*pi2;
x3=0.5*cos(theta1);
y3=0.5*sin(theta1);
theta=-pi2+0.02*pi
fork=1:
100
theta=theta-0.02*pi
x1=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',[x1x2],[y1y2],'k',x3+yuanx,y3+yuany,'k',x4,y4,'k',[x2x4],[y2y4],'k',x3+yuanx1,y3+yuany1,'k',[x5x4],[y5y4],'k')
pause(0.1)
end
结果:
收获:
通过条件语句及极坐标来控制自行车在圆内匀速旋转!
实验四角度画圆
内容:
一个小球在下半圆内做往复运动
程序:
theta=0:
-0.01*pi:
-pi
x=10*cos(theta)
y=10*sin(theta)
x1=cos(theta1)
y1=sin(theta1)
l=1
jiao=0
whilel<10
fork=1:
100
jiao=jiao+(-1)^l*0.01*pi
yuanx=9*cos(jiao)
yuany=9*sin(jiao)
plot(x,y,x1+yuanx,y1+yuany1)
pause(0.1)
end
l=l+1
end
结果:
收获:
通过条件语句及jiao=jiao+(-1)^l*0.01*pi,和极坐标的应用,我们可以实现“角度画圆”!
实验五笑脸
内容:
用数学公式转化成程序语言,画出一个笑脸。
程序:
x=-2:
0.04:
2
y=sqrt(4-x.^2)
x1=-1.5:
0.01:
-0.7
y1=0.3*sqrt(1-((x1+1.1).^2)0.16)+0.6;
x2=-0.3:
0.006:
0.3
y2=(sqrt(0.09-x2.^2))-0.2
x3=-0.5:
0.01:
0.5
y3=-0.3*sqrt(1-x3.^20.25)-1.2
plot(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')
结果:
收获:
通过使用sqrt()函数,我们能够画出一个圆、椭圆
,进而画出一个笑脸!
实验六自行车车轮斜面滚动
内容:
一个自行车轮子在斜面上滚动,并在水平面上滑动。
程序:
x=[10010];
y=[1000];
theta=0:
0.01:
4*pi
x1=cos(theta)
y1=sin(theta)
theta2=[023*pi43*pi]
s=0
fortheta3=0:
pi10:
6*pi
iftheta3sqrt
(2)>=9
s=s+pi10
t=9
else
s=theta3sqrt
(2)
t=theta3sqrt
(2)
end
x3=[(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
结果:
收获:
通过画辐条theta2=[023*pi43*pi]及条件语句的运用,我们可以使小轮在斜面上匀速滚动。
实验七自行车在水平面上前进
内容:
一辆自行车在水平面上匀速前进,
程序:
x1=[32476346]
y1=[642.52.5112.51]
x2=[31.520]
y2=[194+141]
x3=2.7:
0.006:
3.3
y3=sqrt(0.09-(x3-3).^2)+1
x4=-1:
0.01:
1
y4=sqrt(1-x4.^2)+1
dianx=[-13,8]
diany=[0,11]
fortheta=0:
pi10:
4*pi
a=[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)]*[-12;(sqrt(3))2]+[0;1]
x6=[a
(1)0]
y6=[a
(2)1]
a=[cos(theta)-sin(theta);sin(theta)cos(theta)]*[-12;-(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-theta,y6,'k-',x7-theta,y7,'k-',x5+6-theta,y5,'k-',x6+6-theta,y6,'k-',x7+6-theta,y7,'k-',dianx,diany,'.')
pause(0.1)
end
结果:
收获:
通过写自行车上各骨件的程序代码及应用theta=0:
pi10:
4*pi,我们能够很好的控制自行车在水平面上匀速前进!
实验八九九乘法表
内容:
显示四个九九乘法表,分别以上、下、左、右三角形形式呈现。
程序:
(1)
fid=fopen('b.txt','w')
fork=1:
9
forl=1:
k
fprintf(fid,'%d*%d=%2d',l,k,l*k);
end
fprintf(fid,'\n');
end
fclose(fid)
结果:
1*1=1
1*2=22*2=4
1*3=32*3=63*3=9
1*4=42*4=83*4=124*4=16
1*5=52*5=103*5=154*5=205*5=25
1*6=62*6=123*6=184*6=245*6=306*6=36
1*7=72*7=143*7=214*7=285*7=356*7=427*7=49
1*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=64
1*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81
程序:
(2)
fid=fopen('a.txt','w')
fork=1:
9
form=1:
k-1
fprintf(fid,'')
end
forl=1:
10-k
fprintf(fid,'%d*%d=%2d',l,10-k,l*(10-k))
end
fprintf(fid,'\n')
end
fclose(fid)
结果:
1*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81
1*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=64
1*7=72*7=143*7=214*7=285*7=356*7=427*7=49
1*6=62*6=123*6=184*6=245*6=306*6=36
1*5=52*5=103*5=154*5=205*5=25
1*4=42*4=83*4=124*4=16
1*3=32*3=63*3=9
1*2=22*2=4
1*1=1
程序:
(3)
fid=fopen('a.txt','w')
fork=9:
-1:
1
form=k-1:
-1:
1
fprintf(fid,'')
end
forl=1:
10-k
fprintf(fid,'%d*%d=%2d',l,10-k,l*(10-k))
end
fprintf(fid,'\n')
end
fclose(fid)
结果:
1*1=1
1*2=22*2=4
1*3=32*3=63*3=9
1*4=42*4=83*4=124*4=16
1*5=52*5=103*5=154*5=205*5=25
1*6=62*6=123*6=184*6=245*6=306*6=36
1*7=72*7=143*7=214*7=285*7=356*7=427*7=49
1*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=64
1*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81
程序:
(4)
fid=fopen('b.txt','w')
fork=1:
9
forl=1:
10-k
fprintf(fid,'%d*%d=%2d',l,10-k,l*(10-k));
end
fprintf(fid,'\n');
end
fclose(fid)
结果:
1*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81
1*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=64
1*7=72*7=143*7=214*7=285*7=356*7=427*7=49
1*6=62*6=123*6=184*6=245*6=306*6=36
1*5=52*5=103*5=154*5=205*5=25
1*4=42*4=83*4=124*4=16
1*3=32*3=63*3=9
1*2=22*2=4
1*1=1
收获:
通过使用for循环,我们可以得到九九乘法表的两种形式,用form=k-1:
-1:
1
fprintf(fid,'')
end
循环嵌套语句,可以实现另外两种形式,可以实现上、下、左、右三角形式。
实验九小球做有损运动
内容:
一小球做竖直下抛运动,然后反弹,直到最后静止。
程序:
fori=1:
9
fork=11-i:
-1:
1
theta=0:
0.01*pi:
2*pi
x=cos(theta)
y=k+sin(theta)
plot(x,y,[-1,1],[0,11],'.')
axisequal
pause(0.1)
end
fork=1:
1:
10-i
theta=0:
0.01*pi:
2*pi
x=cos(theta)
y=k+sin(theta)
plot(x,y,[-1,1],[0,11],'.')
axisequal
pause(0.1)
end
end
结果:
收获:
通过for循环及for循环嵌套,可以实现小球数直下落,
我们可以用theta=0:
0.01*pi:
2*pi
x=cos(theta)
y=k+sin(theta)
来实现小球做有损运动!
实验十Logistic方程求解与混沌
内容:
Feigenbaum对超越函数y=asin(pi*x)进行了分岔与混沌,利用迭代格式做出相应的图。
程序:
clear;clf;
axis([]);grid
fora=0:
0.005:
3
x=[0,1]
fori=2:
150
x(i)=a*sin(pi*x(i-1));
end
pause(0.1)
fori=101:
150
plot(a,x(i),'k.')
end
end
结果:
收获:
通过迭代公式及for循环语句,我们可以实现对超越函数的计算,并为之做出分岔与混沌的研究。
实验十一追击问题
内容:
四个人站在正方形的四个顶点,开始追击,直到第一次四人相遇为止。
程序:
v=1
dt=0.05
x=[001010]
y=[010100]
fori=1:
4
plot(x(i),y(i),'.')
end
d=20
whiled>0.1
x(5)=x
(1);
y(5)=y
(1)
fori=1:
4
d=sqrt((x(i+1)-x(i))^2+(y(i+1)-y(i))^2)
x(i)=x(i)+v*dt*(x(i+1)-x(i))d;
y(i)=y(i)+v*dt*(y(i+1)-y(i))d;
plot(x(i),y(i),'.')
end
end
结果:
收获:
通过使用while循环语句,很好的控制第一次相遇问题,使用for循环语句及d=sqrt((x(i+1)-x(i))^2+(y(i+1)-y(i))^2),我们能够使四人按个人速度匀速前进并进行追击。
实验十二三维制图
内容:
画出一个三维图,用subplot及mesh来完成。
程序:
[xyz]=peaks
[x1,y1,z1]=sphere
subplot(2,1,1)
mesh(x,y,z)
subplot(2,1,2)
mesh(x1,y1,z1)
结果:
收获:
我们可以用peaks(顶尖),sphere(球),subplot及mesh来实现三维制图的过程。
实验十三鬼屋
内容:
建一座房子,用四边形组建起来!
程序:
x=[-2-222-2]
y=[04400]
x1=[-2-132-2]
y1=[45544]
x2=[22332]
y2=[04510]
x3=[-1.5-1.5-0.5-0.5-1.5]
y3=[2.53.53.52.52.5]
x4=[0.50.51.51.50.5]
y4=[2.53.53.52.52.5]
x5=[111.51.51]
y5=[01100]
plot(x,y,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5)
结果:
收获:
矩阵必须有相同的维度,首尾相连才可以构成图形!
总收获及感悟:
通过对matlab软件的学习,我们从一个个错误的编码到如今能编写成小程序,这都依赖于老师的谆谆教导及我们不断地改进学习。
我们从错误中学习,从错误中改进。
如:
Error:
Incompleterormisformedexpressionorstatement;MissingMATLABoperator;Matrixmustbesquare;Matrixdimensionsmustagree.
这些都让我们深刻体会到matlab软件操作上的不足。
到如今,我们已掌握了如何用fororwhile循环及嵌套语句来实现循环过程。
当做出了一系列的实验程序图,看到这些图形的显示,我无比高兴,真正体会到了数学与计算机相结合所散发出来的魅力!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 实验 报告 10801460