TAD de los polinomios - Integral definida de un polinomio
Utilizando el tipo abstracto de datos de los polinomios definir la función
integralDef :: (Fractional t, Eq t) => Polinomio t -> t -> t -> t
tal que integralDef p a b
es la integral definida del polinomio p
entre a
y b
. Por ejemplo,
λ> ejPol = consPol 7 2 (consPol 4 5 (consPol 2 5 polCero)) λ> ejPol 2*x^7 + 5*x^4 + 5*x^2 λ> integralDef ejPol 0 1 2.916666666666667 λ> integralDef ejPol 0 1 :: Rational 35 % 12
Soluciones
Se usarán las funciones
-
valor
definida en el ejercicio Valor de un polinomio en un punto y -
integral
definida en el ejercicio Integral de un polinomio.
A continuación se muestran las soluciones en Haskell y las soluciones en Python.
Soluciones en Haskell
import TAD.Polinomio (Polinomio, consPol, polCero) import Pol_Valor_de_un_polinomio_en_un_punto (valor) import Pol_Integral_de_un_polinomio (integral) integralDef :: (Fractional t, Eq t) => Polinomio t -> t -> t -> t integralDef p a b = valor q b - valor q a where q = integral p
Soluciones en Python
from src.Pol_Integral_de_un_polinomio import integral from src.Pol_Valor_de_un_polinomio_en_un_punto import valor from src.TAD.Polinomio import Polinomio, consPol, polCero def integralDef(p: Polinomio[float], a: float, b: float) -> float: q = integral(p) return valor(q, b) - valor(q, a)