stringtranslate.com

recursividad de Levinson

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

El algoritmo 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 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 estos, la recursión de Levinson (particularmente la recursión de Levinson dividida) tiende a ser computacionalmente más rápida, 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 tan rápido como la recursión de Levinson, pero usa el espacio O ( n 2 ) , mientras que la recursión de Levinson usa solo el espacio O ( n ). El algoritmo de Bareiss, sin embargo, es numéricamente estable , [1] [2] mientras que la recursividad de Levinson es, en el mejor de los casos, sólo 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 ) varios p (por ejemplo, p = 2, [4] [5] p = 3 [6] ). La recursividad 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ápido que un algoritmo superrápido para n pequeño (normalmente n  < 256). [7]

Derivación

Fondo

Las ecuaciones matriciales siguen la forma

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

Por el bien de este artículo, ê i es un vector formado enteramente por ceros, excepto por su i- ésimo lugar, que tiene el valor uno. Su duración estará implícitamente determinada 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 puede escribirse como

Pasos introductorios

El algoritmo se desarrolla en dos pasos. En el primer paso, se establecen dos conjuntos de vectores, llamados vectores hacia adelante y hacia atrás . Los vectores hacia adelante se utilizan para ayudar a obtener el conjunto de vectores hacia atrás; entonces pueden ser descartados inmediatamente. Los vectores hacia atrás son necesarios para el segundo paso, donde se utilizan para construir la solución deseada.

La recursividad de Levinson-Durbin define el enésimo "vector directo", denominado , 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 el que satisface:

Puede ocurrir una simplificación importante 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 inversiones de filas entre sí. Esto puede ahorrar algunos cálculos adicionales en ese caso especial.

Obteniendo 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 directo se puede ampliar 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 usa un cero para extender el vector directo. 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 último lugar. La ecuación anterior le da el valor de:

Este error volverá a aparecer en breve y se eliminará del nuevo vector directo; pero primero, el vector hacia atrás debe extenderse de manera similar (aunque invertida). Para el vector hacia atrás,

Como antes, la columna adicional agregada a la matriz no perturba este nuevo vector hacia atrás; pero la fila extra sí. 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. Usando la linealidad de matrices, la siguiente identidad es válida para todos :

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

Para encontrar estos coeficientes, son tales que:

y respectivamente , son tales que:

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

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

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

Luego, al realizar estas sumas de vectores, se obtienen los enésimos vectores hacia adelante y hacia atrás 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 hacia atrás para M. A partir de ahí, una ecuación más arbitraria es:

La solución se puede construir de la misma forma recursiva en que se construyeron los vectores hacia atrás. En consecuencia, debe generalizarse a una secuencia de intermediarios , tal que .

Luego, la solución se construye recursivamente observando que si

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

Luego podemos usar el n -ésimo vector hacia atrás para eliminar el término de error y reemplazarlo con la fórmula deseada de la siguiente manera:

Extendiendo este método hasta n = N se obtiene la solución .

En la práctica, estos pasos suelen realizarse al mismo tiempo que el resto del procedimiento, pero forman una unidad coherente y merecen ser tratados como un paso propio.

Bloquear algoritmo de Levinson

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

Ver también

Notas

  1. ^ Bojanczyk y col. (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

Definiendo fuentes

Más trabajo

Resúmenes