MATLAB可视化实战系列(二十八)-贪心算法求快速平方根倒数算法中的“魔术数字”含matlab源代码
Posted 文宇肃然
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB可视化实战系列(二十八)-贪心算法求快速平方根倒数算法中的“魔术数字”含matlab源代码相关的知识,希望对你有一定的参考价值。
前言
快速平方根倒数算法(Fast InvSqrt)是一种快速计算平方根的倒数的算法,常用于向量标准化运算,在光照渲染中有重要应用。此算法最早可能是于90年代前期由SGI所发明,后来于1999年在《雷神之锤III竞技场》的源代码中应用。因其中神秘的十六进制“魔术数字”0x5f3759df而出名。本文将使用matlab和c++混合编程,使用贪心算法计算出这个“魔术数字”的值。
以下是我为大家准备的几个精品专栏,喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟!
一、快速平方根倒数算法简介及实现
1.1 算法简介
在计算平方根的倒数时,传统的计算方法是先计算a的平方根sqrt(a),再计算它的倒数1/sqrt(a)。但在计算平方根时使用了牛顿迭代法,大量的浮点运算速度很慢。
而快速平方根倒数算法则将输入的32位浮点数a作为一个整数i,用“魔术数字”0x5f3759df减去i右移一位的值产生近似的估值y,再使用牛顿迭代法迭代一次,就得到了相当精
以上是关于MATLAB可视化实战系列(二十八)-贪心算法求快速平方根倒数算法中的“魔术数字”含matlab源代码的主要内容,如果未能解决你的问题,请参考以下文章
MATLAB实战系列(二十八)-用matlab爬取火车票信息
MATLAB可视化实战系列(二十五)-MATLAB基于直方图的图像去雾
MATLAB可视化实战系列(二十四)-三维可视化如何利用圆锥图显示向量场?
MATLAB可视化实战系列(二十七)-MATLAB非线性可视化之Mandelbrot集与分形