The easy approach : define a measure of the deviation, for instance expr = Total[ Flatten[(ev[#[[1]]] - Reverse[SortBy[#[[2 ;;]], Abs]])^2 & /@ dat]]; and then try to NMinimize it turns out to be unusably slow.
–
b.gatessucksJan 17 '13 at 14:16

I did this, using an object function to describe the total deviation between the calculated eigenvalues and the data. And then using NMinimize or FindMinimum. However, the result is far from reasonable.
–
goodluckJan 18 '13 at 0:34

Mathematica is a registered trademark of Wolfram Research, Inc. While the mark is used herein with the limited permission of Wolfram Research, Stack Exchange and this site disclaim all affiliation therewith.