Início Exemplos Capturas de ecrã Manual do utilizador Logótipo Bluesky YouTube
OghmaNano Simular células solares orgânicas/Perovskita, OFETs e OLEDs DESCARREGAR

Técnicas avançadas de ajuste

1. Escolhendo o minimizador correto

OghmaNano fitting window showing the Minimizer tab with options for fitting variables, duplicate variables, fit rules, and minimizer selection (Nelder–Mead highlighted).
A aba Minimizer da janela de ajuste, onde você pode selecionar o algoritmo de otimização (por exemplo, Nelder–Mead) e configurar variáveis, regras de duplicação e restrições de ajuste.

A faixa Minimizer é onde você escolhe e configura o algoritmo que conduz o processo de ajuste. Selecionar o minimizador correto pode fazer a diferença entre uma convergência rápida e robusta e um ajuste lento ou instável. O OghmaNano fornece vários algoritmos bem estabelecidos, cada um com diferentes pontos fortes, que podem ser selecionados no menu suspenso Fitting method.

De forma geral, os algoritmos de ajuste se enquadram em duas categorias. A primeira são os métodos descendentes ou baseados em gradiente, que tentam “rolar uma bola morro abaixo” até alcançar o erro mínimo. Alguns deles exigem cálculos explícitos de gradiente, que podem ser caros e frágeis para modelos complexos; outros são livres de derivadas e normalmente mais robustos. A segunda categoria são os métodos estatísticos, que não apenas procuram o melhor ajuste mas também fornecem uma distribuição de probabilidade que indica a confiança e a unicidade da solução. Esses métodos são mais exigentes computacionalmente, mas podem fornecer insights mais profundos sobre a incerteza dos parâmetros.

Método Descendente Gradiente Estatístico Comentário
Nelder-Mead Robusto, lento, confiável
Newton Frágil, às vezes rápido
Thermal Annealing Surpreendentemente bom
MCMC ?
HMC ?

Nelder–Mead (Simplex descendente)

O algoritmo simplex de Nelder–Mead é o método de ajuste mais amplamente utilizado no OghmaNano — na verdade, todos os artigos publicados até 2024 o utilizaram. Uma introdução geral ao método pode ser encontrada aqui: https://en.wikipedia.org/wiki/Nelder%E2%80%93Mead_method . Na prática, esse minimizador é robusto e não requer gradientes, tornando-o adequado para problemas complexos. Suas principais opções de configuração são:

A principal vantagem do Nelder–Mead é sua simplicidade e robustez. Conceitualmente, ele “rola uma bola morro abaixo” em direção à superfície de erro mínimo sem exigir cálculos de gradiente, o que é particularmente valioso para modelos ruidosos ou descontínuos.

💡 Dicas práticas para usar Nelder–Mead

Recozimento térmico

O recozimento térmico é um método de otimização estocástico inspirado no processo físico de resfriamento de um material de alta temperatura para baixa temperatura. No OghmaNano, esse algoritmo explora o espaço de parâmetros definido pelos limites de variáveis que você especifica. Definir esses limites corretamente é essencial — o minimizador não buscará além deles.

Na prática, o recozimento térmico frequentemente apresenta desempenho surpreendentemente bom e pode ser mais rápido que o Nelder–Mead para encontrar uma solução razoável. No entanto, os ajustes finais às vezes são menos precisos ou “refinados”, e ainda pode ser necessário um refinamento adicional com Nelder–Mead. O recozimento térmico é particularmente útil para escapar de mínimos locais e realizar uma exploração global do espaço de parâmetros.

💡 Dicas para usar recozimento térmico

Newton

O método de Newton está incluído no OghmaNano por completude, mas raramente é a melhor escolha para a maioria dos problemas de ajuste. Como um minimizador baseado em gradiente, ele exige que derivadas sejam calculadas a cada passo. Embora isso possa ocasionalmente torná-lo mais rápido que Nelder–Mead para certos problemas suaves e bem comportados, isso também torna o algoritmo frágil: pequenos erros numéricos na avaliação das derivadas podem fazer o ajuste divergir ou travar.

Na prática, o método de Newton é altamente sensível ao palpite inicial e à escala das variáveis. A menos que o problema seja muito simples e bem condicionado, a convergência frequentemente é ruim. Por esses motivos, em geral ele não é recomendado como método principal, mas pode ser útil como ferramenta diagnóstica ou para experimentação em casos controlados.

💡 Dicas para usar o método de Newton

Monte Carlo via cadeia de Markov (MCMC)

Monte Carlo via cadeia de Markov (MCMC) é um método estatístico de ajuste que amostra o espaço de parâmetros aleatoriamente, mas de uma forma que constrói a distribuição de probabilidade correta ao longo do tempo. Diferentemente de Nelder–Mead ou Newton, que retornam um único conjunto de parâmetros de “melhor ajuste”, o MCMC produz uma distribuição de soluções que mostra quão prováveis diferentes valores de parâmetros são. Isso o torna particularmente poderoso para quantificar incertezas e identificar correlações entre variáveis. No OghmaNano, o suporte está implementado, mas não foi testado de forma robusta.

Monte Carlo Hamiltoniano (HMC)

Monte Carlo Hamiltoniano (HMC) estende a ideia do MCMC usando informação de gradiente para propor saltos mais eficientes através do espaço de parâmetros. Em vez de se mover aleatoriamente, o HMC simula o “movimento” de uma partícula pela paisagem de verossimilhança, guiada por gradientes, o que pode melhorar drasticamente a eficiência de amostragem em problemas de alta dimensionalidade. Como o MCMC, o HMC gera uma distribuição de probabilidade sobre os parâmetros ajustados em vez de uma única solução. No OghmaNano, o suporte está implementado, mas não foi testado de forma robusta.

No-U-Turn Sampler (NUTS)

O No-U-Turn Sampler (NUTS) é uma variante adaptativa do HMC que decide automaticamente quando parar uma trajetória através do espaço de parâmetros para evitar computação desperdiçada ou retraçado de caminhos. Isso torna o NUTS mais fácil de usar, pois reduz a necessidade de ajustar manualmente os parâmetros do algoritmo. O NUTS é amplamente considerado um dos métodos mais eficientes e robustos para estimação Bayesiana de parâmetros. No OghmaNano, o suporte está implementado, mas não foi testado de forma robusta.

👉 Próximo passo: Agora continue para Parte C para métodos de ajuste mais avançados.