optimize matrix elements to obtain certain eigenvalues

asked 2021-04-17 19:22:37 +0200

CasimirVictoria gravatar image

updated 2021-04-18 10:25:09 +0200

Greetings to all, someone could tell me if possible (and what I should learn, where I should start looking) to solve the following problem: I have built a Matrix: (its a dynamical matrix build from force constants matrices), the elements of the matrix are symbolic expressions that depends of certain variables (in particular unknown force constants). I know the eigenvalues of this matrix at certain "points of 2 coordinates" (coordinates are variables of the expression that defines the elements of the array). So, solving a linear system of equations (the equations are determinated by the "expression that sage return for the eigenvalues at these points" == "and the experimental eigenvalue that i measured") i get a numeric value for the variables (that's what my problem is all about).

But the problem is that the values of my own correspond to experimental values, and so I have achieved good constants for 4 points, but I need to adjust them to a set of values of my own, to a curve (the curve -its not only only are a set of curves- is the relation dispersion for bidimensional materials, graphene, BN, etc.) . So i need adjust the values of constants for optimize the adjust to the curve

We can consider a 2x2 matrix, D, and its elements depend of the constants alpha1, alpha2, alpha3 and alpha4, and the point where it's evaluated (q_x, q_y). Well i know that at point (0,0) the eigenvalues are 0 and 830, so i obtain the equation for the eigenvalues:

-6*(alpha1+alpha2)= 630; 0=0

and other equations at other points (at simetric points of first Brilluin Zone). Sagemath solves the linear system of equations an i can determine the constans. Then I rewrite the D matrix with the constants determined (alpha1=1.4, alpha2=2.5, and so ...), and obtain the eigenvalues of the D matrix at other points (pairs of q_x, q_y): the matrix still depends on the points [q_x, q_y]. So, what i want is, starting with the initial value of the constants that i obtained from first points, adjust them so that the matrix's eigenvalues best fit the experimental eigenvalues that i have.

On page 13 of Noebook-Casimir.pdf you can see what i mean.

edit retag flag offensive close merge delete



You should provide your material if you want some of us to give a try:

  • "I have built a Matrix" -> provide the code to build the matrix
  • "We can consider a 2x2 matrix, D" -> provide the code to build the matrix D
tmonteil gravatar imagetmonteil ( 2021-04-18 11:59:56 +0200 )edit