用 Mathematica 中的阿基米德螺线和复杂代数分析太空中杂耍的模式用 Mathematica 中的阿基米德螺线和复杂代数分析太空中杂耍的模式 太空杂耍是什么样的呢? 当我问这个问题时,我并不是想把地球杂耍放到太空。我想知道对于一个太空艺术家来说杂耍是什么样的。我努力学习并练习了这个技巧。几周前,我还在国际杂耍协会2021年冠军赛上以太空杂耍表演获得了第一名! 人体转动惯量 在我第一次抛物线飞行之前,我写了一个 Mathematica 代码来计算人体在不同位置的主要转动惯量。概述其中一些研究的文章称为“失重中人体的编舞技术”。下图是使用该笔记本生成的。 ![]() 知道主轴很有用,因为最大和最小轴向我们展示了我们可以稳定旋转的轴。如果系统没有简并性,这些是身体可以稳定旋转的唯一轴。通过构造转动惯量张量(绕物体质心)来找到轴,然后找到特征值和特征向量。 在上面的图中,蓝色和红色箭头分别表示的最大和最小轴。如果身体的总角动量与这些轴之一对齐,则身体将稳定旋转并且不会摆动。我发现有趣的是,身体可以围绕腹部旋转,有点像通过围绕蓝色轴旋转的侧手翻。 在失重状态下扔球 下一个需要了解的细节是,当一个球在失重状态下投掷时,它沿直线而不是抛物线运动。 我们可以将这两条信息放在一起,考虑到一个人可以以侧手翻的方式旋转并将球扔给自己。更有趣的是,我们知道球在惯性空间中沿直线运动,但它们在旋转坐标系中的运动路径是什么?杂耍人看到了什么? 首先,我们需要一个表示杂耍人脊柱方向的函数。假设从头部到沿脊柱的位置以及杂耍者的双手之间的距离为 A。我们也可以说杂耍者以角速度 ω 旋转。因此 ![]() 我们想知道从点 f[t] 到手的位置的偏移量,我们可以缩放和旋转 f[t] 来简化。 ![]() 记住,任何复数向量乘以一个单位复数会旋转它,旋转角度是正实轴和这个向量的夹角。在 Mathematica 中,如果您有一个单位复向量,您可以计算这个向量的 Arg,它会告诉您旋转角度是多少。 如果我们加上 f[t] 和 g[t],我们就会得到左手的位置。 ![]() 如果 f[t] 减去 g[t],就得到右手的位置。 ![]() 让我们快速地看一下目前为止我们都得到了什么。我们设 ω = 2 π,这样 t的值就与转数成正比。设 t = 1/8 我们可以从坐标轴上看到它。 ![]() ![]() 现在我们已经有一种方法来展示身体如何在侧手翻运动中旋转。下一个需要展示一个球的运动。它会沿着直线移动。我们想从一个杂耍者的手开始,我们想它被杂耍者的手抓住。从数学上讲,这意味着轨迹将在时间 ti, 位置 开始,在时间到 τ, 结束。 代表球运动方向的向量是 ![]() 太空中的球位置从初始点开始,然后在 τ 时间内移动,因此直线惯性空间的轨迹为 ![]() 我们可以绘制这些轨迹。请看下面左侧图中的线。 ![]() ![]() ![]() ![]() ![]() 更有趣的是观察旋转坐标系中的轨迹。上面的右图显示了杂耍者在旋转框架中看到的东西。您注意到这些球是如何以弧线运动的吗? 要在旋转坐标系中生成绘图,如上图右侧所示,只需将线函数 TL 乘以一个以相同角速度向相反方向旋转的指数函数。 阿基米德螺线 让我们仔细看看代表抛球的方程。简单地说,我们可以认为我们真的不需要指数之外的虚数,因为它只是代表旋转。我们可以以更方便的方式定义 g[t] 。 和我一起看下一组方程。在本节结束时,您会理解我为什么选择这个路径。 ![]() 给出了不同版本的左手 PL 和右手 PR 位置的方程,作为时间的函数 ![]() 我们可以改写为 ![]() 为方便起见,我们可以定义 ![]() 其中 + 用于左手位置,- 用于右手位置。现在我们可以把这些压缩成一个语句 采用另外一种约定,我们可以将投掷表示为i或捕捉表示为 f。将投掷和捕捉的位置分别表示为 Pi 和 Pf[t]。 我们现在可以重写球的线性轨迹方程。回想一下,投掷将在时间 t0 发生,捕捉在时间 τ 之后。 现在要旋转我们对球轨迹的视角,通过乘图片将整个系统旋转到相反的方向 ![]() 这实际上与我们在旋转框架上绘制的函数相同。但是,如果我们看看我们的时间变量结束的地方,我们可以看到方程只是具有指数项乘以线性项。我们可以设置 t0=0, 并写 ![]() 现在方程采取形式 ![]() 这就是阿基米德螺旋方程。 |