matlab练习题及答案详解附程序.docx

上传人:b****8 文档编号:11209095 上传时间:2023-02-25 格式:DOCX 页数:20 大小:140.57KB
下载 相关 举报
matlab练习题及答案详解附程序.docx_第1页
第1页 / 共20页
matlab练习题及答案详解附程序.docx_第2页
第2页 / 共20页
matlab练习题及答案详解附程序.docx_第3页
第3页 / 共20页
matlab练习题及答案详解附程序.docx_第4页
第4页 / 共20页
matlab练习题及答案详解附程序.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

matlab练习题及答案详解附程序.docx

《matlab练习题及答案详解附程序.docx》由会员分享,可在线阅读,更多相关《matlab练习题及答案详解附程序.docx(20页珍藏版)》请在冰豆网上搜索。

matlab练习题及答案详解附程序.docx

matlab练习题及答案详解附程序

Matlab练习题及答案详解

基础题

1、下表为8组坐标

x

4.22■

7.926.

568.4

96.79

'7.43

6.557.

06

y

9.16!

9.590.

369.3

47.58

3.92

1.710.

32

1)算出任意两点间的空间距离,得到任意两点距离表;

2)把任意两点距离的表中,自己到自己的距离,转变成无穷大

clcclear

closeall

data=xlsread('ti1.xls');%从excel里导入数据

x=data(1,:

);%将data里第一行的所有列赋值给x

y=data(2,:

);%将data里第二行的所有列赋值给x

n=length(x);%表x的长度

dis=zeros(n,n);%对距离表进行初始化

fori=1:

n

forj=1:

n

dis(i,j)=sqrt((x(i)-x(j))A2+(y(i)-y(j))A2);%平面坐

标距离公式

end

end

dis(dis==0)=inf;%将距离表中为0的数值,变成无穷大

redis二dis;

2、按要求步骤,操作下表

201.90

2969.52

701.24

1325.05

20905.68

16306.68

219.00

2482.49

724.57

1455.57

22759.92

17024.76

221.10

2187.45

746.62

1522.89:

24940.68:

18925.92

324.50

3585.72

861.55

1448.82

25935.84

19960.32

346.97

4282.14

800.80

1942.93

27596.40

19569.60

332.90

6801.57

827.75

2142.83

21494.401

15911.88

359.53

5813.56

846.43

2317.28

22567.08

16628.16

406.98

4950.91

778.27

2560.28

24301.38

18474.49

要求:

1)对每列进行[0,1]区间化x'(xmin(x))/(maxmin(x));

2)把区间化后的表的右边3列,连接在左边3列下边,构成16行3列的表;

3)把16行3列进行转置,得到3行16列的表。

然后对列进行操作,把3行16列的表变成一列,后转置成一行,得到最终的结果。

clc

clear

closeall

x=load('ti2.txt');%从txt里导入数据

big=max(x);small=min(x);%算出每列的最大最小值

[m,n]=size(x);%表x的行和列的大小

newx仁zeros(m,n);%对newx1进行初始化,大小和初始x一样大

fori=1:

n

newx1(:

i)=(x(:

i)-small(i))./(big(i)-small(i));

end

newx2=zeros(2*m,n/2);%对最新的表进行初始化大小为,行为newx1

的2倍,列为一半

newx2(1:

m,1:

n/2)=newx1(1:

m,1:

n/2);%把左边3列不操作的值,直

接赋值给newx2上边

newx2(m+1:

end,1:

n/2)=newx1(1:

m,n/2+1:

end);%把右边的3列,赋

值给newx2下边

[p,q]=size(newx2);%表newx2的行和列的大小

newx3=zeros(p*q,1);%对newx3进行初始化

forj=1:

q

newx3((j-1)*p+1:

j*p,1)=newx2(:

q);%对newx3进行操作

end

%newx3二reshape(newx2,[],1);renewx=newx3';%最终的结果

3、数值运算

1)用matlab求下列式子极限

4

X

2

 

arccos(x)

f(x,y)ye

2ydxdy

2」x23=1

 

re1a=limit(y,x,64)%====3.1.b===symsx

y=((x^2-2*x+4)八(1/2)-2)/x;

re1b=limit(y,x,0)%===求导数

%====3.2.a===

symsx

f=(sin(xA2+1))A2;

re2a=diff(f,x)%对x求导%====3.2.b===symsxyf=y*exp(acos(x));

re2bx=diff(f,x)%对x求偏导

re2by=diff(f,y)%对y求偏导

%===求定积分===%====3.3.a===symsxre3a=int((x+2)/(2*x+1)A(1/2),x,0,4)%%====3.3.b===symsxyre3b=int(int(y/(xA2-1),x,-2,-sqrt

(2)),y,1,3)%

二、提高题

1、画一个正五边形,边长自定

i»lr

'M'tt||i

4041O

图1:

示例一

clc

clear

closeall

a=100;

b二a/(2*sin(36/180*pi));

x二b*[-cos(18/180*pi)0cos(18/180*pi).…

sin(36/180*pi)-sin(36/180*pi)-cos(18/180*pi)];

y=b*[sin(18/180*pi)1sin(18/180*pi).…

-cos(36/180*pi)-cos(36/180*pi)sin(18/180*pi)];

plot(x,y,'linewidth',2)

text(-b/4,0,'正五边形','fontsize',20)

text(O,O,'y二','num2str(p

(1))')

axis([-b-b/5b+b/5-b-b/5b+b/5])

axisequalboxoff

2、模拟小球的斜抛,模拟参数自定,画出速度图像

图2:

示例

clc

clear

closeall

g=9.8;

v0=10;

theta二pi/4;

detat=O.O1;

x=0;y=0;t=0;X=[];Y=[];V=[];T=[];

vy=v0*sin(theta);

vx二vO*cos(theta);

h=plot(x,y,'r.','markersize',50);

whiley>=0

delete(h)

vx=vx-0*detat;

vy=vy-g*detat;

v=sqrt(vxA2+vyA2);

x=x+vx*detat;y=y+vy*detat;

t=t+detat;

%==图形控制部分subplot(3,1,1)plot(x,y,'.b')h=plot(x,y,'r.','markersize',50);holdontitle('x-y','fontsize',14)axis([01103]);boxoffsubplot(3,1,2)plot(x,v,'.R','markersize',5)holdontitle('x-v','fontsize',14)axis([0116v0+1]);boxoffsubplot(3,1,3)plot(t,v,'.g','markersize',5)holdontitle('t-v','fontsize',14)axis([01.556v0+1]);boxoff

pause(0.05)

X=[X,x];

Y=[Y,y];

V=[V,v];

T=[T,t];

end

p=polyfit(X,Y,2)

3、在1的基础上,加上空气阻力的影响,空气阻力大小与速度的平方成正比,

fk|v2(比例系数自己定,也可以上网查,建议取0.5),画出速度图像

 

 

图3:

示例三

clc

clear

closeall

g=9.8;

v0=10;

theta二pi/4;

detat=0.01;x=0;y=0;t=0;X=[];Y=[];V=[];T=[];vy=v0*sin(theta);vx=v0*cos(theta);

k=0.5;m=2;h=plot(x,y,'r.','markersize',50);whiley>=0

delete(h)

vx二vx-(k*vx^2)/m*detat;

vy二vy-g*detat-(k*vy^2)/m*detat;

v=sqrt(vxA2+vyA2);

x=x+vx*detat;

y=y+vy*detat;

t=t+detat;

%==图形控制部分subplot(3,1,1)plot(x,y,'.b')h=plot(x,y,'r.','markersize',50);holdontitle('x-y','fontsize',14)axis([01103]);boxoffsubplot(3,1,2)

plot(x,v,'.R','markersize',5)holdon

title('x-v','fontsize',14)axis([0113v0+1]);boxoffsubplot(3,1,3)plot(t,v,'.g','markersize',5)holdontitle('t-v','fontsize',14)axis([02.753v0+1]);boxoffpause(0.1)

X=[X,x];

Y=[Y,y];

V=[V,v];

T=[T,t];

end

p=polyfit(X,Y,2)

4、画一个叠的圆环,圆环参数自定

clear;

n=input('圆的层数:

');

r=5;%圆的半径

theta=linspace(0,2*pi);

x=r*cos(theta);

y=r*sin(theta);

figure,title('叠的圆环','fontsize',14)

axisequal

gridon

holdon;

forj=1:

n

b=(1+sqrt(3)*(j-1))*r;%圆心b

fori=1:

n+1-j

a=(2*(i-1)+j)*r;%圆心a

plot(x+a,y+b)

endend

5、模拟两个小球在水平面上,进行完全弹性碰撞过程,分析两个小球构成系统的机械能随时间的变化,小球参数自定。

(注:

考虑摩擦阻力)附加1:

分析两个小球构成系统的机械能随时间的曲线中,为什么在碰撞时刻出现拐点?

附加2:

如果碰撞不是完全弹性碰撞,怎么模拟分析?

3D

L

帖.

-

DO

0

-

D

II

1

1

1

1

1

1

5

-BO

■30

30

o

0

 

 

图5:

示例五

clc

clear

closeall

m仁2;m2=5;v0=20;detat=0.05;

g=9.8;mu=0.1;r=5;

a=v0A2/(2*mu*g)*1/2;

x1=-a/2;y1=r;

x2=0;y2=r;

v1=v0;v2=0;k=0;

V1=[];V2=[];T=[];t=0;

whilemax(abs(v1),abs(v2))>detatifabs(v1)

v1=0;

elseifabs(v2)

v2=0;

end

clf

axisequal

axis([-aa-r4*r])

line([-aa],[00])

holdon

qiu(x1,y1,r,'r')

qiu(x2,y2,r,'g')

x1=x1+v1*detat;

x2=x2+v2*detat;

ifabs(x1-x2)>2*r

v1=v1-sign(v1)*mu*g*detat;

ifk==1

v2=v2-sign(v2)*mu*g*detat;end

else

v11=v1;v1=v11*(m1-m2)/(m1+m2);v2=2*v11*m1/(m1+m2);

k=1;

endpause(0.01)t=t+detat;

T=[T,t];

V1=[V1,v1];

V2=[V2,v2];

end

E=1/2*m1*V1.A2+1/2*m2*V2.A2;

figuresubplot(2,1,1)plot(T,E','linewidth',2)boxoffgridontitle('E-t')subplot(2,1,2)

plot(T,V1,T,V2,'linewidth',2)boxoff

gridon

title('V1,V2-t')

三、挑战题

图6:

示例六

clc

clear

v=20;%初始速度r=5;g=9.8;

mu=0.3;

dt=0.1;

a=r;

b=r;

w=v/r;

v0=v;

t=0;

x0=0;

t1=t;

x0=0;

axisequal

holdon

axis([Ov.A2/(2*mu*g)+2*r02.5*r])gridon

holdon

theta=0:

1/50:

2*pi;x=a+r*cos(theta);

y=b+r*sin(theta);q=plot(x,y,'.k');

p=plot(x

(1),y

(1),'.k');whilev>=0

delete(q);

delete(p)

v=v-mu*g*dt;

w=w-(mu*g)/r*dt;

theta=theta-w*dt;

a=a+v*dt;

b=r;

t1=t1+dt;

v0=[v0,v];

t=[t,t1];

x=a+r*cos(theta);

y=b+r*sin(theta);

q=plot(x,y,'.r');

p=plot(x

(1),y

(1),'.k','markersize',15);

pause(0.2)

title('\rm圆环匀减速滚动','fontsize',15)

xlabel('距离\itm')

ylabel('高度\itm')

end

figure

plot(t,v0,'linewidth',2);

title('圆环\itV-\itT图像','fontsize',15)

xlabel('时间\rmt\it/s')ylabel('速度\rmV\itm/s')gridonholdonboxoff

4?

一扭・

图7:

示例七

clcclearcloseall1=1;%摆长

zq=[];

th=[];

%forl=1:

10;

theta=pi/3;%初始摆角

fortheta=pi*10/180:

0.01:

pi/2%证明单摆的周期和初始最大角度无关

v=0;s=-l*theta;g=9.8;detat=0.01;t=0;

T=[];S=[];

x=0;y=0;

%plot(0,0,'*k','markersize',10)

%holdon

k=0.1;%速度衰减系数,证明衰减和单摆的周期无关

while(l*(1-cos(s/l))+1/2*"2)>detat%全过程

%fori=1:

1000

v=v+g*sin(theta)*detat-sign(v)*k*"2*detat;

s=s-v*detat;

theta=s/l;

x=-l*sin(theta);

y=-l*cos(theta);

t=t+detat;

T=[T,t];

S=[S,s];

%clf

%subplot(1,2,1)

%plot(x,y,'.r','markersize',50);

%holdon

%plot([0,x],[0,y],'k','linewidth',2);

%holdon,axisequal

%axis([-l-1/2l+1/2-l-1/21/2])

%title(sprintf('模拟单摆,摆长L=%.1fm,',l),'fontsize',15)

%xlabel('x/m')

%ylabel('y/m')

%boxoff,gridon,holdon

%subplot(1,2,2)

%plot(S,T,'linewidth',2)

%holdon,

%axis([-l-1/2l+1/2010])

%title(sprintf('衰减系数k=%.1f,s-t图像

',k),'fontsize',15)

%xlabel('离开平衡位置的弧长s/m')

%ylabel('时间t/s')

%boxoff,gridon,holdon

%pause(0.01)

end

%====求周期====m=length(S);TT=[];j=1;

fori=1:

m-2

ba=(S(i+1)-S(i))*(S(i+2)-S(i+1));

ifba<0

TT(j)=T(i+1);

j=j+1;

end

end

NT=TT(3:

end)-TT(1:

end-2);

zhouqi=mean(NT);

zq=[zqzhouqi];

end

theta=pi*10/180:

0.01:

pi/2;

plot(theta,zq)

%end

%l=1:

10;T=2*pi*sqrt(l/9.8);

%plot(l,zq,l,T)

%holdon

2)用matlab求下列函数的导数

22

(a)ysin(x1)(b)

3)用matlab求下列式子的定积分

4x2

(a)0x=2dx(b)

0J2x1

clc

clear

%==求极限

%====3.1.a===

symsxy=(xA(1/2)-8)/(xA(1/3)-4);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1