I have a 5x5 matrix function H[kx]
H[kx_]:={{T1, kx T8, -I T6, kx T9, -I kx T10},
{kx T8, T2, -I kx T11, kx T12, I kx T13},
{I T6, I kx T11, T3, -I kx T14, kx T15},
{kx T9, kx T12, I kx T14, T4, -I T7},
{I kx T10, -I kx T13, kx T15, I T7, T5}
}
with real parameters T1 to T15, and I have data as follow
dat={{-0.005, -0.418971, 1.24115, 2.6321, 3.07757, 4.40013},
{-0.004, -0.418735, 1.24086, 2.63201, 3.07785, 4.40028},
{-0.003, -0.418551, 1.24063, 2.63194, 3.07806, 4.4004},
{-0.002, -0.41842, 1.24047, 2.63189, 3.07822, 4.40048},
{-0.001, -0.418342, 1.24038, 2.63185, 3.07831, 4.40053},
{0., -0.418316, 1.24034, 2.63184, 3.07834, 4.40055},
{0.001, -0.418342, 1.24038, 2.63185, 3.07831, 4.40053},
{0.002, -0.41842, 1.24047, 2.63189, 3.07822, 4.40048},
{0.003, -0.418548, 1.24063, 2.63194, 3.07807, 4.4004},
{0.004, -0.418728, 1.24085, 2.63201, 3.07785, 4.40028},
{0.005, -0.418959, 1.24114, 2.63211, 3.07758, 4.40012}
}
For each i, kx=dat[[i,1]], and dat[[i,2;;6]] are the eigenvalues (from small to big) which will be fitted by H[kx].
The aim is to find all the parameters T1 to T15 which best produce the eigenvalues given by dat for all kx. How can I achieve this?
expr = Total[ Flatten[(ev[#[[1]]] - Reverse[SortBy[#[[2 ;;]], Abs]])^2 & /@ dat]];and then try toNMinimizeit turns out to be unusably slow. – b.gatessucks Jan 17 at 14:16