¿Cuál es la fórmula para los polinomios de Legendre de EGM96 calculada en el programa F447.f?

El programa F447.f está diseñado para calcular la ondulación del geoide para EGM96. Estoy tratando de entender cómo logra este cálculo. me metí SUBROUTINE LEGFDN. Quiero entender cuál es la fórmula para RLNN(N)el vector. Hasta ahora estoy seguro solo para RLNN(1)=1.

Creo RLNN(2) = SITHET*DRTS(3) = sen(theta)*sqrt(3), pero no entiendo RLNN(3)y adelante.

El bucle de abajo se puede traducir

      DO 15  N1 = 3,M1
      N = N1-1
      N2 = 2*N
   15 RLNN(N1) = DRTS(N2+1)*DIRT(N2)*SITHET*RLNN(N1-1)

a algo como esto

      DO 15  N = 2,M
      RLNN(N+1)=SQRT(2*N+1)*1/SQRT(2*N)*SIN(THETA)*RLNN(N)
  15  END DO

donde M = 360 es el grado del polinomio y THETA (creo) es la latitud, ¿alguien reconoce esta fórmula de recurrencia como parte de algún polinomio de Legendre?

¡Estoy feliz de ver el código FORTRAN! Todos los GO TO, no tanto.
¿Son esos polinomios de Legendre no estándar?
ANTIGUO, TODO EN MAYÚSCULAS código FORTRAN. Es casi imposible de leer. LOS ABOGADOS UTILIZAN TODO EN MAYÚSCULAS PARA HACER ILEGIBLE LAS PARTES CLAVE DE UN DOCUMENTO LEGAL. No hay razón para emular tal comportamiento.
@DavidHammen, ¿qué son estos "caracteres en minúsculas" de los que hablas? :) live.staticflickr.com/195/522484762_a2cc146805_b.jpg

Respuestas (2)

Esta no es una recurrencia para un polinomio de Legendre. PAG norte ( m ) sino una Función de Legendre Asociada (ALF). Este 1 establece mucho más de lo que se necesita aquí.

Los ALF a menudo se denotan PAG norte , metro ( m ) en geofísica. El grado norte y el orden metro son enteros no negativos 0 , 1 , 2 , con 0 metro norte . Argumento m es el seno de la latitud (medido al norte o al sur desde el ecuador), o de manera equivalente, el coseno de la colatitud (medido hacia el sur desde el polo norte).

Los ALF aparecen como factores en fórmulas armónicas esféricas sólidas. Tales fórmulas se utilizan para representar un campo gravitacional. Los armónicos esféricos se clasifican en zonales, sectoriales o teselares según sean metro = 0 (zonal), metro = norte (sectorial), o 0 < metro < norte (tesero). Aplicando esas convenciones a los ALF, los zonales son los mismos que los polinomios de Legendre: PAG norte , 0 ( m ) = PAG norte ( m ) . Los sectoriales corresponden a PAG norte , norte ( m ) , mientras PAG norte , metro ( m ) , 0 < metro < norte corresponden a teseros.

Un ALF podría evaluar un valor numérico muy grande para grandes norte o metro . Los geofísicos a menudo introducen un factor de normalización que denoto norte norte , metro . su fórmula es

norte norte , metro = { ( 2 norte + 1 ) ( norte metro ) ! ( norte + metro ) ! , metro = 0 2 ( 2 norte + 1 ) ( norte metro ) ! ( norte + metro ) ! , metro > 0.
Un ALF "totalmente normalizado" usando norte norte , metro se indica mediante una barra encima de la PAG :
PAG ¯ norte , metro ( m ) = norte norte , metro PAG norte , metro ( m ) PAG norte , metro ( m ) = PAG ¯ norte , metro ( m ) / norte norte , metro .

Una recurrencia sectorial usando colatitud θ es

PAG norte , norte ( porque θ ) = ( 2 norte 1 ) pecado θ PAG norte 1 , norte 1 ( porque θ )
empezando con PAG 0 , 0 = 1 por definición y PAG 1 , 1 = pecado θ por la recurrencia. (Tenga en cuenta que el argumento ALF es porque θ pero eso pecado θ aparece como un factor en el RHS.) Esta recurrencia se puede expresar utilizando ALF completamente normalizados sustituyendo PAG norte , norte ( m ) = PAG ¯ norte , norte ( m ) / norte norte , norte . Asumir norte > 1 :
PAG ¯ norte , norte ( porque θ ) norte norte , norte = ( 2 norte 1 ) pecado θ PAG ¯ norte 1 , norte 1 ( porque θ ) norte norte 1 , norte 1 PAG ¯ norte , norte ( porque θ ) 2 ( 2 norte + 1 ) 0 ! ( 2 norte ) ! = ( 2 norte 1 ) pecado θ PAG ¯ norte 1 , norte 1 ( porque θ ) 2 ( 2 norte 1 ) 0 ! ( 2 norte 2 ) ! PAG ¯ norte , norte ( porque θ ) = 2 ( 2 norte + 1 ) ( 2 norte ) ( 2 norte 1 ) ( 2 norte 2 ) ! ( 2 norte 1 ) ( 2 norte 2 ) ! 2 ( 2 norte 1 ) pecado θ PAG ¯ norte 1 , norte 1 ( porque θ ) = 2 norte + 1 2 norte pecado θ PAG ¯ norte 1 , norte 1 ( porque θ ) .
Esto corresponde al fragmento de código del OP, con la convención de que PAG ¯ norte , norte se almacena en RLNN(N+1).

¡Respuesta ejemplar! Es genial cuando alguien se toma el tiempo para analizar algunas matemáticas complicadas y llevarlas a una resolución exitosa, y enseñar algo útil en el proceso. +1¿ Alguna idea sobre cómo puedo verificar mi campo de gravedad reconstruido de Ceres a partir de armónicos esféricos? Ellos serian
Entonces, ¿los ALF son formas simplificadas de polinomios de Legendre y se pueden usar en lugar de ellos en el marco apropiado?
No diría que los ALF están simplificados; en todo caso, son más complicados porque son más generales. Los polinomios de Legendre (el caso m=0 de ALF) están asociados solo con términos zonales. Los ALF están asociados a términos sectoriales y tesérales. Los tres conjuntos son necesarios para representar un campo gravitacional usando armónicos esféricos sólidos.
@uhoh Estoy de acuerdo con la respuesta de ChrisR a su pregunta vinculada : la validación es difícil sin los resultados de otra persona. Lo que pude mostrar son recurrencias para Pnm, completamente normalizadas y no. ¿Eso ayudaría?
@BobWerner Hmm... En ese momento, el único "resultado de otra persona" que encontré fue el mapa de anomalías de Bouguer que incluí en la pregunta. Que mis mapas truncados en n=4 y 5 no se parezcan ni un poco puede significar simplemente que no sabía lo que estaba haciendo. ¿Por qué no le echo otro vistazo a cada 1) mi pregunta 2) la literatura y 3) la respuesta de ChrisR primero. Mientras tanto, me pregunto si las "recurrencias para Pnm, completamente normalizadas y no" podrían ser útiles para ¿ Cómo se normalizan los coeficientes en el modelo EGM96?
@BobWerner está bien, al leer sobre la anomalía de Bouguer , no hay razón para esperar que sean similares, y probablemente sea necesaria una superficie de referencia para tratar de emparejarlos. Será mejor que haga un poco más de "tarea" sobre esto.

(Esta respuesta continúa la anterior).

una mesa de PAG norte , metro ( m ) los valores se pueden visualizar como una matriz cuadrada. Las filas hacia abajo de la página están indexadas por grado norte , y columnas a la derecha por orden metro .

Debido a las matemáticas subyacentes, lo único sensato PAG norte , metro ( m ) valores ocurren para 0 metro norte . El efecto es que la mesa es triangular inferior en lugar de cuadrada; PAG norte , metro ( m ) no existen por encima de la metro = norte diagonal.

Valores a lo largo del metro = norte diagonal corresponden a los términos sectoriales descritos en la respuesta anterior. Una recurrencia simple proporciona el valor de PAG norte , norte ( m ) del valor anterior PAG norte 1 , norte 1 ( m ) .

Una recurrencia diferente proporciona valores en una columna. Esta recurrencia "vertical" utiliza los dos valores inmediatamente anteriores en la parte superior de la columna. Por ejemplo en la columna metro = 3 , El valor de PAG 6 , 3 ( m ) se puede calcular a partir de PAG 5 , 3 ( m ) y PAG 4 , 3 ( m ) .

La recurrencia vertical usando colatitud θ es:

( norte metro ) PAG norte , metro ( porque θ ) = ( 2 norte 1 ) porque θ PAG norte 1 , metro ( pecado θ ) ( norte metro 1 ) PAG norte 2 , metro ( porque θ )
Esta recurrencia utilizando no normalizados PAG norte , metro ( porque θ ) se puede convertir a completamente normalizado PAG ¯ norte , metro ( porque θ ) de la misma manera que se usó anteriormente para convertir la recurrencia sectorial: PAG ¯ norte , metro ( porque θ ) / norte norte , metro es sustituido por PAG norte , metro ( porque θ ) .
PAG ¯ norte , metro ( porque θ ) = norte norte , metro norte metro [ 2 norte 1 norte norte 1 , metro porque θ PAG ¯ norte 1 , metro ( porque θ ) norte + metro 1 norte norte 2 , metro PAG ¯ norte 2 , metro ( porque θ ) ] = ( 2 d 0 , metro ) ( 2 norte + 1 ) ( norte metro ) ! ( norte + metro ) ! norte metro [ 2 norte 1 ( 2 d 0 , metro ) ( 2 norte 1 ) ( norte metro 1 ) ! ( norte + metro 1 ) ! porque θ PAG ¯ norte 1 , metro ( porque θ ) norte + metro 1 ( 2 d 0 , metro ) ( 2 norte 3 ) ( norte metro 2 ) ! ( norte + metro 2 ) ! PAG ¯ norte 2 , metro ( porque θ ) ] = ( 2 norte + 1 ) ( norte metro ) ( norte metro 1 ) ( norte metro 2 ) ! ( norte + metro ) ( norte + metro 1 ) ( norte + metro 2 ) ! norte metro [ 2 norte 1 ( 2 norte 1 ) ( norte metro 1 ) ( norte metro 2 ) ! ( norte + metro 1 ) ( norte + metro 2 ) ! porque θ PAG ¯ norte 1 , metro ( porque θ ) norte + metro 1 ( 2 norte 3 ) ( norte metro 2 ) ! ( norte + metro 2 ) ! PAG ¯ norte 2 , metro ( porque θ ) ] = ( 2 norte + 1 ) ( norte metro ) ( norte metro 1 ) ( norte + metro ) ( norte + metro 1 ) norte metro [ 2 norte 1 ( 2 norte 1 ) ( norte metro 1 ) ( norte + metro 1 ) porque θ PAG ¯ norte 1 , metro ( porque θ ) norte + metro 1 2 norte 3 PAG ¯ norte 2 , metro ( porque θ ) ] = 2 norte + 1 ( norte metro ) ( norte + metro ) norte metro 1 norte + metro 1 [ ( 2 norte 1 ) norte + metro 1 norte metro 1 porque θ PAG ¯ norte 1 , metro ( porque θ ) norte + metro 1 2 norte 3 PAG ¯ norte 2 , metro ( porque θ ) ] = 2 norte + 1 ( norte metro ) ( norte + metro ) [ 2 norte 1 porque θ PAG ¯ norte 1 , metro ( porque θ ) ( norte metro 1 ) ( norte + metro 1 ) 2 norte 3 PAG ¯ norte 2 , metro ( porque θ ) ] .
Esta es la recurrencia vertical para completamente normalizado PAG ¯ norte , metro ( porque θ ) .

Una arruga es que al calcular el término subdiagonal PAG ¯ norte + 1 , norte ( porque θ ) , solo hay un término precedente (la diagonal PAG ¯ norte , norte ( porque θ ) ). El segundo término anterior (encima de la diagonal) no existe. En este caso especial, solo se necesita el primer término entre paréntesis.

programa F447.f

La subrutina LEGFDN guarda valores de i en matriz DRTS(i) y el recíproco 1 / i en SUCIEDAD(i). El código de la subrutina

      RLEG(N1) = DRTS(N2+1)*DIRT(N+M)*DIRT(N-M)*(DRTS(N2-1)*COTHET*  
     2 RLEG(N1-1)-DRTS(N+M-1)*DRTS(N-M-1)*DIRT(N2-3)*RLEG(N1-2))

cerca de la parte inferior de DO-loop 30 es equivalente a

      RLEG(N1) = SQRT(2*N+1)/SQRT(N+M)/SQRT(N-M)*
     1 ( SQRT(2*N-1)*COS(THETA)*RLEG(N1-1)
     2 - SQRT(N+M-1)*SQRT(N-M-1)/SQRT(2*N-3)*RLEG(N1-2)
     3 )

Esto corresponde exactamente a la recurrencia vertical. Evidentemente PAG ¯ norte , metro ( porque θ ) se almacena en una matriz unidimensional RLEG(n). (No he estudiado el código para entender cómo maneja las distintas columnas).

Una conclusión es que la fórmula de normalización utilizada en el programa F447.f es la norte norte , metro fórmula dada en la respuesta anterior.