【求助】【急】求高手知道Matlab编程,利用函数分析法画阻尼振动曲线
试利用函数近似法画出当β=0.1、ω0=1、t=0时,x=1.0、v=0、0<t<25、Δt=25/1000下的阻尼振动x-t曲线。弹簧振子的阻尼振动满足的方程...
试利用函数近似法画出当β=0.1、ω0=1、t=0时,x=1.0、v=0、0<t<25、Δt=25/1000下的阻尼振动x-t曲线。
弹簧振子的阻尼振动满足的方程 展开
弹簧振子的阻尼振动满足的方程 展开
1个回答
展开全部
哎,老了,matlab生疏了。
哥们啊,我一个心血来潮给你认真了一个下午才弄出来的,要求追加分数!
程序代码如下:
beta=0.1;
w0=1;
delta_t=25/1000;
t(1)=0;
for i=1:1000
t(i+1)=delta_t*i;
end
threshold=0.9;
x(1)=100; %为了求解方便,最后再更改比例尺
temp_v1=0;
n=1; %x的角标
for i=1:1000
for j=-100:0.001:100
temp_x=j;
temp_v2=(temp_x-x(n))/delta_t;
temp_a=(temp_v2-temp_v1)/delta_t;
if abs(temp_a+2*beta*temp_v2+w0^2*temp_x)<threshold
n=n+1;
x(n)=temp_x;
temp_v1=temp_v2;
break;
end
end
end
for i=1:1001 %回归真正的比例
x(i)=x(i)/100;
end
plot(t,x);
xlabel('Time');
ylabel('X-distance');
title('弹簧振子阻尼振动曲线');
直接运行便可以得到弹簧振子阻尼振动曲线。
哥们啊,我一个心血来潮给你认真了一个下午才弄出来的,要求追加分数!
程序代码如下:
beta=0.1;
w0=1;
delta_t=25/1000;
t(1)=0;
for i=1:1000
t(i+1)=delta_t*i;
end
threshold=0.9;
x(1)=100; %为了求解方便,最后再更改比例尺
temp_v1=0;
n=1; %x的角标
for i=1:1000
for j=-100:0.001:100
temp_x=j;
temp_v2=(temp_x-x(n))/delta_t;
temp_a=(temp_v2-temp_v1)/delta_t;
if abs(temp_a+2*beta*temp_v2+w0^2*temp_x)<threshold
n=n+1;
x(n)=temp_x;
temp_v1=temp_v2;
break;
end
end
end
for i=1:1001 %回归真正的比例
x(i)=x(i)/100;
end
plot(t,x);
xlabel('Time');
ylabel('X-distance');
title('弹簧振子阻尼振动曲线');
直接运行便可以得到弹簧振子阻尼振动曲线。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |