Algoritmos¶
Esta página describe los principales algoritmos numéricos que PDIndexer utiliza internamente. Es una versión migrada y reorganizada del PDF explicativo (PDIndexerAlgorithm.pdf) que solía incluirse con la distribución. El objetivo es transmitir qué se minimiza y cómo se resuelve más que un rigor matemático completo.
Se cubren tres temas:
- Refinamiento del parámetro de red — mínimos cuadrados lineales
- Ajuste de picos — mínimos cuadrados no lineales por el método de Marquardt, y las funciones de perfil
- Derivación del spline cúbico — curva de fondo
Para la teoría de las ecuaciones de estado (EOS), véase Ecuaciones de estado.
Refinamiento del parámetro de red¶
Mínimos cuadrados lineales generalizados¶
Dados \( n \) conjuntos de observaciones \( (X^1_1, X^2_1, \dots, X^m_1, Z_1),\ (X^1_2, X^2_2, \dots, X^m_2, Z_2),\ \dots,\ (X^1_n, X^2_n, \dots, X^m_n, Z_n) \), el ajuste de la ecuación de observación lineal
sobre los \( m \) parámetros \( (a^1, a^2, \dots, a^m) \) se consigue minimizando la suma de los cuadrados de los residuos. En forma matricial,
donde \( W \) es una matriz diagonal de pesos. Minimizando la suma ponderada de cuadrados
igualando a cero su derivada respecto de \( \mathbf{a} \),
se obtiene la solución
Ajuste del tensor métrico recíproco¶
Para el refinamiento del parámetro de red la ecuación de observación depende del sistema cristalino, pero en el caso más general (triclínico) la relación entre el espaciado interplanar \( d \) y los índices \( (h,k,l) \),
se trata como un modelo lineal:
donde \( a^*, b^*, \dots \) son los parámetros de red recíprocos. Resolviendo esto con los mínimos cuadrados lineales anteriores se obtienen las componentes del tensor métrico recíproco, de las cuales se derivan los parámetros de red.
Elección de los pesos¶
El peso depende del error. Suponiendo que el error reside únicamente en el ángulo de difracción \( 2\theta \), la respuesta de \( G = (1/d)^2 = 4\sin^2\theta/\lambda^2 \) frente a \( \theta \) es
de modo que un cambio \( \delta\theta \) desplaza \( (1/d)^2 \) en \( \dfrac{4\sin(2\theta)}{\lambda^2}\delta\theta \). Por lo tanto, \( 1/\sin^2(2\theta) \) (el inverso del error al cuadrado) es un peso apropiado para \( (1/d)^2 \):
Aquí \( 1/\sin^2(2\theta) \) representa solo la proporción de las inversas de las varianzas de los puntos, no su valor absoluto, y aun así se recupera el óptimo: en \( (X^{\mathsf{T}}W X)^{-1} X^{\mathsf{T}}W Y \) el factor \( W \) aparece dos veces, por lo que la escala absoluta se cancela.
Errores de los parámetros¶
Los errores (varianzas) de \( \mathbf{a} \) provienen de la diagonal de \( (X^{\mathsf{T}}W X)^{-1} \), pero como \( W \) se fijó solo hasta una proporción, la escala absoluta debe determinarse por separado. Usando la definición de varianza,
(\( N \): número de datos, \( P \): número de parámetros, \( \delta_i \): residuo del \( i \)-ésimo dato, \( s_i \): varianza del \( i \)-ésimo dato), la escala de la varianza se fija a partir de los parámetros obtenidos como
y su raíz cuadrada es el error. Este es el error de los parámetros de red recíprocos; convertirlo en el error de los parámetros de red requiere propagar el error más allá, lo cual es sencillo en principio.
Ajuste de picos¶
Método de Marquardt¶
PDIndexer ajusta los picos con el método de Marquardt (Levenberg–Marquardt), un esquema iterativo no lineal similar al método de Newton. Combina convergencia rápida con estabilidad y encuentra el óptimo con suficiente precisión.
Sea la función de ajuste \( F = F(a_1, a_2, \dots, a_m, X) \) y el residuo en los parámetros iniciales \( \mathbf{a}^0 \)
Se construyen la matriz \( m\times m \) \( \alpha \) y el vector \( m \)-dimensional \( \beta \) como sigue. Multiplicar solo la diagonal por \( (1+\lambda) \) es la idea clave del método de Marquardt, con \( \lambda \) controlando la estabilidad y la velocidad de convergencia:
Los parámetros se actualizan mediante
Se calcula el nuevo residuo \( R' \) y:
- si \( R' < R \), se acepta la actualización y se reduce \( \lambda \) (por un factor de 0.1–0.5);
- si \( R' > R \), se rechaza la actualización y se aumenta \( \lambda \) (por un factor de 2–10).
Se repite hasta que el cambio en \( R \) sea suficientemente pequeño. Cuando \( \lambda \to 0 \) el método se aproxima al método de Gauss–Newton, de convergencia cuadrática; para \( \lambda \) grande se aproxima al descenso más pronunciado a lo largo del gradiente del residuo \( \nabla R \). Alternando continuamente entre ambos mediante \( \lambda \) se logra una convergencia estable y rápida.
Funciones de perfil¶
PDIndexer ofrece la función Pseudo Voigt (una mezcla de gaussiana y lorentziana), la función Pearson VII (una función de densidad de probabilidad) y sus extensiones asimétricas Split Pseudo Voigt / Split Pearson VII. Por velocidad y estabilidad de convergencia, Symmetric Pseudo Voigt es la opción por defecto. Todas las funciones están normalizadas a área unidad.
Symmetric Pseudo Voigt
Split Pseudo Voigt (Toraya 1990, modificada)
Symmetric Pearson VII
Split Pearson VII (Toraya 1990, modificada)
Las dos primeras son simétricas respecto de \( x=0 \), mientras que las formas split cambian de forma según el signo de \( x \) para expresar asimetría (como una cola hacia ángulos bajos). En general, Pearson VII tiende a dar el mejor ajuste (residuo menor), mientras que Pseudo Voigt tiende a converger de forma más estable.
Símbolos¶
| Símbolo | Significado |
|---|---|
| \( H_k \) | anchura total a media altura (FWHM) |
| \( \pi \) | la constante del círculo |
| \( \eta \) (\( \eta_l, \eta_h \)) | razón de mezcla lorentziana/gaussiana (lado de ángulo bajo / ángulo alto para las formas split) |
| \( \Gamma \) | función gamma |
| \( R \) (\( R_l, R_h \)) | exponente de Pearson |
| \( A \) | parámetro de asimetría |
| \( Z \) | constante de normalización (\( \sqrt{\pi\ln 2} \)) |
Función de ajuste con fondo¶
En la práctica, la función de perfil \( f \) se extiende con un fondo lineal:
(\( I \): intensidad integrada, \( B_1, B_2 \): fondo lineal, \( \Theta \): centro del pico, \( \theta \): posición observada). Dentro de un rango dado, los parámetros se varían por el método de Marquardt de modo que \( R = \sum (Y - F)^2 \) se minimice.
Las derivadas parciales de cada función son complejas; el método de Marquardt utiliza estos gradientes analíticos. A continuación se dan expresiones representativas como referencia.
Derivadas parciales de Symmetric Pseudo Voigt
Escribiendo \( u = \dfrac{\theta-\Theta}{H_k} \),
Derivadas parciales de Pearson VII
Se omiten las derivadas simples respecto de la intensidad y el fondo (\( \partial F/\partial I,\ \partial F/\partial B_1,\ \partial F/\partial B_2 \)). El documento original denota el exponente de Pearson tanto por \( R \) como por \( m \) (la misma magnitud). Escribiendo \( u = \dfrac{\theta-\Theta}{H_k} \),
Derivación del spline cúbico¶
PDIndexer usa una curva spline cúbica para trazar el fondo. La forma verdadera del fondo no puede resolverse de manera exacta, pero el software detecta automáticamente las regiones sin picos y conecta los puntos detectados con un spline para formar la curva de fondo. Un spline aproxima los datos de forma uniforme, incluidas sus derivadas, y la aproximación mejora a medida que los puntos de datos se hacen más densos.
Dados \( n \) puntos \( (X_1,Y_1), (X_2,Y_2), \dots, (X_{n-1},Y_{n-1}), (X_n,Y_n) \), se busca una curva que sea cúbica en cada intervalo y se una suavemente de modo que el valor, la pendiente y la curvatura coincidan en cada punto (los dos intervalos extremos \( \{-\infty, X_1\} \) y \( \{X_n, \infty\} \) se toman lineales).
Sea la función en el intervalo \( \{X_{m-1}, X_m\} \)
Puntos interiores (\( 2 \le m \le n-1 \)). La continuidad del valor, la primera derivada y la segunda derivada da
— es decir, \( 4n-8 \) condiciones.
Inicio (\( m=1 \), el intervalo extremo izquierdo es lineal):
— 4 condiciones. El final (\( m=n \)) da igualmente
— otras 4 condiciones.
En total, \( 4n \) condiciones determinan \( 4n \) incógnitas, reduciendo el problema a un sistema de ecuaciones simultáneas. Escribiéndolo como una matriz e invirtiéndola se resuelve fácilmente.
Páginas relacionadas¶
- 6. Ajuste de picos de difracción — cómo usarlo en la práctica
- Ecuaciones de estado — teoría de EOS como las ecuaciones de Birch–Murnaghan y Mie–Grüneisen