【问题标题】:How can i find Taylor series of (sqrt(1+x)-1)x? [closed]我怎样才能找到 (sqrt(1+x)-1)x 的泰勒级数? [关闭]
【发布时间】:2020-02-18 01:25:32
【问题描述】:

我如何找到 (sqrt(1+x)-1)/x 的泰勒级数?有什么解决方案我可以在 R 中找到这个泰勒扩展而不是手动估计?

【问题讨论】:

  • @DanY 我不明白为什么它会属于 math.stackexchange。问题是 R 是否可以做到这一点(答案是肯定的,Ryacas)。

标签: r taylor-series


【解决方案1】:

您的函数在x=0 处有一个可移动奇点,但很明显存在0.5 的限制

所以这不起作用:

library(pracma)
f <- function(x){(sqrt(1 + x) - 1) / x}
taylor(f, x0=0, n=4)
# Error in while (r[1] == 0 && lr > 1) { : 
#   missing value where TRUE/FALSE needed

但这确实很好

g <- function(x){ifelse(x==0, 1/2, f(x))}
taylor(g, x0=0, n=4)
#  0.02733281 -0.03899380  0.06250000 -0.12500123  0.50000000

x^4*(7/256) + x^3*(-5/128) + x^2*(1/16) + x*(-1/8) + (1/2) +O(x^5) 相比,实际泰勒级数的开始是x=0

或者你可以将你的函数乘以x并得到

h <- function(x){(sqrt(1 + x) - 1)}
taylor(h, x0=0, n=5)
# 0.02734743 -0.03906311  0.06250008 -0.12500000  0.50000000  0.00000000

然后去掉你在乘以x时引入的0.00000000

【讨论】:

    【解决方案2】:

    使用Ryacas 包:

    library(Ryacas)
    
    yac_str("Taylor(x,0,1) (Sqrt(1+x)-1)/x")
    # "1/2-x/8"
    

    漂亮的形式:

    cat(yac_str("PrettyForm(Taylor(x,0,1) (Sqrt(1+x)-1)/x)"))
    # 1   x
    # - - -
    # 2   8
    

    Taylor(x,0,1) 表示0 的泰勒展开式,顺序为1。这很慢。我已经尝试过Taylor(x,0,9),这导致 R 会话崩溃。

    【讨论】:

      猜你喜欢
      • 2022-06-18
      • 1970-01-01
      • 2018-09-13
      • 2016-01-24
      • 2021-03-19
      • 2020-12-12
      • 2021-12-26
      • 2018-06-23
      • 2015-04-30
      相关资源
      最近更新 更多