m=1; %质量
>> h0=10;%高度
>> v0=10;%速度
>> g=10;%重力加速度绝对值
>> a=-g;%加速度
>> energy=m*g*h0+1/2*m*v0^2;
>> deltat=0.01;%步长
>> t=0:deltat:6; %时间0-6,步长0.01
>> v(1)=v0; %初始速度
>> h(1)=10; %初始高度
>> for i=2:length(t); %循环
v(i)=v(i-1)+a*deltat; %速度值
h(i)=(energy-1/2*m*v(i)^2)/m/g; %高度值
if floor(v(i)*10)==0% %如果速度向下取整为零,即达到最高点
a=-a;
end
[h(i) a v(i)]
if floor(h(i)*10)==0 %判定落地
a=-a;
energy=energy*(1-0.36); %能量损失
v(i)=sqrt(2*energy/m); %反弹后的速度
end
end
plot(t,h);