Turno dado

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 7 de noviembre de 2021; las comprobaciones requieren 2 ediciones .

Rotación dada : en álgebra lineal , un operador lineal para rotar un vector en un ángulo dado .

Matriz de Givens [1] [2] [3]

La matriz de Givens tiene la siguiente forma:

Esta matriz difiere de la matriz identidad solo por la submatriz

ubicado en filas y columnas con números y . es ortogonal.

Si se da un vector , entonces eligiendo

porque ⁡ ϕ = a k a k 2 + a yo 2 {\displaystyle \cos {\phi }={\frac {a_{k}}{\sqrt {a_{k}^{2}+a_{l}^{2))))} pecado ⁡ ϕ = − a yo a k 2 + a yo 2 {\displaystyle \sin {\phi }={\frac {-a_{l}}{\sqrt {a_{k}^{2}+a_{l}^{2))))}

puede establecer el componente th del vector a cero :

[ porque ⁡ ϕ − pecado ⁡ ϕ pecado ⁡ ϕ porque ⁡ ϕ ] [ a k a yo ] = [ porque ⁡ ϕ ⋅ a k − pecado ⁡ ϕ ⋅ a yo pecado ⁡ ϕ ⋅ a k + porque ⁡ ϕ ⋅ a yo ] = [ a k 2 + a yo 2 a k 2 + a yo 2 − a yo ⋅ a k + a k ⋅ a yo a k 2 + a yo 2 ] = [ a k 2 + a yo 2 0 ] {\displaystyle {\begin{bmatrix}\cos {\phi }&-\sin {\phi }\\\sin {\phi }&\cos {\phi }\end{bmatrix)){\begin{bmatrix} a_{k}\\a_{l}\end{bmatriz}}={\begin{bmatriz}\cos {\phi }\cdot a_{k}-\sin {\phi }\cdot a_{l}\\ \sin {\phi }\cdot a_{k}+\cos {\phi }\cdot a_{l}\end{bmatrix))={\begin{bmatrix}{\frac {a_{k}^{2} +a_{l}^{2}}{\sqrt {a_{k}^{2}+a_{l}^{2}}}}\\{\frac {-a_{l}\cdot a_{k }+a_{k}\cdot a_{l}}{\sqrt {a_{k}^{2}+a_{l}^{2}}}}\end{bmatrix}}={\begin{bmatrix} {\sqrt {a_{k}^{2}+a_{l}^{2}}}\\0\end{bmatriz}}}

Usando las rotaciones de Givens, se puede calcular la descomposición QR de matrices y dibujar matrices hermitianas en una forma tridiagonal .

Uso de matrices de Givens para tridiagonalización

Queremos reducir una matriz simétrica a una forma tridiagonal:

donde _ Luego lo multiplicamos por la matriz de rotación de Givens: . es la matriz transpuesta. Esto cambiará solo los elementos , y

Aquí el primo denota el elemento que aparece después de la rotación. Elijamos los coeficientes y para que el elemento fuera de la diagonal se haga cero y la relación entre y con y

Después:

Tal rotación se aplica secuencialmente para poner a cero todos los elementos de la primera fila, excepto los dos primeros. Es decir, (1,2), (1,3), (1,4)...(1,n) Entonces la co-segunda línea (2,3),(2, 4)...(2 ,n)

Código C++:

para ( sin signo int i = 0 ; i < N -1 ; ++ i ) { for ( sin signo int j = i + 2 ; j < N ; ++ j ) { t = 2 * matr [ i ][ j ] / ( matr [ i ][ i ] - matr [ j ][ j ]); phi = 0.5 * atán ( t ); c = cos ( fi ); s = pecado ( fi ); bii = c * c * matr [ i ][ i ] + 2 * c * s * matr [ i ][ j ] + s * s * matr [ j ][ j ]; bij = s * c * ( matr [ j ][ j ] - matr [ i ][ i ]) + matr [ i ][ j ] * ( c * c - s * s ); bjj = s * s * matr [ i ][ i ] + c * c * matr [ j ][ j ] - 2 * c * s * matr [ i ][ j ]; bji = bij ; matr [ yo ][ yo ] = bii ; matr [ yo ] [ j ] = bij ; matr [ j ][ i ] = bji ; matr [ j ][ j ] = bjj ; } }

Notas

  1. Tyrtyshnikov E. E. Métodos de análisis numérico. - M. , 2006. - S. 73-74.
  2. Björck, Åke, 1934-. Métodos numéricos para problemas de al menos cuadrados . - Filadelfia: SIAM, 1996. - S. 121-123. — xvii, 408 páginas p. - ISBN 0-89871-360-9 , 978-0-89871-360-2.
  3. Demmel, James W. Álgebra lineal numérica aplicada . - Philadelphia: Society for Industrial and Applied Mathematics, 1997. - S. 53-56. — xi, 419 páginas p. - ISBN 0-89871-389-7 , 978-0-89871-389-3, 0-89871-361-7, 978-0-89871-361-9.