您的当前位置:首页正文

matlab程序:两列波相向传播叠加波形图和动画

2024-03-07 来源:步旅网


clear,close all

>> t=0

t =

0

>> %输入两组信号的振幅、波长和频率

>> a1=input('振幅1=');b1=input('波长1=');v1=input('速度1=');

振幅1=1

波长1=6

速度1=0.2

>> a2=input('振幅2=');b2=input('波长2=');v2=input('速度2=');

振幅2=2

波长2=6

速度2=0.2

>> while t<=9

x=0:0.001:10; %给出位置轴上10m,分为10000个点

y1=a1*sin(2*pi/b1*(x+v1*t));

y2=a2*cos(2*pi/b2*(x-v2*t));

y3t=y1+y2;

plot(x,y3t);

hold on;

t=t+1;

end

动画,两列波相向传播

clear,close all

>> t=0

t =

0

>> a1=input('振幅1=');b1=input('波长1=');v1=input('速度1=');

振幅1=1

波长1=2

速度1=200

>> a2=input('振幅2=');b2=input('波长2=');v2=input('速度2=');

振幅2=2

波长2=2

速度2=300

>> x=0:0.001:10; y1=a1*sin(2*pi/b1*(x+v1*t));

y2=a2*cos(2*pi/b2*(x-v2*t));

y3t=y1+y2;

>> M=moviein(60);

>> clear t

>> for t=1:60;

%给出位置轴上10m,分为10000个点

plot(x,y3t);

M(:,t)=getframe;

end>> t=0

t =

0

>> a1=input('振幅1=');b1=input('波长1=');v1=input('速度1=');

振幅1=1

波长1=2

速度1=200

>> a2=input('振幅2=');b2=input('波长2=');v2=input('速度2=');

振幅2=2

波长2=2

速度2=300

>> x=0:0.001:10; %给出位置轴上10m,分为10000个点

y1=a1*sin(2*pi/b1*(x+v1*t));

y2=a2*cos(2*pi/b2*(x-v2*t));

y3t=y1+y2;

>> M=moviein(60);

>> clear t

>> for t=1:60;

plot(x,y3t);

M(:,t)=getframe;

end

movie(M,30)

因篇幅问题不能全部显示,请点此查看更多更全内容