首页/文章/ 详情

建模 | 如何快速砍倒一棵树

3月前浏览2425
   

用斧子砍树时,通常做法是在树上砍一个豁口,这样会省力一些。下面结合中学物理中的运动学知识来分析这样做的道理。

一) 假设豁口的角度为θ,斧子每次沿着水平方向冲向豁口时与豁口斜面接触的区域是平整的(并非整个斜面),且人的手臂会施加一个初速度V给斧子。如图1所示。

二) 斧子接触斜面后,产生沿着斜面方向的摩擦力f,假定f是一个常数,只与树木的材质有关。f自然会产生一个加速度a,即a=f/m。m是斧子质量,那么a也是常数。如图2所示 。

   

初速度V沿着斜面方向的分量为V0,方向与加速度a方向相反,如图3所示。

由于加速度方向与运动方向相反,斧子沿着斜面的速度u会越来越小,直至停止,即u=V0-at,u与时间t的函数关系如图4所示。

0至T时刻,斧子沿着斜面前进的距离为S

由上式可知,当θ越小,cosθ越大,则S越大。说明斧子砍的越深。当然θ不可能为0,可以根据实际需求即可。

 
来源:数值分析与有限元编程
科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-02
最近编辑:3月前
太白金星
本科 慢慢来
获赞 2粉丝 5文章 304课程 0
点赞
收藏
作者推荐
算法| 冒泡法排序

对于一个一维的数组(列表),每个元素都和它旁边的元素作比较,顺序不对就交换位置。第一次处理全部n个元素,最大值将冒泡到数组末尾位置。第二次处理全部n-1个元素,第三次处理全部n-2个元素。以此类推,每次都将最大值元素放到最右边的位置。冒泡法的优点是任何时候数组完全排好序就可以提前退出。来看动态演示:下面是算法: For i = n to 1 For j = 1 to i in_order 标志设置为true if arr[j+i] < arr[j] 交换arr[j+i] 和arr[j] in_order 标志设置为false 如果in_order满足要求,跳出循环注:不要逻辑变量in_order(python,C++叫布尔变量)也行,可以简化代码。但这样不能提前退出循环。Fortran以及python实现:冒泡排序步骤遍历列表并比较相邻的元素对。如果元素顺序不符合要求,则交换它们。重复遍历列表未排序部分的元素,直到完成列表排序。因为冒泡排序重复地通过列表的未排序部分,所以它具有最坏的情况复杂度O(n^2)。来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈