stringtranslate.com

Recursión de Levinson

La recursión de Levinson o recursión de Levinson-Durbin es un procedimiento de álgebra lineal para calcular recursivamente la solución de una ecuación que involucra una matriz de Toeplitz . El algoritmo se ejecuta en un tiempo Θ ( n 2 ) , lo que es una gran mejora con respecto a la eliminación de Gauss-Jordan , que se ejecuta en Θ( n 3 ).

El algoritmo de Levinson-Durbin fue propuesto por primera vez por Norman Levinson en 1947, mejorado por James Durbin en 1960 y posteriormente mejorado a 4 n 2 y luego a 3 n 2 multiplicaciones por WF Trench y S. Zohar, respectivamente.

Otros métodos para procesar datos incluyen la descomposición de Schur y la descomposición de Cholesky . En comparación con estas, la recursión de Levinson (en particular, la recursión de Levinson dividida) tiende a ser más rápida computacionalmente, pero más sensible a imprecisiones computacionales como errores de redondeo .

El algoritmo de Bareiss para matrices de Toeplitz (que no debe confundirse con el algoritmo general de Bareiss ) se ejecuta aproximadamente tan rápido como la recursión de Levinson, pero utiliza el espacio O ( n 2 ) , mientras que la recursión de Levinson utiliza solo el espacio O ( n ). Sin embargo, el algoritmo de Bareiss es numéricamente estable , [1] [2] mientras que la recursión de Levinson es, en el mejor de los casos, solo débilmente estable (es decir, exhibe estabilidad numérica para sistemas lineales bien condicionados ). [3]

Los algoritmos más nuevos, llamados algoritmos de Toeplitz asintóticamente rápidos o a veces superrápidos , pueden resolver en Θ( n log p n ) para varios p (por ejemplo, p = 2, [4] [5] p = 3 [6] ). La recursión de Levinson sigue siendo popular por varias razones; por un lado, es relativamente fácil de entender en comparación; por otro, puede ser más rápida que un algoritmo superrápido para n pequeños (generalmente n  < 256). [7]

Derivación

Fondo

Las ecuaciones matriciales siguen la forma

El algoritmo de Levinson-Durbin puede utilizarse para cualquier ecuación de este tipo, siempre que M sea una matriz de Toeplitz conocida con una diagonal principal distinta de cero. Aquí se conoce un vector , y es un vector desconocido de números x i aún por determinar.

Para los fines de este artículo, ê i es un vector formado enteramente por ceros, excepto por su i- ésimo lugar, que contiene el valor uno. Su longitud estará determinada implícitamente por el contexto circundante. El término N se refiere al ancho de la matriz anterior: M es una matriz N × N. Finalmente, en este artículo, los superíndices se refieren a un índice inductivo , mientras que los subíndices denotan índices. Por ejemplo (y definición), en este artículo, la matriz T n es una matriz n × n que copia el bloque n × n superior izquierdo de M  , es decir, T n ij = M ij .

T n también es una matriz de Toeplitz, lo que significa que se puede escribir como

Pasos introductorios

El algoritmo se desarrolla en dos pasos. En el primer paso, se establecen dos conjuntos de vectores, llamados vectores directos y vectores inversos . Los vectores directos se utilizan para ayudar a obtener el conjunto de vectores inversos; luego, se pueden descartar inmediatamente. Los vectores inversos son necesarios para el segundo paso, donde se utilizan para construir la solución deseada.

La recursión de Levinson-Durbin define el n- ésimo "vector hacia adelante", denotado , como el vector de longitud n que satisface:

El n -ésimo "vector hacia atrás" se define de manera similar; es el vector de longitud n que satisface:

Una simplificación importante puede ocurrir cuando M es una matriz simétrica ; entonces los dos vectores están relacionados por b n i = f n n +1− i —es decir, son reversiones de fila entre sí. Esto puede ahorrar algunos cálculos adicionales en ese caso especial.

Obtención de los vectores hacia atrás

Incluso si la matriz no es simétrica, entonces el n -ésimo vector hacia adelante y hacia atrás se puede encontrar a partir de los vectores de longitud n  − 1 de la siguiente manera. Primero, el vector hacia adelante se puede extender con un cero para obtener:

Al pasar de T n −1 a T n , la columna adicional agregada a la matriz no perturba la solución cuando se utiliza un cero para extender el vector hacia delante. Sin embargo, la fila adicional agregada a la matriz ha perturbado la solución y ha creado un término de error no deseado ε f que aparece en el último lugar. La ecuación anterior le da el valor de:

Volveremos a este error en breve y lo eliminaremos del nuevo vector hacia delante; pero primero, el vector hacia atrás debe extenderse de una manera similar (aunque invertida). Para el vector hacia atrás,

Como antes, la columna adicional agregada a la matriz no altera este nuevo vector inverso, pero la fila adicional sí lo hace. Aquí tenemos otro error no deseado ε b con valor:

Estos dos términos de error se pueden utilizar para formar vectores hacia adelante y hacia atrás de orden superior que se describen a continuación. Utilizando la linealidad de las matrices, la siguiente identidad se cumple para todos los :

Si se eligen α y β de modo que el lado derecho dé ê 1 o ê n , entonces la cantidad entre paréntesis cumplirá con la definición del n º vector hacia adelante o hacia atrás, respectivamente. Con esos alfa y beta elegidos, la suma de vectores entre paréntesis es simple y da el resultado deseado.

Para encontrar estos coeficientes, , son tales que:

y respectivamente , son tales que:

Al multiplicar ambas ecuaciones anteriores por uno se obtiene la siguiente ecuación:

Ahora, descartando y colapsando todos los ceros en el medio de los dos vectores anteriores, solo queda la siguiente ecuación:

Una vez resueltos estos problemas (utilizando la fórmula inversa de la matriz 2×2 de Cramer), los nuevos vectores hacia adelante y hacia atrás son:

Realizando estas sumas vectoriales, se obtienen los n -ésimos vectores hacia adelante y hacia atrás a partir de los anteriores. Todo lo que queda es encontrar el primero de estos vectores y, luego, algunas sumas y multiplicaciones rápidas dan los restantes. Los primeros vectores hacia adelante y hacia atrás son simplemente:

Usando los vectores hacia atrás

Los pasos anteriores dan los N vectores inversos para M. A partir de allí, una ecuación más arbitraria es:

La solución se puede construir de la misma manera recursiva en que se construyeron los vectores inversos. Por lo tanto, se debe generalizar a una secuencia de intermediarios , tales que .

Luego, la solución se construye de forma recursiva teniendo en cuenta que si

Luego, extendiendo nuevamente con un cero y definiendo una constante de error donde sea necesario:

Luego podemos utilizar el n -ésimo vector inverso para eliminar el término de error y reemplazarlo con la fórmula deseada de la siguiente manera:

Extendiendo este método hasta que n = N obtenemos la solución .

En la práctica, estos pasos suelen realizarse simultáneamente con el resto del procedimiento, pero forman una unidad coherente y merecen ser tratados como un paso independiente.

Algoritmo de Levinson en bloque

Si M no es estrictamente Toeplitz, sino Toeplitz en bloque , la recursión de Levinson se puede derivar de la misma manera considerando la matriz de Toeplitz en bloque como una matriz de Toeplitz con elementos de matriz (Musicus 1988). Las matrices de Toeplitz en bloque surgen naturalmente en los algoritmos de procesamiento de señales cuando se trabaja con múltiples flujos de señales (por ejemplo, en sistemas MIMO ) o señales cicloestacionarias.

Véase también

Notas

  1. ^ Bojanczyk y otros (1995).
  2. ^ Brent (1999).
  3. ^ Krishna y Wang (1993).
  4. ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 25 de marzo de 2012. Consultado el 1 de abril de 2013 .{{cite web}}: CS1 maint: archived copy as title (link)
  5. ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 15 de noviembre de 2009. Consultado el 28 de abril de 2009 .{{cite web}}: CS1 maint: archived copy as title (link)
  6. ^ "Copia archivada" (PDF) . saaz.cs.gsu.edu . Archivado desde el original (PDF) el 18 de abril de 2007 . Consultado el 12 de enero de 2022 .{{cite web}}: CS1 maint: archived copy as title (link)
  7. ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 5 de septiembre de 2006. Consultado el 15 de agosto de 2006 .{{cite web}}: CS1 maint: archived copy as title (link)

Referencias

Definición de fuentes

Trabajos futuros

Resúmenes