创建Java ME Math.pow()方法 - 编程入门网
enominator, 1024.*/
double n = Double.MAX_VALUE; /* we initialize our
estimate, setting it to max*/
while( n >= Double.MAX_VALUE && iterations > 1)
{
/* We try to set our estimate equal to the right
hand side of the equation (e.g., 8^2048). If this
number is too large, we will have to rescale. */
n = x;
for( int i=1; i < num; i++ )n*=x;
/*here, we handle the condition where our starting
point is too large*/
if( n >= Double.MAX_VALUE )
{
iterations--; /*reduce the iterations by one*/
den = (int)(den / 2); /*redefine the denominator*/
num = (int)(y*den); //redefine the numerator
}
}
/*************************************************
** We now have an appropriately sized right-hand-side.
** Starting with this estimate for n, we proceed.
**************************************************/
for( int i = 0; i < iterations; i++ )
{
n = Math.sqrt(n);
}
// Return our estimate
return n;
}
创建Java ME Math.pow()方法(4)时间:2011-07-20 aniel Williams自然对数和欧拉 e 的泰勒级数逼近 对于正实数产生 Math.pow() 方法最简便的方式之一是链接几个方法,包括使用 泰勒级数。假定我们需要幂 y = xb。该式与 ln(y) = b*ln(x) 等价。进而,我们可以使用泰勒级数扩展估算 x 的自然对数,如下所示。
由于 x 为正,因而 x 的整个域为这些方程所覆盖。此交错级数可以提供对底数对数的非常接近的逼近。用指数乘以此对数将得到 ln(y), 方程的右侧 ln(y)=b*ln(x)。现在,我们仅需求出 eln(y) 即可完成运算。我们使用另一个泰勒级数扩展来完成此过程:ex = 1 + x + x2 / 2! + x3 / 3! + … 使用这两个公式,即可求得问题的解,如示例 8 所示。
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |