TAD de los polinomios: Integral definida de un polinomio
Usando el tipo abstracto de datos de los polinomios definir la función
1 |
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,
1 2 3 4 5 6 7 |
λ> 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
A continuación se muestran las soluciones en Haskell y las soluciones en Python.
1 2 3 4 5 6 7 |
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 |
1 2 3 4 5 6 7 8 |
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) |