Documentaciónintegral_simpson(expr, a, b, n)
Nombre
integral_simpson - Aproxima una integral definida con la regla de Simpson 1/3 compuesta.
Sinopsis
area = numericos.integral_simpson(expr, a, b, n)
Descripcion
Aproxima la integral definida de una expresion entre a y b usando parabolas sobre subintervalos consecutivos.
Requiere que n sea par.
Formula compuesta:
Validaciones y casos borde
- Valida que
nsea entero, mayor que cero y par; si no, emiteERROR(). - Si
a == b, retorna0, que es el valor matematico de la integral sobre un intervalo nulo. - Admite
a > by retorna la integral con signo negativo.
Comportamiento
- Calcula el paso
h = (b-a)/n. - Evalua
f(x)conRESOLVER()en extremos y nodos interiores. - Suma los puntos impares con peso 4 y los pares con peso 2.
- Requiere que
nsea par; si no lo es, emiteERROR().
Funciones API relacionadas
numericos.integral_trapecio()
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| expr | STRING | Expresion matematica en texto evaluada por RESOLVER(). |
| a | NUMERICO | Extremo inferior del intervalo. |
| b | NUMERICO | Extremo superior del intervalo. |
| n | NUMERICO | Cantidad de subintervalos. |
Valor de retorno
NUMERICO - Valor aproximado de la integral definida.
Ejemplo
ejemplo.blox
INCLUIR "numericos.api"
FUNCION PRINCIPAL
INICIO "Demo INTEGRACION - numericos.api"
STRING f1, f2
NUMERICO a, b
NUMERICO n
NUMERICO I_trap, I_simp
// ----------------------------------------------------------------
// CASO 1: f(x) = x^2 en [0, 1]
// Integral exacta = 1/3 ≈ 0.33333333
// ----------------------------------------------------------------
f1 = "x^2"
a = 0
b = 1
n = 10 // probá también n = 100 para ver mejora
IMPRIMIR("Demo integracion para f(x) = x^2 en [0, 1]")
IMPRIMIR("\nIntegral exacta ≈ 0.33333333\n")
I_trap = numericos.integral_trapecio(f1, a, b, n)
I_simp = numericos.integral_simpson(f1, a, b, n)
IMPRIMIR("Trapecio (n = ", n, "): ", I_trap)
IMPRIMIR("\nSimpson (n = ", n, "): ", I_simp, "\n")
// ----------------------------------------------------------------
// CASO 2: f(x) = sin(x) en [0, pi]
// Integral exacta = 2
// ----------------------------------------------------------------
f2 = "sin(x)"
a = 0
b = pi
n = 10 // debe ser par para Simpson
IMPRIMIR("\nDemo integracion para f(x) = sin(x) en [0, pi]")
IMPRIMIR("\nIntegral exacta = 2\n")
I_trap = numericos.integral_trapecio(f2, a, b, n)
I_simp = numericos.integral_simpson(f2, a, b, n)
IMPRIMIR("Trapecio (n = ", n, "): ", I_trap)
IMPRIMIR("\nSimpson (n = ", n, "): ", I_simp)
IMPRIMIR("\n\nFin demo integracion.\n")
FINAL
Restringido: este ejemplo no puede ejecutarse en el Playground web porque la API requerida no está disponible en el sandbox.