La física de los neutrinos inspira cómo calcular los autovectores de matrices hermíticas

Por Francisco R. Villatoro, el 14 noviembre, 2019. Categoría(s): Ciencia • Física • Matemáticas • Mathematics • Noticias • Physics • Science ✎ 16

La física inspira las matemáticas y, a veces, nos ofrece sorpresas inesperadas. Unos físicos descubrieron una fórmula sorprendente, que llamaron la piedra de Rosetta de la física de las oscilaciones de los neutrinos en la materia. Contactaron con el matemático más famoso, Terence Tao, para confirmar que era nueva y generalizable. Así todos han publicado la demostración de un nuevo método para calcular (el valor absoluto de las componentes de) los autovectores de una matriz hermítica a partir de sus autovalores y los autovalores de las submatrices que se obtienen eliminando una fila y una columna en dicha matriz. Un método que por su sencillez parece imposible que no fuera descubierto hace décadas. [PS 22 nov 2019] Ahora sabemos que se ha publicado varias veces desde 1934 [/PS].

El nuevo método es curioso pero poco práctico desde un punto de vista numérico. Le pasa lo mismo que a la regla de Cramer para calcular determinantes; siendo muy fácil de aprender y de usar con matrices de 2×2 y 3×3, su alto coste computacional hace que su aplicación numérica sea muy ineficiente para una matriz de n×n. La nueva fórmula calcula las n² componentes de los n autovectores de la matriz hermítica de n×n a partir de sus n autovalores y de los n (n−1) autovalores de las n submatrices de (n−1)×(n−1) que se obtienen eliminando cada fila y su correspondiente columna en dicha matriz; por tanto, solo es útil para matrices de 2×2 y 3×3 (estas últimas son las que aparecen en la física de la oscilación de los neutrinos). Aunque este resultado sea curioso pero inútil, ello no resta un ápice de su belleza matemática; ni tampoco de la sorpresa que supone su descubrimiento.

Las demostraciones de Tao de la nueva fórmula son tan sencillas que seguro que acabarán apareciendo en los futuros libros de texto. Para un físico interesado en la física de los neutrinos lo más relevante es que la nueva fórmula es muy fácil de recordar. El artículo de los físicos es Peter B. Denton, Stephen J. Parke, Xining Zhang, «Eigenvalues: the Rosetta Stone for Neutrino Oscillations in Matter,» arXiv:1907.02534 [hep-ph] (04 Jul 2019); las demostraciones matemáticas aparecen en Peter B. Denton, Stephen J. Parke, Terence Tao, Xining Zhang, «Eigenvectors from Eigenvalues,» arXiv:1908.03795 [math.RA] (10 Aug 2019); también tienes las tres demostraciones en el blog de Terence Tao, «Eigenvectors from eigenvalues,» What’s new, 13 Aug 2019; cuando lo leí entonces no le presté mayor atención pues no tienen interés desde el punto de vista numérico (se conocen buenos métodos numéricos para obtener los autovalores y los autovectores de matrices).

Como todo el mundo, me he enterado gracias al gran eco mediático de Maciej Rebisz, «Neutrinos Lead to Unexpected Discovery in Basic Math,» Quanta Magazine, 13 Nov 2019. Te recomiendo de forma encarecida su lectura, pues describe en detalle la historia de este descubrimiento físico-matemático; una historieta apasionante donde las haya.

[PS 15 nov 2019] En los comentarios del blog de Tao han aparecido varias voces que reclaman que la nueva fórmula ya fue publicada en el pasado, así que no sería un nuevo descubrimiento, sino un nuevo redescubrimiento. Manjari Narayan @NeuroStats observó dicha fórmula (con otra notación) en el artículo de Piet Van Mieghem, «Graph eigenvectors, fundamental weights and centrality metrics for nodes in networks,» arXiv:1401.4580 [math.SP] (18 Jan 2014); por cierto, este artículo no ha sido publicado en ninguna revista. Allí se indica que ya fue publicada con anterioridad varias veces, siendo la más antigua A. K. Mukherjee, K. K. Datta, «Two new graph-theoretical methods for generation of eigenvectors of chemical graphs,» Journal of Chemical Sciences (Proceedings of the Indian Academy of Sciences), 101: 499-517 (1989), doi: https://doi.org/10.1007/BF02880817, y la siguiente Elias M.Hagos, «Some results on graph spectra,» Linear Algebra and its Applications 356: 103-111 (2002), doi: https://doi.org/10.1016/S0024-3795(02)00324-5. Y quizás se haya publicado incluso antes, pues es una fórmula muy sencilla. [/PS]

[PS 22 nov 2019] La fuente más antigua de la fórmula es de 1934 (Karl Löwner, “Über monotone Matrixfunktionen,” Math. Z. 38: 177-216 (1934), MR1545446). Terry Tao ha decidido cambiar su artículo para incluir una discusión histórica de esta fórmula. Habrá que estar al tanto cuando se publique. [/PS]

[PS 04 dic 2019] Recomiendo la lectura de la nueva versión del artículo de Tao con la historia y aplicaciones de la fórmula:  Peter B. Denton, Stephen J. Parke, Terence Tao, Xining Zhang, «Eigenvectors from Eigenvalues: a survey of a basic identity in linear algebra,» arXiv:1908.03795 [math.RA] (02 Dec 2019). [/PS]



16 Comentarios

  1. Y esto ha de pasara mas veces por que hace tiempo que los planes de estudio universitarios solo quieren meter mas y mas materia aunque no se comprenda lo que se hace, solo para aprobar las pruebas. Ademas esto supone un desperdicio de la gran capacidad del cerebro para integrar y deducir por intuicion.

    1. Pues será en física y en matemáticas.

      Porque en ingeniería con la llegada de los grados ha pasado lo contrario. Hay menos materia, más fácil y te tratan como si tuvieras 15 años.

  2. Se que te gusta corregir los pequeños errorcitos. Así que en el último párrafo, segunda oración: donde dice tu iría su. Excelente divulgación de alto nivel, lo cual agradecen las mentes curiosas. Gracias =)

  3. Por lo que veo, sólo se obtiene el módulo (o el cuadrado) de los componentes del autovector, no el autovector. Así a bote pronto no me parece evidente cómo obtener el componente a partir del módulo imponiendo condiciones de ortogonalidad.

    1. Max, en su aplicación a la física de los neutrinos el signo es irrevelante; en cualquier caso, siempre es muy fácil obtenerlo una vez se conocen los módulos de las componentes del autovector. Piensa un poco, es muy fácil, ¿cómo lo determinarías?

        1. Max Madera:

          Francis tiene razón, el caso general (NxN) no es difícil. Piense en un número complejo, si se le indica el módulo de alguno, entonces prácticamente le han dado el número (salvo por un detalle que no altera las ecuaciones que definen los autovalores). Para el caso general (un vector de números complejos) repite el razonamiento componente a componente.

          Si quiere saber la respuesta está en la parte de discusión de la página dos del artículo en cuestión: https://arxiv.org/abs/1908.03795

          Saludos.

          1. No es tan sencillo calcular el autovector a partir de los módulos de sus coordenadas, el caso N=1 es trivial pero N>1 no lo es tanto porque la fase entre las componentes no se sigue de la fórmula. Supongo que el caso fácil es el caso real (matrices simétricas) donde las coordenadas serían determinadas salvo signo.

            De hecho, en la seccion de «Discussion» del artículo apuntan a utilizar la fórmula para el caso $v_{i,j}\overline{v_{i,k}}$ precisamente para calcular las fases y ya se advierte que la fórmula no es tan bonita.

          2. Carlos, para matrices 2×2 y 3×3 es muy sencillo. Para cada autovector (raíz cuadrada del resultado de la fórmula) tienes dos posibles asignaciones de signo; puedes eligir la primera componente como positiva, así para matrices de 2×2 solo tienes dos opciones de signo para la segunda componente y para matrices de 3×3 solo tiene cuatro opciones para los otras dos componentes; aplicando la definición de autovalor/autovector solo tienes que realizar dos (2×2) o cuatro (3×3) multiplicaciones de matriz por vector para obtener los signos. En Matlab es un simple bucle for de una sola línea. ¿No es sencillo?

            Incluyo el código de Matlab para la fórmula aplicada a una matriz de 3×3

            %% symmetrical matrix with real eigenvalues and eigenvectors
            A = rand(3,3); A = A+A’; [V,D]=eig(A); lam = diag(D);

            %% required eigenvalues to apply the formula
            A1=A([2 3],[2 3]); lam1=eig(A1);
            A2=A([1 3],[1 3]); lam2=eig(A2);
            A3=A([1 2],[1 2]); lam3=eig(A3);

            %% squared eigenvectors obtained by the formula
            v(:,1) = [
            (lam(1)-lam1(1))*(lam(1)-lam1(2))/((lam(1)-lam(2))*(lam(1)-lam(3))),
            (lam(1)-lam2(1))*(lam(1)-lam2(2))/((lam(1)-lam(2))*(lam(1)-lam(3))),
            (lam(1)-lam3(1))*(lam(1)-lam3(2))/((lam(1)-lam(2))*(lam(1)-lam(3)))];

            v(:,2) = [
            (lam(2)-lam1(1))*(lam(2)-lam1(2))/((lam(2)-lam(1))*(lam(2)-lam(3))),
            (lam(2)-lam2(1))*(lam(2)-lam2(2))/((lam(2)-lam(1))*(lam(2)-lam(3))),
            (lam(2)-lam3(1))*(lam(2)-lam3(2))/((lam(2)-lam(1))*(lam(2)-lam(3)))];

            v(:,3) = [
            (lam(3)-lam1(1))*(lam(3)-lam1(2))/((lam(3)-lam(1))*(lam(3)-lam(2))),
            (lam(3)-lam2(1))*(lam(3)-lam2(2))/((lam(3)-lam(1))*(lam(3)-lam(2))),
            (lam(3)-lam3(1))*(lam(3)-lam3(2))/((lam(3)-lam(1))*(lam(3)-lam(2)))];

            % root-squared signed eigenvectors by brute force calculation
            for jj=1:3, for ii=0:3,
            vv= (-1).^([0 de2bi(ii,2)]’).*sqrt(v(:,jj));
            if ( max( abs( (A*vv-lam(jj)*vv ))) < 10*eps ), v(:,jj)=vv; break; end,
            end, end

            % check of the result
            v, % eigenvectors with sign obtained by the formula
            V, % eigenvectors obtained by eig()

  4. Dice usted que las matrices 2×2 y 3×3 «son las que aparecen en la física de la oscilación de los neutrinos». Yo no sé nada de neutrinos pero me imaginaba que estos señores estarían tratando con matrices muy grandes (y de ahí su necesidad de encontrar nuevas herramientas para manejarlas). No sé si el tamaño 3×3 está asociado a las tres dimensiones del espacio ordinario, pero yo suponía el tamaño de esas matrices asociado a otras magnitudes físicas menos familiares (algo así como posibles estados cuánticos de los neutrinos) cuyo número pueda ser variable y posiblemente muy grande (por ejemplo, si tuviera que ver con el número de partículas del sistema de que se esté estudiando, ya sean los propios neutrinos o las partículas con las que podría interactuar). Como digo, no tengo ni idea de física de neutrinos (ni de física cuántica en general) y por tanto estoy especulando, pero, ¿hasta qué punto podemos estar seguros de que las matrices con las que trabajan estos señores son 3×3?

    Por otra parte, si sus matrices son tan pequeñas, ¿por qué necesitan nuevas herramientas para manejarlas?

    Por último, dice usted que este nuevo método sólo es útil para tamaños pequeños. ¿Podría desarrollarlo un poco más? ¿Se refiere a la imposibilidad de encontrar soluciones analíticas (por radicales) para grado mayor que 4? ¿Ha considerado la posibilidad de que estén utilizando métodos numéricos? Y en tal caso, ¿qué sería más eficiente computacionalmente, factorizar el polinomio característico o resolver el sistema de ecuaciones para obtener cada autovector?

    1. M.A., dice «no tengo ni idea de física de neutrinos … ¿hasta qué punto … son 3×3?» Hemos observado tres tipos de neutrinos, luego la física de la oscilación de los tres tipos de neutrinos se describe con una matriz de 3×3 (https://en.wikipedia.org/wiki/Neutrino_oscillation#Pontecorvo%E2%80%93Maki%E2%80%93Nakagawa%E2%80%93Sakata_matrix).

      «¿Por qué necesitan nuevas herramientas para manejarlas?» El nuevo artículo físico es una curiosidad. Describe un nuevo método para calcular los autovectores que es más fácil de recordar que el método convencional. Esa es su única utilidad práctica.

      «Nuevo método sólo es útil para tamaños pequeños. ¿Podría desarrollarlo un poco más?» No sé si conoces la regla de Cramer, pero ¿la has usado alguna vez para una matriz de 5×5? ¿Por qué no? Por su alto coste computacional. Lo mismo pasa con el nuevo método, que es una «variante» de la regla de Cramer (https://en.wikipedia.org/wiki/Cramer%27s_rule).

      «¿Se refiere a la imposibilidad …?» No, si me refiriera a eso lo habría dicho. No tiene nada que ver.

      «¿…métodos numéricos?» No, no lo están usando. ¿Te has molestado en leer su artículo?

      «¿Qué sería más eficiente computacionalmente, factorizar el polinomio característico o resolver el sistema de ecuaciones para obtener cada autovector?» Ninguno de los dos métodos es bueno. El primero porque solo ofrece los autovalores, y se quieren calcular los autovectores. Y el segundo porque el sistema de ecuaciones no está determinado (tiene determinante cero).

      Como es obvio, y comento en mi pieza, existen buenos métodos numéricos para calcular autovalores y autovectores (https://en.wikipedia.org/wiki/Eigenvalue_algorithm#Iterative_algorithms). Si te interesan te recomiendo el libro de métodos numéricos de Mathews y Fink, o el libro de análisis numérico de Kincaid y Cheney (ambos en español). O cualquier libro de álgebra lineal numérica, hay cientos de libros. En la actualidad todo el mundo usa los códigos numéricos de la biblioteca LAPACK para calcular autovalores y autovectores por ordenador. Salvo para matrices de 2×2 y 3×3, para los que mucha gente sigue usando métodos «manuales» (de ahí que pueda ser útil un nuevo método fácil de recordar, aunque costoso de aplicar).

  5. «Unos físicos descubrieron una fórmula sorprendente» «Contactaron con el matemático más famoso, Terence Tao, para confirmar que era nueva y generalizable» «Las demostraciones de Tao de la nueva fórmula son tan sencillas que seguro que acabarán apareciendo en los futuros libros de texto. » 😬

  6. Hola Francis, te respondo por aquí porque no me deja responder el thread anterior.

    Para una matriz hermítica los autovalores son reales pero los autovectores son, en general, complejos (la matriz que diagonaliza es unitaria y la base ortonormal lo es en sentido hermítico). Por lo tanto, cada componente de cada autovector tiene a priori módulo y argumento no triviales. Con la fórmula del artículo solo se consigue determinar el módulo pero el argumento es desconocido. No es cierto que el módulo determine el valor de la componente «salvo signo» como dices, eso solo es cierto si el autovector es real, que sería el caso de un operador simétrico real (en mi comentario ya dije que este caso es trivial pues se reduce a comprobar una cantidad finita de casos como dices).

    Pero el caso hermítico sigo pensando que no es directo (voy ahorrarme la palabra sencillo que es un poco relativa). Es claro que multiplicando el autovector por um escalar (complejo) de módulo 1 podemos asumir que una de las coordenadas del autovector es real y positiva (y por lo tanto determinada por la fórmula). En el caso n=2 esa reducción da una fórmula para la fase entre las dos componentes muy sencilla y que no es difícil de generalizar a n arbitrario, el caso es que esa fórmula utiliza componentes de la matriz hermítica original y por lo tanto no es una fórmula que use únicamente autovalores de la matriz y submatrices de la misma. Esto se consigue siguiendo la receta que dan en la sección «Discussion» del artículo pero la fórmula es también complicada.

    Es en este sentido que digo que no me parece sencillo determinar los autovectores (complejos) solo sabiendo los módulos de las componentes; si he cometido algún error te ruego me lo hagas saber.

Deja un comentario