龙空技术网

JavaScript用Math.log1p()求自然对数

青石野草 89

前言:

而今我们对“c语言求自然对数”大致比较注意,咱们都需要剖析一些“c语言求自然对数”的相关知识。那么小编在网摘上汇集了一些关于“c语言求自然对数””的相关资讯,希望咱们能喜欢,大家快快来学习一下吧!

1. 基本概念

Math.log1p()方法的作用和Math.log()方法非常相近,它们都是用于计算一个数的自然对数。自然对数就是以自然常数e为底数的对数,在数学上也等价地表示为ln(x)。

调用Math.log1p()方法的语法形式如下所示:

Math.log1p(x);

上面我们说到了Math.log1p()和Math.log()的相同之处,那么它们又有什么不同呢?区别就在于它们各自是对哪一个数求自然对数,这个数和它们的参数有什么关系。

我们将Math.log1p()的方法名分成三部分,分别为:log、1和p。其中log就是“求对数”的意思,1就是数字1;而p表示“plus”,即加法。因此Math.log1p()中的1p就表示“1加上”的意思,那么到底加上什么呢?当然就是后面括号中的参数了。所以Math.log1p()就是先计算1加上它的参数的和,再计算该和的自然对数。

Math.log()方法名中没有1p,也就是不需要加1而直接对它的参数求自然对数,因此Math.log(x)等于ln(x)而Math.log1p(x)等于ln(1+x)。

对参数x的要求就是它应该是一个数字,即x属于Number类型;如果不是,那么它会先被自动转换为Number类型。

图1 ln(1+x)的函数图像

图1展示了ln(1+x)的函数图像,结合该图像以及当参数x为特殊值时,我们来详细说明JavaScript是如何判定Math.log1p()方法的结果的。

1. 如果x是NaN,那么结果是NaN;

2. 如果x小于-1,那么结果是NaN;因为此时x在函数的定义域之外;

3. 如果x是-1,那么结果是负无穷(-Infinity);严格来说此时x也在函数定义域之外,但JavaScript这样处理也说得过去,因为当x趋近于-1时ln(1+x)趋近于负无穷;

4. 如果x是+0,那么结果是+0;

5. 如果x是-0,那么结果是-0;

6. 如果x是正无穷(+Infinity),那么结果是正无穷;

7. 其余情况下,x是普通数字并且在函数的定义域内,因此结果就是ln(1+x)的值。

如果你传递的x不是数字,那么上面这些规则中提到的x的值指的是它被转换为数字后的值。这些规则看似很多、很杂乱,但它们在本质上都是计算函数ln(1+x)的值,结合函数图像以及JavaScript有五个特殊数字(NaN、+0、-0、正无穷和负无穷)可以很容易地理解它们。

2. 示例

<script>    /* 下面3个方法调用中,参数都是普通数字 */    var value1 = Math.log1p(-6);    console.log("Math.log1p(-6):");    console.log(value1);    var value2 = Math.log1p(-1);    console.log("\nMath.log1p(-1):");    console.log(value2);    var value3 = Math.log1p(20);    console.log("\nMath.log1p(20):");    console.log(value3);    /* 下面4个方法调用中的参数都是特殊数字 */    var value4 = Math.log1p(NaN);    console.log("\nMath.log1p(NaN):");    console.log(value4);    var value5 = Math.log1p(+0);    console.log("\nMath.log1p(+0):");    console.log(value5);    var value6 = Math.log1p(-0);    console.log("\nMath.log1p(-0):");    console.log(value6);    var value7 = Math.log1p(+Infinity);    console.log("\nMath.log1p(+Infinity):");    console.log(value7);    /*     * false转换成数字为+0,因此     * Math.log1p(false)等价于Math.log1p(0)     */    var value8 = Math.log1p(false);    console.log("\nMath.log1p(false):");    console.log(value8);</script>

以上代码的执行结果如图2所示:

图2 Math.log1p()方法的执行结果

(完)

标签: #c语言求自然对数