风螺旋切线计算的数学验证

风螺旋切线计算的数学验证

2017-10-14 刘崇军 风螺旋线

       在刚刚过去的一周里,全力抵抗节后综合症的你还好吧?在这一周里,有一件对本公众号很重要的事情发生了,那就是“风螺旋的切线与Eθ相垂直”用数学的方法证明了。

        为什么说这件事情很重要呢?因为这首先表示在未来,风螺旋线的相关算法可以全面的接受验证和测试,而不用担心被证伪了。其次,在这个数学基础上,将风螺旋概念泛化而得到的等距螺旋,将会对现有的螺旋线理论带来非常大的改变(感觉像是在做梦,但这个梦越来越真实了)。

        闲话少叙,先来总结一下现有的风螺旋公式:

        现有的风螺旋线公式是基于极坐标系下的表达方式,其中最核心的参数有偏流角DA、半径、Eθ 和 θ等。

        在现代数学中,对极坐标系下曲线的切线计算有着非常成熟的方法(知道的有点晚哈)。核心计算是通过导数方程来实现,具体的步骤是:

  1. 将极坐标系转换为直角坐标系的表达方式。

  2. 对直角坐标系的f(x),f(y)函数分别求导数f(x)'、f(y)'。

  3. 用k=f(y)'/f(x)'得到切线的斜率公式。

  4. 根据给定的(x0,y0)点,得到切线公式:y-y0= k(x-x0)。

        步骤相对简单,实际公式推导就没这么容易了。幸好现在的数学软件(比如:Mathematica)已经可以代替人来完成全部的公式推导过程,因此才有可能在几天的时间内完成整个的验证。

在Mathatica中先列出基础公式及参数:

接下来是切线斜率的验证代码:

        这段代码的核心是将切线的斜率按照反正切函数转换成角度,按照风螺旋的计算方法,θ角倒退一个偏流角DA,再加上90度,就等于切线的角度。这里用倒退后的角度减去切线角度,来观察最终的结果。

        斜率公式是下面的样子(我猜你一定不想看):

 

        做到这一步,有这样一种感觉,现代数学家列出的一堆公式,他(她)们未必真的会去看的,公式只是用来传递思路(很可能是计算机生成的),结果是才我们关心的。面对这样的公式我的内心是打鼓的,这么复杂的内容能够实现 θ-DA-ArcTan[k]= Pi/2 的目标么?在经历了多次的(必须的)试错之后,你看到了上面的最终代码,输出的结果也得到了:

上图中Out[1220] 表示这里是第1220次计算的结果(重复次数多了,这个数字就会噌噌往上长,科学没有一帆风顺啊)。结果是激动我心的:90°和270°,风螺旋终于可以大胆上台面了。

 

风螺旋曲线的验证代码:

最终的风螺旋与切线的叠加效果图:

        反方向风螺旋公式其实很简单,将a角取负值,即可实现。上图中虚线段顺时针外扩的风螺旋即是。Mathematica软件中角度值是逆时针增长的,因此使用 θ-β得到的是逆时针增长的螺旋,使用-θ+β得到的是顺时针增长的螺旋。在计算机软件开发中,通常角度是按顺时针增加,因此,螺旋线的扩展方向刚好相反。无论风螺旋的方向是怎样的,θ角的取值始终必须大于零,表示从基圆圆周开始扩展。θ角小于零的情况下会出现等距螺旋公式突变的情况,这是我目前在进行的另一项“研究”,先保个密哈。

        感谢您耐心的阅读至此,今天的公式很复杂,今天的内容很简单:风螺旋线的切线必定与某个Eθ相垂直,而Eθ与对应的基圆半径相差为一个DA角,正如公众号里一直在重复提到的一样。

 

微信扫一扫
关注该公众号

转载于:https://www.cnblogs.com/windspiral/p/7860821.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值