HOWTO · R
R 中的欧拉数 e
本教程演示了如何在 R 中计算欧拉数的值。
本页内容
欧拉数记作 e,约为 2.71828。在 R 中,可以用 exp(1) 直接计算:exp() 会将 e 提升到给定的幂,因此输入 1 就会得到 e。显示的数字是经过四舍五入的结果。
直接使用 exp(1) 计算 e
计算中需要欧拉数时,使用 exp(1)。下面这个简短的 R 示例也展示了如何用同一个函数处理多个输入。
e_value <- exp(1)
inputs <- c(0, 1, 2)
values <- exp(inputs)
print(e_value)
print(values)
对单个数调用函数会得到 e。对于数值向量,exp() 会逐个处理元素:结果分别对应 e 的 0 次方、1 次方和 2 次方。只需要 e 本身时,请使用 exp(1);输入其他值会计算相应的幂。
对数值和向量应用 exp()
exp(x) 会为 x 中的每个值计算 eˣ。例如,exp(2) 是 e 的平方,而 exp(c(0, 1, 2)) 会返回一个与输入长度相同的向量。这种向量化行为让你无需编写循环,就能转换数值数据。
用泰勒级数近似 e
在 1 处展开的泰勒级数为 e = 1 + 1/1! + 1/2! + 1/3! + ⋯。有限项求和只能近似 e,并不等于无穷级数本身。这个示例中的循环会累加从 0 到 20 的各项,包括 1/0! = 1。
terms <- 0:20
approximation <- sum(1 / factorial(terms))
print(approximation)
通常,增加项数会提高近似精度;但如果只需要 e 的值,exp(1) 更简单。
用极限定义近似 e
另一种定义是 e = limₙ→∞ (1 + 1/n)ⁿ。对于有限的 n,这个表达式给出的是近似值。随着 n 增大,数学表达式会趋近 e;但由于浮点运算的影响,任意增大 n 并不能保证结果更准确。
n <- 10000
approximation <- (1 + 1 / n)^n
print(approximation)
这个示例计算的是某个有限 n 对应的表达式,用来说明极限,而不是精确求出极限值。
需要 eˣ − 1 时使用 expm1()
需要计算 eˣ − 1 时,可以使用 expm1(x)。它能直接计算这个表达式,适用于单个数或数值向量;当计算所需的正是这个差值时,这种写法很有用。例如,expm1(1) 得到 e − 1,而 expm1(c(0, 1, 2)) 会对每个输入执行相同的运算。
x <- c(0, 1, 2)
result <- expm1(x)
print(result)
选择合适的方法
在常规 R 计算中,用 exp(1) 获取欧拉数,用 exp(x) 计算 eˣ。若要展示数学定义,可以使用泰勒级数或极限表达式;这两个示例计算的都是有限近似值。目标是 eˣ − 1 时,则使用 expm1(x)。
欧拉数是自然对数的底数,也会出现在连续增长和衰减模型中。R 提供 exp() 函数,并没有单独的内置常量表示 e:表达式 exp(1) 是一次函数调用。这些 R 代码示例均可运行,并且已成功执行;此处不显示输出。