小球起始位置为10米,垂直向上的运动速度是15米每秒,在重力的作用下运动。当小球落地时会反弹,因碰撞导致能量损失,设小球撞击地面时,从地面弹起的速度和小球撞击地面的速度满足V弹起=-k*V落地,式中k=0.8称为反弹系数。
求:
(1)求小球第100次撞击地面时的时间和行驶的路程。
(2)求小球在任意时刻的位置,并绘图。
(3)求小球在任意时刻的速度,并绘图。
matlab弹跳球模型编程挑战
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 技术专家团-Joel 2021-12-06 21:36关注
你好,供参考:
clc;clear % h0 = 10; v0 = 15; g=9.8; h0max = h0 + v0^2/(2*g); t1 = v0/g + sqrt(2*h0max/g); s1 = 2*h0max-h0; n = 100; t = zeros(1, n); hmax = zeros(1,n); s = zeros(1,n); t(1) = t1; hmax(1) = h0max; s(1) = s1; k = 0.8; tt = linspace(0, t1, 100); h = h0+v0*tt-1/2*g*tt.^2; v = v0 - g*tt; for i = 2:n hmax(i) = hmax(i-1)*k^2; vmax = sqrt(2*g*hmax(i)); t(i) = t(i-1) + 2*sqrt(2*hmax(i)/g); s(i) = s(i-1) + 2*hmax(i); et = linspace(0,t(i)-t(i-1),100); tt = [tt, t(i-1) + et]; h = [h, vmax*et - 1/2*g*et.^2]; v = [v, vmax - g*et]; end figure(1);clf plot(tt,h); hold on; plot(tt,v) xlabel('时间t'); ylabel('位置和速度'); legend('位置','速度') fprintf('第%d次撞击时间t=%fs, 行驶路程s=%fm\n', n, t(n), s(n))
第100次撞击时间t=20.373935s, 行驶路程s=109.331066m
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 8无用
悬赏问题
- ¥30 Matlab打开默认名称带有/的光谱数据
- ¥50 easyExcel模板 动态单元格合并列
- ¥15 res.rows如何取值使用
- ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
- ¥15 CSP算法实现EEG特征提取,哪一步错了?
- ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
- ¥15 vue3前端取消收藏的不会引用collectId
- ¥15 delphi7 HMAC_SHA256方式加密
- ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
- ¥15 下列c语言代码为何输出了多余的空格