Operaciones con series de potencias

Una serie de potencias es una serie de la forma

Las series de potencias se pueden representar mediante listas infinitas. Por ejemplo, la serie de la función exponencial es

y se puede representar por [1, 1, 1/2, 1/6, 1/24, 1/120, …]

Las operaciones con series se pueden ver como una generalización de las de los polinomios.

En lo que sigue, usaremos el tipo (Serie a) para representar las series de potencias con coeficientes en a y su definición es

Definir las siguientes funciones

tales que

  • (opuesta xs) es la opuesta de la serie xs. Por ejemplo,

  • (suma xs ys) es la suma de las series xs e ys. Por ejemplo,

  • (resta xs ys) es la resta de las series xs es ys. Por ejemplo,

  • (producto xs ys) es el producto de las series xs e ys. Por ejemplo,

  • (cociente xs ys) es el cociente de las series xs e ys. Por ejemplo,

  • (derivada xs) es la derivada de la serie xs. Por ejemplo,

  • (integral xs) es la integral de la serie xs. Por ejemplo,

  • expx es la serie de la función exponencial. Por ejemplo,

Soluciones

5 Comentarios

  1. suma :: Num a => Serie a -> Serie a -> Serie a
    suma = zipWith (+)

    resta :: Num a => Serie a -> Serie a -> Serie a
    resta = zipWith (-)

    derivada :: (Num a, Enum a) => Serie a -> Serie a
    derivada xs = zipWith (*) (tail xs) [1,2..]

    integral :: (Fractional a, Enum a) => Serie a -> Serie a
    integral xs = 0.0 : zipWith (/) xs [1,2..]

    expx :: Serie Rational
    expx = zipWith (/) [1,1..] xs
    where xs = scanl (*) 1 [1,2..]

Escribe tu solución