Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

integral

Integración numérica

Descripción

ejemplo

q = integral(fun,xmin,xmax) integra de forma numérica la función fun de xmin a xmax mediante la cuadratura adaptativa global y las tolerancias de error 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 los puntos específicos que debe utilizar el integrador.

Ejemplos

contraer todo

Cree la función .

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

Evalúe la integral de x=0 a x=Inf.

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

Cree la función con un parámetro, .

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

Evalúe la integral de x=0 a x=2 en c=5.

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

Cree la función .

fun = @(x)log(x);

Evalúe la integral de x=0 a x=1 con las tolerancias de error predeterminadas.

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

Evalúe la integral de nuevo, especificando 12 posiciones decimales de exactitud.

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

Cree la función .

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

Integre en el plano complejo sobre la trayectoria triangular de 0 a 1+1i a 1-1i a 0 especificando waypoints.

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

Cree la función de valores vectoriales e integre de x=0 a x=1. Especifique 'ArrayValued',true para evaluar la integral de una función de valores de array o de valores vectoriales.

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 .

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

Evalúe la integral de x=0 a x=Inf, ajustando la tolerancia absoluta y relativa.

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

Argumentos de entrada

contraer todo

Integrando, especificado como un identificador de función que define la función que se debe integrar de xmin a xmax.

Para los problemas con valores escalares, la función y = fun(x) debe aceptar un argumento vectorial, x, y devolver un resultado vectorial, y. Esto generalmente significa que fun debe utilizar operadores de array en lugar de operadores de matriz. Por ejemplo, utilice .* (times) en lugar de * (mtimes). Si establece la opción 'ArrayValued' como true, fun debe aceptar un escalar y devolver un array de tamaño fijo.

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

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

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

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

Argumentos de par nombre-valor

Ejemplo: 'AbsTol',1e-12 establece la tolerancia de error absoluta en aproximadamente 12 puntos decimales de precisión.

Tolerancia de error absoluta, especificada como un par separado por comas consistente en 'AbsTol' y un número real no negativo. integral utiliza la tolerancia de error 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 puntos decimales de precisión si se disminuye la tolerancia de error absoluta. El valor predeterminado es 1e-10.

Nota

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

Ejemplo: 'AbsTol',1e-12 establece la tolerancia de error absoluta en aproximadamente 12 puntos decimales de precisión.

Tipos de datos: single | double

Tolerancia de error relativa, especificada como un par separado por comas consistente en 'RelTol' y un número real no negativo. integral utiliza la tolerancia de error 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 dígitos de precisión más significativos si se disminuye la tolerancia de error relativa. El valor predeterminado es 1e-6.

Nota

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

Ejemplo: 'RelTol',1e-9 establece la tolerancia de error relativa en aproximadamente 9 dígitos significativos.

Tipos de datos: single | double

Indicador de función con valores de array, especificado como un par separado por comas que consta de 'ArrayValued' y false, true, 0 o 1. Establezca este indicador como true para indicar que fun es una función que acepta una entrada escalar y devuelve una salida de array vectorial, matricial o N-D.

El valor predeterminado 'false' indica que fun es una función que acepta una entrada vectorial y devuelve una salida vectorial.

Ejemplo: 'ArrayValued',true indica que el integrando es una función con valores de array.

Waypoints de integración, especificados como un par separado por comas que consiste en 'Waypoints' y un vector de números reales o complejos. Utilice waypoints para indicar cualquier punto en el intervalo de integración que desee que utilice el integrador. Puede utilizar waypoints para integrar eficientemente a través de las discontinuidades del integrando. Especifique las ubicaciones de las discontinuidades en el vector que suministre.

Puede especificar waypoints cuando desee realizar una integración de contorno compleja. Si xmin, xmax o cualquier entrada del vector de waypoints es compleja, la integración se realiza sobre una secuencia de trayectorias en línea recta en el plano complejo.

Ejemplo: '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

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

  • La función integral intenta satisfacer:

    abs(q - Q) <= max(AbsTol,RelTol*abs(q))
    Donde q es el valor calculado de la integral y Q es el valor exacto (desconocido). Las tolerancias absolutas y relativas proporcionan una manera de equilibrar la exactitud y el tiempo de cómputo. Generalmente, la tolerancia relativa determina la exactitud de la integración. Sin embargo, si abs(q) es suficientemente pequeña, la tolerancia absoluta determina la exactitud de la integración. En general, debe especificar las tolerancias absoluta y relativa juntas.

  • Si especifica un valor complejo para xmin, xmax o cualquier waypoint, todos sus límites y waypoints deben ser finitos.

  • Si va a especificar límites de precisión única de integración, o si fun devuelve resultados de precisión única, es posible que necesite especificar una tolerancia de error absoluta y relativa más grande.

Referencias

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

Introducido en R2012a