Algoritmos¶
Esta página descreve os principais algoritmos numéricos usados internamente pelo PDIndexer. É uma versão migrada e reorganizada do PDF explicativo (PDIndexerAlgorithm.pdf) que costumava ser distribuído junto com o programa. O objetivo é transmitir o que é minimizado e como é resolvido, em vez de todo o rigor matemático.
Três tópicos são abordados:
- Refinamento do parâmetro de rede — mínimos quadrados lineares
- Ajuste de picos — mínimos quadrados não lineares pelo método de Marquardt e as funções de perfil
- Derivação da spline cúbica — curva de fundo
Para a teoria das equações de estado (EOS), consulte Equações de estado.
Refinamento do parâmetro de rede¶
Mínimos quadrados lineares generalizados¶
Dados \( n \) conjuntos de observações \( (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) \), o ajuste da equação de observação linear
sobre os \( m \) parâmetros \( (a^1, a^2, \dots, a^m) \) é obtido minimizando a soma dos quadrados dos resíduos. Em forma matricial,
onde \( W \) é uma matriz diagonal de pesos. Minimizar a soma ponderada dos quadrados
igualando a zero sua derivada em relação a \( \mathbf{a} \),
fornece a solução
Ajuste do tensor métrico recíproco¶
No refinamento do parâmetro de rede, a equação de observação depende do sistema cristalino, mas no caso mais geral (triclínico) a relação entre o espaçamento interplanar \( d \) e os índices \( (h,k,l) \),
é tratada como um modelo linear:
onde \( a^*, b^*, \dots \) são os parâmetros de rede recíprocos. Resolver isso com os mínimos quadrados lineares acima fornece as componentes do tensor métrico recíproco, a partir das quais os parâmetros de rede seguem.
Escolha dos pesos¶
O peso depende do erro. Supondo que o erro esteja apenas no ângulo de difração \( 2\theta \), a resposta de \( G = (1/d)^2 = 4\sin^2\theta/\lambda^2 \) a \( \theta \) é
de modo que uma variação \( \delta\theta \) desloca \( (1/d)^2 \) em \( \dfrac{4\sin(2\theta)}{\lambda^2}\delta\theta \). Portanto \( 1/\sin^2(2\theta) \) (o inverso do erro ao quadrado) é um peso apropriado para \( (1/d)^2 \):
Aqui \( 1/\sin^2(2\theta) \) representa apenas a razão entre os inversos das variâncias dos pontos, não seu valor absoluto, e mesmo assim o ótimo é recuperado: em \( (X^{\mathsf{T}}W X)^{-1} X^{\mathsf{T}}W Y \) o fator \( W \) aparece duas vezes, de modo que a escala absoluta se cancela.
Erros dos parâmetros¶
Os erros (variâncias) de \( \mathbf{a} \) vêm da diagonal de \( (X^{\mathsf{T}}W X)^{-1} \), mas como \( W \) foi fixado apenas até uma razão, a escala absoluta deve ser determinada separadamente. Usando a definição de variância,
(\( N \): número de dados, \( P \): número de parâmetros, \( \delta_i \): resíduo do \( i \)-ésimo dado, \( s_i \): variância do \( i \)-ésimo dado), a escala da variância é fixada a partir dos parâmetros obtidos como
e sua raiz quadrada é o erro. Este é o erro dos parâmetros de rede recíprocos; convertê-lo no erro dos parâmetros de rede requer propagar o erro adicionalmente, o que em princípio é simples.
Ajuste de picos¶
Método de Marquardt¶
O PDIndexer ajusta os picos com o método de Marquardt (Levenberg–Marquardt), um esquema iterativo não linear semelhante ao método de Newton. Ele combina convergência rápida com estabilidade e encontra o ótimo com precisão suficiente.
Seja a função de ajuste \( F = F(a_1, a_2, \dots, a_m, X) \) e o resíduo nos parâmetros iniciais \( \mathbf{a}^0 \)
Construa a matriz \( m\times m \) \( \alpha \) e o vetor \( m \)-dimensional \( \beta \) da seguinte forma. Multiplicar apenas a diagonal por \( (1+\lambda) \) é a ideia central do método de Marquardt, com \( \lambda \) controlando a estabilidade e a velocidade de convergência:
Os parâmetros são atualizados por
Calcule o novo resíduo \( R' \) e:
- se \( R' < R \), aceite a atualização e reduza \( \lambda \) (por um fator de 0,1–0,5);
- se \( R' > R \), rejeite a atualização e aumente \( \lambda \) (por um fator de 2–10).
Repita até que a variação de \( R \) seja suficientemente pequena. Quando \( \lambda \to 0 \) o método se aproxima do método de Gauss–Newton, com convergência quadrática; para \( \lambda \) grande ele se aproxima da descida mais íngreme ao longo do gradiente do resíduo \( \nabla R \). Alternar continuamente entre os dois via \( \lambda \) produz convergência estável e rápida.
Funções de perfil¶
O PDIndexer oferece a função Pseudo Voigt (uma mistura de Gaussiana e Lorentziana), a função Pearson VII (uma função de densidade de probabilidade) e suas extensões assimétricas Split Pseudo Voigt / Split Pearson VII. Por velocidade e estabilidade de convergência, a Symmetric Pseudo Voigt é o padrão. Todas as funções são normalizadas para área unitária.
Symmetric Pseudo Voigt
Split Pseudo Voigt (Toraya 1990, modificada)
Symmetric Pearson VII
Split Pearson VII (Toraya 1990, modificada)
As duas primeiras são simétricas em torno de \( x=0 \), enquanto as formas split mudam de forma dependendo do sinal de \( x \) para expressar a assimetria (como uma cauda no lado de baixo ângulo). Em geral, a Pearson VII tende a dar o melhor ajuste (resíduo menor), enquanto a Pseudo Voigt tende a convergir de forma mais estável.
Símbolos¶
| Símbolo | Significado |
|---|---|
| \( H_k \) | largura total à meia altura (FWHM) |
| \( \pi \) | a constante do círculo |
| \( \eta \) (\( \eta_l, \eta_h \)) | razão de mistura Lorentziana/Gaussiana (lado de baixo ângulo / alto ângulo para as formas split) |
| \( \Gamma \) | função gama |
| \( R \) (\( R_l, R_h \)) | expoente de Pearson |
| \( A \) | parâmetro de assimetria |
| \( Z \) | constante de normalização (\( \sqrt{\pi\ln 2} \)) |
Função de ajuste com fundo¶
Na prática, a função de perfil \( f \) é estendida com um fundo linear:
(\( I \): intensidade integrada, \( B_1, B_2 \): fundo linear, \( \Theta \): centro do pico, \( \theta \): posição observada). Dentro de um intervalo dado, os parâmetros são variados pelo método de Marquardt de modo que \( R = \sum (Y - F)^2 \) seja minimizado.
As derivadas parciais de cada função são complexas; o método de Marquardt usa esses gradientes analíticos. Expressões representativas são dadas a seguir para referência.
Derivadas parciais da Symmetric Pseudo Voigt
Escrevendo \( u = \dfrac{\theta-\Theta}{H_k} \),
Derivadas parciais da Pearson VII
As derivadas simples em relação à intensidade e ao fundo (\( \partial F/\partial I,\ \partial F/\partial B_1,\ \partial F/\partial B_2 \)) são omitidas. O documento original denota o expoente de Pearson tanto por \( R \) quanto por \( m \) (a mesma grandeza). Escrevendo \( u = \dfrac{\theta-\Theta}{H_k} \),
Derivação da spline cúbica¶
O PDIndexer usa uma curva spline cúbica para traçar o fundo. A forma verdadeira do fundo não pode ser resolvida exatamente, mas o programa detecta automaticamente as regiões sem pico e conecta os pontos detectados com uma spline para formar a curva de fundo. Uma spline aproxima os dados de forma uniforme, incluindo suas derivadas, e a aproximação melhora à medida que os pontos de dados são tornados mais densos.
Dados \( n \) pontos \( (X_1,Y_1), (X_2,Y_2), \dots, (X_{n-1},Y_{n-1}), (X_n,Y_n) \), procuramos uma curva que seja cúbica em cada intervalo e se una suavemente de modo que valor, inclinação e curvatura coincidam em cada ponto (os dois intervalos das extremidades \( \{-\infty, X_1\} \) e \( \{X_n, \infty\} \) são considerados lineares).
Seja a função no intervalo \( \{X_{m-1}, X_m\} \)
Pontos interiores (\( 2 \le m \le n-1 \)). A continuidade de valor, primeira derivada e segunda derivada fornece
— ou seja, \( 4n-8 \) condições.
Início (\( m=1 \), o intervalo da extremidade esquerda é linear):
— 4 condições. O fim (\( m=n \)) fornece da mesma forma
— outras 4 condições.
No total, \( 4n \) condições determinam \( 4n \) incógnitas, reduzindo o problema a um sistema de equações simultâneas. Escrevê-lo como uma matriz e invertê-la resolve o problema facilmente.
Páginas relacionadas¶
- 6. Ajuste de picos de difração — como usá-lo na prática
- Equações de estado — teoria de EOS como as equações de Birch–Murnaghan e Mie–Grüneisen