Parameter optimization for the eignevalues of a matrix

Click For Summary
SUMMARY

This discussion focuses on optimizing parameters for the eigenvalues of a 20x20 matrix corresponding to a Hamiltonian. The user seeks to match these eigenvalues to experimentally measured energies using gradient descent, but encounters challenges due to the significant disparity in the gradient of the diagonal terms, particularly the term ##bx^4##. The user expects values for parameters a and b to be around 5000 and 0.005, respectively, but finds that small changes in b lead to drastic changes in the gradient of the eigenvalues. The discussion emphasizes the need for alternative optimization strategies to handle the nonlinearity and sensitivity of the gradient.

PREREQUISITES
  • Understanding of Hamiltonian mechanics and matrix representation
  • Familiarity with eigenvalue problems in linear algebra
  • Knowledge of optimization techniques, specifically gradient descent
  • Experience with numerical methods for diagonalization of matrices
NEXT STEPS
  • Research alternative optimization algorithms such as Genetic Algorithms or Simulated Annealing
  • Learn about the Levenberg-Marquardt algorithm for nonlinear least squares fitting
  • Explore techniques for scaling gradients in optimization problems
  • Investigate the use of regularization methods to stabilize parameter fitting
USEFUL FOR

This discussion is beneficial for physicists, computational chemists, and data scientists involved in parameter optimization for eigenvalue problems, particularly in the context of molecular spectroscopy and Hamiltonian systems.

kelly0303
Messages
573
Reaction score
33
Hello! I have a matrix (about 20 x 20), which corresponds to a given Hamiltonian. I would like to write an optimization code that matches the eigenvalues of this matrix to some experimentally measured energies. I wanted to use gradient descent, but that seems to not work in a straightforward manner and I was wondering if someone has any advice on how to proceed. In my case, the diagonal term are mainly of the form ##ax^2+bx^4##, where a and b are the values I want to fit for, and in my case x is around 20. I expect (based on some theoretical calculations) that a is around 5000 and b is around 0.005, so the first term is on the order of ##5000 \times 20^2 = 2000000## and the second term is on the order ##0.005\times 20^4 = 800##. The off diagonal terms are much smaller on the order ~1. The main problem is that the gradient of the function with respect to b is huge i.e. ##x^4##, while b itself is very small. Moreover, when doing the diagonalization the ##bx^4## term gets mixed nonlinearly with the other terms of the matrix so in the end the gradient is not just simply ##x^4## and for example going from 0.0055 to 0.0056 changes the gradient of the eigenvalues with respect to b by almost 5 orders of magnitude. Is there a way to deal with this (for context this is for fitting rotational parameters to a molecular spectrum). Thank you!
 

Similar threads

  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 11 ·
Replies
11
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 33 ·
2
Replies
33
Views
2K
  • · Replies 1 ·
Replies
1
Views
705
  • · Replies 12 ·
Replies
12
Views
2K
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 2 ·
Replies
2
Views
2K