MATLAB可视化实战系列(二十八)-贪心算法求快速平方根倒数算法中的“魔术数字”含matlab源代码

Posted 文宇肃然

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB可视化实战系列(二十八)-贪心算法求快速平方根倒数算法中的“魔术数字”含matlab源代码相关的知识,希望对你有一定的参考价值。

前言

快速平方根倒数算法(Fast InvSqrt)是一种快速计算平方根的倒数的算法,常用于向量标准化运算,在光照渲染中有重要应用。此算法最早可能是于90年代前期由SGI所发明,后来于1999年在《雷神之锤III竞技场》的源代码中应用。因其中神秘的十六进制“魔术数字”0x5f3759df而出名。本文将使用matlab和c++混合编程,使用贪心算法计算出这个“魔术数字”的值。

以下是我为大家准备的几个精品专栏,喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟!

MATLAB-30天带你从入门到精通

MATLAB深入理解高级教程(附源码)

tableau可视化数据分析高级教程

一、快速平方根倒数算法简介及实现

1.1 算法简介

在计算平方根的倒数时,传统的计算方法是先计算a的平方根sqrt(a),再计算它的倒数1/sqrt(a)。但在计算平方根时使用了牛顿迭代法,大量的浮点运算速度很慢。

而快速平方根倒数算法则将输入的32位浮点数a作为一个整数i,用“魔术数字”0x5f3759df减去i右移一位的值产生近似的估值y,再使用牛顿迭代法迭代一次,就得到了相当精

以上是关于MATLAB可视化实战系列(二十八)-贪心算法求快速平方根倒数算法中的“魔术数字”含matlab源代码的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB实战系列(二十八)-用matlab爬取火车票信息

MATLAB可视化实战系列(二十五)-MATLAB基于直方图的图像去雾

MATLAB可视化实战系列(二十四)-三维可视化如何利用圆锥图显示向量场?

MATLAB可视化实战系列(二十七)-MATLAB非线性可视化之Mandelbrot集与分形

MATLAB可视化实战系列(二十六)-MATLAB非线性可视化之线性系统相图(附源码)

MATLAB实战系列(二十六)-遗传算法求解车间调度问题