exp()近似计算,exp快速算法,C语言实现exp

本文介绍一种快速计算exp()函数的算法,算法简单,精度高,运算速度快,可以在普通单片机上实现。

原理:

当取 n=256 时,就能得到非常好的近似效果。

 算法实现:

1.n次方的算法:

          例: x^16 = (((x^2)^2)^2)2

                   代码实现:

                   x *= x;

                   x *= x;

                   x *= x;

                   x *= x;

                   这就是 x^16 的结果。

 

2.计算exp(x)

取n=256=2^8

 

代码实现:

Double exp(double x)

{

           x = 1.0 + x/256;

           x *= x;       x *= x;       x *= x;       x *= x;

           x *= x;       x *= x;       x *= x;       x *= x;

           return x;

}

算法优点:这里避免了指数运算,大大提高了运算速度。如果直接运算,则需要256次乘法。该算法只需要8次乘法即可实现。

执行结果(红色为实际曲线,蓝色为近似曲线,n越大越接近):

exp()近似计算,exp快速算法,C语言实现exp_第1张图片

你可能感兴趣的:(算法,C语言)