本章涉及知识点

1、案例引出

2、运动过程分析

3、解法一:构造关于时间t的二次函数

4、解法二:构造关于水平位移x的二次函数

5、解法三:分析矢量速度三角形面积

6、解法四:包络线方程

7、带入数据测试4种不同解法的正确性

8、心得总结

一、案例引出在高度为h,以初速度v0和任意角度斜抛出一个物体,求解:该物体可以运动到的最远水平距离x和运动时间t?以及使物体运动到最远采取的斜抛角度θ的策略?(忽略空气阻力)

二、运动过程分析

斜抛运动

分析物体运动的水平和竖直方向,由于物体在水平方向不受外力作用,而在竖直方向只受重力作用,即

水平和竖直加速度

则我们可以写出物体在任意时刻t的水平和竖直位移,即

水平和竖直位移

上述方程组包含未知量为:角度θ、时间t、水平位移x和竖直位移y,下面我们就需要推导这组方程组

三、解法一:构造关于时间t的二次函数

这个解法是容易可以想到的,我们来首先计算出时间t,则需要消去角度θ

我们将方程组进行分离变量t和θ,并带入y=-h,即得到

分离变量t和θ

由于要消元θ,将方程组两边平方得到

方程组两边平方

相加两个方程,得到

化简

可以看到消元θ后,我们得到关于x和t的一个方程,分离变量得到

分离变量x和t

上述方程包含x和t,我们构造x^2关于t^2的二次函数f(t^2),即

x^2关于t^2的二次函数

我们要求出x的最大值,即求f(t^2)的最大值,则f(t^2)的对称轴为

f(t^2)的对称轴

f(t^2)的最大值在对称轴上取得,即

f(t^2)的最大值

此时我们利用二次函数求出了t和x,即

解法一求出最远距离x和运动时间t

下面我们来推导使得x到达最远的角度θ策略,我们回到初始方程组

初始方程组

相除两个方程,并带入求出的x和t,可化简得到

计算tanθ

则我们得到使得x取得最大值的角度θ为

角度θ

四、解法二:构造关于水平位移x的二次函数

解法二和解法一思路是一样的,同样是利用下面方程组来推导

位移方程组

不同的是,我们选择消去时间t来计算角度θ,则由第一个方程得

t的表达式

带入第二个方程消去t,并带入y=-h,得到

消元t

上述方程包含tanθ和x两个变量,我们将方程视为关于x的二次方程,即

关于x的二次函数此时特别注意:比较解法一,我们无法利用二次函数的对称轴来求解x的最值,因为这个二次函数的系数不是单变量θ,而是非线性函数tanθ!

故我们先求出根的判别式

根的判别式

可以看到,该二次函数f(x)一定有两个实数解,利用求根公式,得到f(x)的解为

二次函数f(x)的解

我们令

构造h(x)

则我们要求x的最大值,即转化求h(x)的最大值,而h(x)不是初等函数,故需要对h(x)求一阶导数但是推导到这里,我们发现h(x)的表达式包含分式、非线性函数和开根号等复合函数,导致其导数将非常难求,故我们无法利用数学来推导h(x)的极值

为此,我们只能采取数值计算的方法,通过编程来插值计算h(x)

数值计算方法

五、解法三:分析矢量速度三角形面积

上述解法都是从位移方程组出发来消元的,我们重新换一种思路,因为整个运动过程只有重力做功,我们设运动结束的速度为v,列出动能方程,即

动能方程

至此,我们发现落地速度v是一个常量,分析运动结束的速度矢量三角形,有如下三个分量

速度矢量三角

可以看到落地速度v(在运动的切线方向)和初速度v0都是常量,只有竖直方向的速度vy是一个变量

竖直方向的速度

我们引入新的变量φ表示:v和v0之间的夹角

则我们用v、v0和φ列出该三角形的面积为

速度矢量三角形面积

我们在找出该三角形面积的另一个表达式,用vy和vy边上的高即可

速度矢量三角形面积

至此,三角形面积是相等的,我们将两个面积表达式写在一起,即

三角形面积相等

我们根据面积的不同表达式得到上述方程,发现含有φ、θ和t三个变量,我们需要消元

由水平位移方程

水平位移方程

可以看到整个x的表达式出现在上述方程的右侧,带入得到

消元得到x的表达式

至此,我们得到x的关系表达式,且x的大小和正比于变量sin(φ),而sin(φ)最大值为1,即当

分析求出x的最大值

至此我们求出当φ为90度的时候,x取得的最大值,则由几何知识可以得到v和vy的夹角也为θ

φ为90度的速度矢量三角形

从上图几何关系中,我们可以直接求出θ,即

几何关系直接求θ

即可以求出使得x取得最大值的夹角θ为

角度θ

我们求出了x和θ,直接带入水平位移方程,即可求出t,即

时间t

可以看到解法三求出的关于x、t和θ的数学表达式和解法一是一样的

六、解法四:包络线方程

我们考虑更一般的情景,还是从水平位移和竖直位移的方程组出发

水平位移和竖直位移

和解法二类似,我们联立上述方程组消去时间t,得到

消元t特别注意,此时我们并没有带入y=-h这个条件,而是将y也当做变量(准确来说是某个函数表达式)

至此,回顾解法二,我们是将上述方程视为关于x的二次方程,但是发现解不出来其一阶导数,故解法二采用数值计算来分析,所以我们需要从数学的角度,重新换一个角度来审视上述方程

所以我们定义

关于θ的隐函数我们构造的函数f(x, θ)有如下数学意义和物理意义:

(1)f(x, θ)的数学意义为:以x和θ为自变量,且包含关于θ隐函数

(2)f(x, θ)的几何物理意义为:表示物体以任意角度做抛物线运动的轨迹方程

由于θ和任意一个抛物线运动都是一一对应的,即θ是抛物线运动轨迹的特征参数,θ是单值的,则在数学上可以翻译为:轨迹函数f(x, θ)对θ的偏导数为0

θ是单值的

我们带入f(x, θ)求出θ的偏导数,即

f(x, θ)对θ的偏导数为0

至此我们得到θ和x的关系式,我们将tanθ带入f(x, θ),化简得到

得到包络线方程

可以看到,我们推导出了y的函数表达式,且y是以x为单自变量的开口向下的二次函数,数学上我们将y称为:包络线方程包络线的几何意义为:

(1)包络线是一条光滑连续的曲线

(2)包络线保证同一类运动的轨迹方程(抛物线族)有且和包络线曲线相切有一个交点

(3)同一类抛物线族都在包络线的范围之内

至此,我们令包络线y=-h,即可解出x的最大值,即

求解x

将x的表达式带入tanθ,即

求解tanθ

即可求出θ

求解θ

求出x和θ后,带入水平位移方程,即可求出t

求解t

可以看到解法四求出的关于x、t和θ的数学表达式和解法一、解法三是一样的

七、带入数据测试4种不同解法的正确性

我们以投掷实心球的场景,假设出手初速度v0=10m/s,身高h=1.7m,重力加速度g=9.78m/s^2

通过python编程实现上述四种解法,得到的结果如下

四种解法的计算结果

可以看到无论哪种算法,计算的结果都是一样的,只是思考方向和角度不同

最后,我们在上述场景里可视化画出解法四的包络线方程和抛物线族

包络线方程和抛物线族

可以看到,物体无论以什么角度做斜抛运动,其抛物线运动轨迹(红色)均在包络线方程范围内

8、心得总结(1)解法一最直接,却要注意消元的选择,保证推导的函数没有包含复合函数,计算量中等

(2)解法二由于带有复合函数,导致求导异常困难,适用数值计算方法,计算量太大

(3)解法三需要一定的技巧和观察能力,计算量最小,高效却不灵活

(4)解法四需要用另一个角度去审视轨迹方程,模型最通用,计算量中等

python自动轨迹绘制七边形_斜抛运动的数学模型相关推荐

  1. python自动轨迹绘制七边形_前端系列——canvas实现按住鼠标移动绘制出轨迹

    概要 工作以来,写过vue.react.正则.算法.小程序等知识,唯独没有写过canvas,因为实在不会啊! 2018年,给自己设定一个小目标:学会canvas,达到的效果是能用canvas实现一些c ...

  2. python画轨迹曲线-python 自动轨迹绘制的实例代码

    用到的思维: 自动化思维,数据和功能分开处理,用数据驱动程序自动运行 接口化设计,数据与程序的对接方式要清晰明了 二维数据应用,应用维度组织数据,二维数据最常用 代码 # AutoTrace.py i ...

  3. python自动轨迹绘制_自动轨道图,轨迹,绘制

    需求 根据脚本来绘制图形 不是写代码而是写数据绘制轨迹 数据脚本是自动化的第一步 基本思路 ①定义数据文件格式(接口) 非常具有个性色彩 ②编写程序,根据文件接口解析参数绘制图形 ③编制数据文件 方法 ...

  4. python自动轨迹绘制_Python——自动轨迹绘制

    需求:根据脚本来绘制图形 不是写代码而是写数据来绘制轨迹 数据脚本是自动化最重要的第一步 基本思路: 步骤1:定义数据文件格式(接口) 步骤2:编写程序,根据文件接口解析参数绘制图形 步骤3:编制数据 ...

  5. python自动轨迹绘制_python day 20 自动轨迹绘制

    自动轨迹绘制 一.概述 1.自动绘制,大概就是 数据与功能代码 分离.即,在写代码的过程中,变量没有赋值,变量的值存储在文本里,每次只需要修改文本即可绘制不同的图形. 2.数据接口.即,文本中的数据的 ...

  6. python多边形的绘制教程_绘制最新:python绘制封闭多边形教程_爱安网 LoveAn.com

    关于"绘制"的最新内容 聚合阅读 今天小编就为大家分享一篇python绘制封闭多边形教程,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧... 这篇文章主要介绍了P ...

  7. python animation 轨迹_Python实例:自动轨迹绘制

    1. 问题分析 需求:根据脚本来绘制图形 Python的 turtle 库通过写代码的方式来绘图,现在我们要根据数据来绘制轨迹. 使用数据脚本时自动化最重要的第一步.例如,根据下面的几组数据绘制出的图 ...

  8. 自动轨迹绘制的python代码_python 自动轨迹绘制的实例代码

    python自动绘制轨迹怎么输入数据?#AutoTraceDraw.py import turtle as t t.title("自动轨迹绘制") t.penc自动化思维,数据和功 ...

  9. Python项目实践:自动轨迹绘制(根据脚本绘制图形)

    一.自动轨迹绘制 这里不是用turtle库写代码绘制图形,而是写程序去读取文件,解析其中的数据然后根据数据来绘制图形,使用数据脚本实现自动化. 在任何领域中,只要是希望我们的程序自动化模块化,设计相关 ...

  10. Python实现 自动轨迹绘制(嵩天老师)

    实例11:自动轨迹绘制 问题分析 -需求:根据脚本来绘制图形 -不是写代码而是写数据绘制轨迹 -数据脚本是自动化最重要的第一步 基本思路 -步骤1:定义数据文件格式(接口) -步骤2:编写程序,根据文 ...

最新文章

  1. 生成树、最小生成树的一些性质以及邻域的概念
  2. StartSSL申请全过程 让网站拥有免费SSL证书
  3. Linux 下安装和配置TSM 7.1
  4. redis日志_为什么我的Redis这么“慢”?
  5. 关于局部变量在内存中的地址
  6. UE4 HTC VIVE - 番外篇 - 局域网联机三
  7. 【Git】GitHub同名项目实现丰富多彩的README.md
  8. Hive UDAF开发
  9. linux下sctp的安装、使用与编程
  10. 计算机桌面右键新建展不开,Win10右键新建不见了怎么办?Win10电脑桌面右键新建没有了解决方法...
  11. 在ADF应用中,能够通过 oracle.adf.view.rich.security.FRAME_BUSTING 参数来使用framebusting功能。
  12. Codevs1074:食物链——题解
  13. 3-2Java数组----一维数组的使用----练习1(电话)
  14. 网页上播放视频的免费的播放器_CKPlayer
  15. 案例分析:FIFA2018球员数据分析
  16. 什么是JPA?Java持续性介绍
  17. PHP接入银联在线网关支付
  18. 程序员的四境界、七宗罪与七武器 [转载]
  19. SSR存在时无法打开Microsoft Store等UWP应用
  20. 智能控制器,智能终端的“大脑” 要求升级,挑战即是机遇

热门文章

  1. python 极客学院 正则表达式
  2. 极智装修知识|飘窗五大改造妙招,让你只想窝在这
  3. 测试第48届格莱美完全获奖名单『二』
  4. 在ADS仿真或者查看S参数的方法
  5. lvgl v8之Styling the scrollbars
  6. 静电放电(ESD)知识小记
  7. 汉字编码,GB2312、GB 13000、GBK、GB18030 介绍
  8. 一分钟教你弄懂智能电表的峰、尖、平、谷
  9. 笔记本重装win10系统
  10. 最大化 LoRa 长距离,秘籍2:接收灵敏度