La sèrie de Taylor per calcular el cosinus d’ és:
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.
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.
Feu una funció
cosinus :: Rational -> Rational -> Rational que, a
partir de dos racionals
i
aproximi el cosinus
d’
tot sumant tots els termes de la llista infinita anterior amb valors
absoluts superiors o iguals a
.
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