泰勒系列在haskell

mus*_*453 2 math recursion haskell taylor-series

如何编写像这样的泰勒级数递归数据:

fib = 0 : scanl (+) 1 fib
Run Code Online (Sandbox Code Playgroud)

例如,我想要promt这样的东西:

fac n = product[1..n]
sin' x = x : x^3/fac(3) : x^5/fac(5) : ...
sum $ take 10 (sin' (pi/6))
Run Code Online (Sandbox Code Playgroud)

并获得正弦泰勒系列的10个第一要素的总和.

Tom*_*lis 8

这不是泰勒系列的罪恶!但这是一个线索......

products = scanl (*) 1 [1..]
powers x = map (x^) [0..]
exp' x = zipWith (/) (powers x) products

*Main> sum (take 10 (exp' 1))
2.7182815255731922
Run Code Online (Sandbox Code Playgroud)

  • 更有效的`powers x`的实现将是`iterate(x*)1`. (2认同)