查看原文
其他

用Taylor公式估计函数值

Y叔叔 YuLabSMU 2022-09-20

泰勒公式学过微积分都应该知道,可以翻wiki复习一下,https://zh.wikipedia.org/wiki/泰勒公式.

用R简单实现一下,通过不断迭代,逼近真实的函数值:

 efv <- function(f, value, variable="x", a=0, eps=0.001) {
     # estimate function value using Taylor theorem
     assign(eval(variable), a)
     fv.old <- eval(f)
     k <- 1     
     repeat {
         df <- D(f, variable)
         if (df == 0)
             break
         fv.new <- fv.old + eval(df)*(value-a)^k/factorial(k)
         if (fv.new - fv.old < eps)
             break
         fv.old <- fv.new
         f <- df
         k <- k+1
     }
     return (fv.new)
 }

估算一下e值,跟系统函数算的差不多,我们把eps设为更小的值,就可以获得更接近的值。

efv(expression(exp(x)),1)
[1] 2.718254
exp(1)
[1] 2.718282

往期精彩

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存