前言:
而今我们对“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)的函数图像,结合该图像以及当参数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所示:
(完)
标签: #c语言求自然对数