如何解决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时累加成答案
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。