Main Content

integral

Integración numérica

Descripción

ejemplo

q = integral(fun,xmin,xmax) integra numéricamente la función fun desde xmin hasta xmax mediante cuadratura adaptativa global y tolerancias a errores predeterminadas.

ejemplo

q = integral(fun,xmin,xmax,Name,Value) especifica opciones adicionales con uno o más argumentos de par Name,Value. Por ejemplo, especifique 'WayPoints' seguido de un vector de números reales o complejos para indicar puntos específicos para que los use el integrador.

Ejemplos

contraer todo

Cree la función f(x)=e-x2(lnx)2.

fun = @(x) exp(-x.^2).*log(x).^2;

Evalúe la integral desde x=0 hasta x=Inf.

q = integral(fun,0,Inf)
q = 1.9475

Cree la función f(x)=1/(x3-2x-c) con un parámetro, c.

fun = @(x,c) 1./(x.^3-2*x-c);

Evalúe la integral desde x=0 hasta x=2 en c=5.

q = integral(@(x) fun(x,5),0,2)
q = -0.4605

Para obtener más información sobre esta técnica, consulte Parametrizar funciones.

Cree la función f(x)=ln(x).

fun = @(x)log(x);

Evalúe la integral desde x=0 hasta x=1 con las tolerancias a errores predeterminadas.

format long
q1 = integral(fun,0,1)
q1 = 
  -1.000000010959678

Evalúe la integral de nuevo, esta vez con 12 decimales de precisión. Establezca RelTol en cero para que integral solo intente cumplir la tolerancia a errores absoluta.

q2 = integral(fun,0,1,'RelTol',0,'AbsTol',1e-12)
q2 = 
  -1.000000000000010

Cree la función f(z)=1/(2z-1).

fun = @(z) 1./(2*z-1);

Realice la integración en el plano complejo a lo largo de la trayectoria triangular desde 0 hasta 1+1i hasta 1-1i hasta 0 especificando waypoints.

q = integral(fun,0,0,'Waypoints',[1+1i,1-1i])
q = 0.0000 - 3.1416i

Cree la función de valores de vectores f(x)=[sinx,sin2x,sin3x,sin4x,sin5x] e intégrela desde x=0 hasta x=1. Especifique 'ArrayValued',true para evaluar la integral de una función de valores de arreglos o de valores de vectores.

fun = @(x)sin((1:5)*x);
q = integral(fun,0,1,'ArrayValued',true)
q = 1×5

    0.4597    0.7081    0.6633    0.4134    0.1433

Cree la función f(x)=x5e-xsinx.

fun = @(x)x.^5.*exp(-x).*sin(x);

Evalúe la integral desde x=0 hasta x=Inf, ajustando las tolerancias absoluta y relativa.

format long
q = integral(fun,0,Inf,'RelTol',1e-8,'AbsTol',1e-13)
q = 
 -14.999999999998360

Argumentos de entrada

contraer todo

Integrando, especificado como identificador de función, que define la función que se desea integrar desde xmin hasta xmax.

En los problemas de valores escalares, la función y = fun(x) debe aceptar un argumento de vector, x, y devolver un resultado de vector, y. Esto normalmente significa que fun debe utilizar operadores de arreglos en lugar de operadores de matrices. Por ejemplo, use .* (times) en lugar de * (mtimes). Si establece la opción 'ArrayValued' en true, fun debe aceptar un escalar y devolver una arreglo de tamaño fijo.

Límite inferior de x, especificado como valor escalar real (finito o infinito) o valor escalar complejo (finito). Si xmin o xmax son complejos, integral aproxima la integral de línea desde xmin hasta xmax a lo largo de una línea recta.

Tipos de datos: double | single
Soporte de números complejos:

Límite superior de x, especificado como número real (finito o infinito) o número complejo (finito). Si xmin o xmax son complejos, integral aproxima la integral de línea desde xmin hasta xmax a lo largo de una línea recta.

Tipos de datos: double | single
Soporte de números complejos:

Argumentos de par nombre-valor

Especifique pares opcionales de argumentos como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.

En las versiones anteriores a R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: integral(fun,a,b,'AbsTol',1e-12) establece la tolerancia a errores absoluta en aproximadamente 12 decimales de precisión.

Tolerancia a errores absoluta, especificada como par separado por comas que consta de 'AbsTol' y de un número real no negativo. integral utiliza la tolerancia a errores absoluta para limitar una estimación del error absoluto, |qQ|, donde q es el valor calculado de la integral y Q es el valor exacto (desconocido). integral podría proporcionar más decimales de precisión si reduce la tolerancia a errores absoluta.

Nota

AbsTol y RelTol funcionan de manera conjunta. integral podría satisfacer la tolerancia a errores absoluta o la tolerancia a errores relativa, pero no necesariamente ambas. Para obtener más información sobre el uso de estas tolerancias, consulte la sección Consejos.

Ejemplo: integral(fun,a,b,'AbsTol',1e-12) establece la tolerancia a errores absoluta en aproximadamente 12 decimales de precisión.

Tipos de datos: single | double

Tolerancia a errores relativa, especificada como par separado por comas que consta de 'RelTol' y de un número real no negativo. integral utiliza la tolerancia a errores relativa para limitar una estimación del error relativo, |qQ|/|Q|, donde q es el valor calculado de la integral y Q es el valor exacto (desconocido). integral podría proporcionar más dígitos significativos de precisión si reduce la tolerancia a errores relativa.

Nota

RelTol y AbsTol funcionan de manera conjunta. integral podría satisfacer la tolerancia a errores relativa o la tolerancia a errores absoluta, pero no necesariamente ambas. Para obtener más información sobre el uso de estas tolerancias, consulte la sección Consejos.

Ejemplo: integral(fun,a,b,'RelTol',1e-9) establece la tolerancia a errores relativa en aproximadamente nueve dígitos significativos.

Tipos de datos: single | double

Indicador de función de valores de arreglos, especificado como el par separado por comas que consta de 'ArrayValued' y un 1 (true) o 0 (false) numérico o lógico. Establezca este indicador en true o 1 para indicar que fun es una función que acepta una entrada escalar y devuelve un vector, una matriz o una salida de arreglo en ND.

EL valor predeterminado de false indica que fun es una función que acepta una entrada de vector y devuelve una salida de vector.

Ejemplo: integral(fun,a,b,'ArrayValued',true) indica que el integrando es una función de valores de arreglos.

Waypoints de integración, especificados como el par separado por comas que consta de 'Waypoints' y un vector de números complejos o reales. Utilice waypoints para indicar aquellos puntos del intervalo de integración que desea que el integrador utilice en la malla inicial:

  • Añada más puntos de evaluación cerca de funcionalidades interesantes de la función, como extremos locales.

  • Realice una integración eficiente a lo largo de las discontinuidades del integrando especificando las ubicaciones de dichas discontinuidades.

  • Lleve a cabo integraciones de contorno complejas especificando números complejos como waypoints. Si xmin, xmax o cualquier entrada del vector de waypoints son complejos, la integración se lleva a cabo en una secuencia de trayectorias en línea recta en el plano complejo. En este caso, todos los waypoints y límites de integración deben ser finitos.

No utilice waypoints para especificar singularidades. En su lugar, divida el intervalo y añada los resultados de integraciones separadas con las singularidades en los puntos finales.

Ejemplo: integral(fun,a,b,'Waypoints',[1+1i,1-1i]) especifica dos waypoints complejos a lo largo del intervalo de integración.

Tipos de datos: single | double
Soporte de números complejos:

Sugerencias

  • La función integral intenta cumplir lo siguiente:

    abs(q - Q) <= max(AbsTol,RelTol*abs(q))
    donde q es el valor calculado de la integral y Q es el valor exacto (desconocido). La tolerancia absoluta y relativa proporcionan una manera de compensar la precisión y el tiempo de cálculo. Normalmente, la tolerancia relativa determina la precisión de la integración. No obstante, si abs(q) es lo suficientemente pequeño, la tolerancia absoluta determina la precisión de la integración. Por lo general debería especificar juntas la tolerancia absoluta y la tolerancia relativa.

  • Si está especificando límites de precisión simple de la integración o si fun devuelve resultados de precisión simple, podría necesitar especificar tolerancias a errores absolutas y relativas más amplias.

Referencias

[1] L.F. Shampine “Vectorized Adaptive Quadrature in MATLAB®,” Journal of Computational and Applied Mathematics, 211, 2008, pp.131–140.

Capacidades ampliadas

Historial de versiones

Introducido en R2012a