Forth 中的分数幂运算

问题描述

我正在尝试编写一个适合模型的值的函数。

我有一个来自压力传感器的测量值,我必须使用校准模型将值转换为最终的压力管理。这样做涉及将测量值提高到分数幂,在本例中为 x^2.032。

我是用 Mecrisp Stellaris 写的,这是 Forth 的一种方言。

我有点卡住了。我理解 2.032 = 254/125,但是有没有比简单地使用巨大的力量和巨大的根更清洁的写东西的方法?

解决方法

如果您的语言(或计算器)具有平方根,则 ypu 可以使用它来计算任何幂。当然,如果语言有幂函数,使用它会更好(更简单、更快、更准确)。

例如计算

pow( x,2.032)

我们首先将 2.032 展开为二进制小数(例如通过以十六进制浮点形式查看)为

1.032 = 2 + 1/pow(2,5) + 1/pow(2,11) + 1/pow(2,12)

因此

pow( x,2.032) = pow(x,2) * pow( x,1/pow(2,5)) * ...

我们可以计算

pow( x,5)) 

从 x 开始并连续取 5 个平方根。 一般的方法是对2.032的二进制展开循环,取平方根,当二进制数为1时累加成答案

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...