Haskell - Taylor del cosinus P28687


Statement
 

pdf   zip

La sèrie de Taylor per calcular el cosinus d’α\alpha és: cosα=n0(1)nα2n(2n)!.\cos \alpha = \sum_{n\ge 0} (-1)^n \frac{\alpha^{2n}}{(2n)!}.

Per evitar problemes amb la precisió dels nombres reals treballarem amb nombres racionals: Afegiu import Data.Ratio al principi del vostre programa i sapigueu que a % b construeix el racional amb numerador a i denominador b.

  1. Feu una funció termes_cosinus :: Rational -> [Rational] que retorni una llista infinita amb els termes del desenvolupament de Taylor del cosinus d’un angle.

    Nota: els termes no inclouen el sumatori.

  2. Feu una funció cosinus :: Rational -> Rational -> Rational que, a partir de dos racionals α\alpha i ε\varepsilon aproximi el cosinus d’α\alpha tot sumant tots els termes de la llista infinita anterior amb valors absoluts superiors o iguals a ε\varepsilon.

Public test cases
  • Input

    take 5 $ termes_cosinus 0
    cosinus 0 (1%100000)
    map fromRational $ take 5 $ termes_cosinus (314%100)
    fromRational $ cosinus (314%100) (1%100000)
    

    Output

    [1 % 1,0 % 1,0 % 1,0 % 1,0 % 1]
    1 % 1
    [1.0,-4.9298,4.050488006666667,-1.331206385017689,0.23437790131643582]
    -1.0000028659910203
    
  • Information
    Author
    Jordi Petit, Gerard Escudero
    Language
    Catalan
    Official solutions
    Haskell
    User solutions
    Haskell