0
$\begingroup$

I am trying to fit a model to an intensity map to extract three values for the parameters of my model $J_x, J_y, J_z$. Currently, I am running into the issue where I can extract values for these three parameters but they do not provide an accurate fit.

The dataset that I am trying to fit my model to is

data = {{0.01299648, 0.01203211, 0.1263361}, {0.01299648, 0.04910681, 0.0336076}, {0.01299648, 0.09977061, 0.001322289}, {0.01299648, 0.1508783, 0.000499663}, {0.01299648, 0.2008796, 0.000419055}, {0.01299648, 0.2510364, 0.000421737}, {0.01299648, 0.3009251, 0.000178943}, {0.01299648, 0.3508747, 0.0000992}, {0.01299648, 0.3999321, 0.000430162}, {0.01299648, 0.4489179, 0.001252234}, {0.01299648, 0.5002585, 0.000617269}, {0.01299648, 0.5509165, 0.001468457}, {0.01299648, 0.6011173, 0.003723728}, {0.01299648, 0.6498302, 0.004062989}, {0.01299648, 0.6988636, 0.001993023}, {0.01299648, 0.7499531, 0.000721637}, {0.01299648, 0.8010127, 0.000252952}, {0.05334629, 0.01203211, 0.1305249}, {0.05334629, 0.04910681, 0.03503799}, {0.05334629, 0.09977061, 0.001494748}, {0.05334629, 0.1508783, 0.000631434}, {0.05334629, 0.2008796, 0.000516482}, {0.05334629, 0.2510364, 0.000452927}, {0.05334629, 0.3009251, 0.00038714}, {0.05334629, 0.3508747, 0.000419254}, {0.05334629, 0.3999321, 0.000425151}, {0.05334629, 0.4489179, 0.000511058}, {0.05334629, 0.5002585, 0.000683154}, {0.05334629, 0.5509165, 0.001937698}, {0.05334629, 0.6011173, 0.003902016}, {0.05334629, 0.6498302, 0.00309874}, {0.05334629, 0.6988636, 0.001156821}, {0.05334629, 0.7499531, 0.000876003}, {0.05334629, 0.8010127, 0.000494271}, {0.05334629, 0.8507249, 0.000468474}, {0.05334629, 0.9009042, 0.000227273}, {0.09946869, 0.01203211, 0.1314684}, {0.09946869, 0.04910681, 0.03540794}, {0.09946869, 0.09977061, 0.001480958}, {0.09946869, 0.1508783, 0.000518701}, {0.09946869, 0.2008796, 0.00039427}, {0.09946869, 0.2510364, 0.000395253}, {0.09946869, 0.3009251, 0.000357242}, {0.09946869, 0.3508747, 0.000435539}, {0.09946869, 0.3999321, 0.000440639}, {0.09946869, 0.4489179, 0.000453975}, {0.09946869, 0.5002585, 0.000817151}, {0.09946869, 0.5509165, 0.002821699}, {0.09946869, 0.6011173, 0.005799377}, {0.09946869, 0.6498302, 0.003142505}, {0.09946869, 0.6988636, 0.00089875}, {0.09946869, 0.7499531, 0.000935933}, {0.09946869, 0.8010127, 0.000741281}, {0.09946869, 0.8507249, 0.000379727}, {0.09946869, 0.9009042, 0.000452129}, {0.09946869, 0.9499643, 0.000321497}, {0.09946869, 0.9987899, 0.000216047}, {0.09946869, 1.049146, 0.000321083}, {0.09946869, 1.100007, 0.00007}, {0.09946869, 1.151003, 0.000371132}, {0.09946869, 1.20088, 0.001603127}, {0.1513923, 0.01203211, 0.1271927}, {0.1513923, 0.04910681, 0.03466543}, {0.1513923, 0.09977061, 0.001471831}, {0.1513923, 0.1508783, 0.000458085}, {0.1513923, 0.2008796, 0.000323088}, {0.1513923, 0.2510364, 0.000262988}, {0.1513923, 0.3009251, 0.000208331}, {0.1513923, 0.3508747, 0.000261884}, {0.1513923, 0.3999321, 0.000318829}, {0.1513923, 0.4489179, 0.000390393}, {0.1513923, 0.5002585, 0.000796483}, {0.1513923, 0.5509165, 0.003169181}, {0.1513923, 0.6011173, 0.006016299}, {0.1513923, 0.6498302, 0.002961305}, {0.1513923, 0.6988636, 0.00089255}, {0.1513923, 0.7499531, 0.000601942}, {0.1513923, 0.8010127, 0.000622036}, {0.1513923, 0.8507249, 0.00059582}, {0.1513923, 0.9009042, 0.000342461}, {0.1513923, 0.9499643, 0.000365842}, {0.1513923, 0.9987899, 0.000383168}, {0.1513923, 1.049146, 0.000158197}, {0.1513923, 1.100007, 0.0000797}, {0.1513923, 1.151003, 0.000272186}, {0.1513923, 1.20088, 0.000791483}, {0.1513923, 1.24981, 0.000810134}, {0.1513923, 1.298876, 0.001098106}, {0.1513923, 1.35012, 0.001020097}, {0.1513923, 1.400843, 0.00099628}, {0.1513923, 1.45113, 0.001696679}, {0.1513923, 1.487999, 0.00068497}, {0.200413, 0.01203211, 0.1251366}, {0.200413, 0.04910681, 0.03396657}, {0.200413, 0.09977061, 0.001455514}, {0.200413, 0.1508783, 0.000471295}, {0.200413, 0.2008796, 0.000356116}, {0.200413, 0.2510364, 0.000255785}, {0.200413, 0.3009251, 0.000192659}, {0.200413, 0.3508747, 0.000195415}, {0.200413, 0.3999321, 0.000212672}, {0.200413, 0.4489179, 0.000201986}, {0.200413, 0.5002585, 0.000452148}, {0.200413, 0.5509165, 0.002283648}, {0.200413, 0.6011173, 0.005130702}, {0.200413, 0.6498302, 0.002947664}, {0.200413, 0.6988636, 0.000885883}, {0.200413, 0.7499531, 0.000353508}, {0.200413, 0.8010127, 0.000337989}, {0.200413, 0.8507249, 0.000294789}, {0.200413, 0.9009042, 0.000287179}, {0.200413, 0.9499643, 0.000311635}, {0.200413, 0.9987899, 0.000207756}, {0.200413, 1.049146, 0.000158257}, {0.200413, 1.100007, 0.000190184}, {0.200413, 1.151003, 0.000213257}, {0.200413, 1.20088, 0.000336925}, {0.200413, 1.24981, 0.000487695}, {0.200413, 1.298876, 0.000638927}, {0.200413, 1.35012, 0.001054225}, {0.200413, 1.400843, 0.001720866}, {0.200413, 1.45113, 0.00200075}, {0.200413, 1.487999, 0.001241234}, {0.249747, 0.01203211, 0.1205826}, {0.249747, 0.04910681, 0.03260196}, {0.249747, 0.09977061, 0.001261705}, {0.249747, 0.1508783, 0.000333223}, {0.249747, 0.2008796, 0.000305626}, {0.249747, 0.2510364, 0.000248531}, {0.249747, 0.3009251, 0.000227554}, {0.249747, 0.3508747, 0.000242098}, {0.249747, 0.3999321, 0.000213059}, {0.249747, 0.4489179, 0.000171657}, {0.249747, 0.5002585, 0.000269242}, {0.249747, 0.5509165, 0.001302021}, {0.249747, 0.6011173, 0.003488679}, {0.249747, 0.6498302, 0.003051286}, {0.249747, 0.6988636, 0.001461859}, {0.249747, 0.7499531, 0.000595035}, {0.249747, 0.8010127, 0.000388456}, {0.249747, 0.8507249, 0.000291368}, {0.249747, 0.9009042, 0.000241225}, {0.249747, 0.9499643, 0.000237664}, {0.249747, 0.9987899, 0.000151976}, {0.249747, 1.049146, 0.000151201}, {0.249747, 1.100007, 0.000175435}, {0.249747, 1.151003, 0.000146402}, {0.249747, 1.20088, 0.000207344}, {0.249747, 1.24981, 0.000247186}, {0.249747, 1.298876, 0.000406102}, {0.249747, 1.35012, 0.000704678}, {0.249747, 1.400843, 0.000829369}, {0.249747, 1.45113, 0.000937308}, {0.249747, 1.487999, 0.001484896}, {0.2999469, 0.01203211, 0.1134484}, {0.2999469, 0.04910681, 0.03021775}, {0.2999469, 0.09977061, 0.00106177}, {0.2999469, 0.1508783, 0.00030537}, {0.2999469, 0.2008796, 0.000213005}, {0.2999469, 0.2510364, 0.000185747}, {0.2999469, 0.3009251, 0.000164455}, {0.2999469, 0.3508747, 0.000142963}, {0.2999469, 0.3999321, 0.000130967}, {0.2999469, 0.4489179, 0.000167198}, {0.2999469, 0.5002585, 0.000180923}, {0.2999469, 0.5509165, 0.000541689}, {0.2999469, 0.6011173, 0.001467756}, {0.2999469, 0.6498302, 0.00203471}, {0.2999469, 0.6988636, 0.001823599}, {0.2999469, 0.7499531, 0.001339045}, {0.2999469, 0.8010127, 0.0009652}, {0.2999469, 0.8507249, 0.00046882}, {0.2999469, 0.9009042, 0.000292738}, {0.2999469, 0.9499643, 0.000180685}, {0.2999469, 0.9987899, 0.000126662}, {0.2999469, 1.049146, 0.000182039}, {0.2999469, 1.100007, 0.000243545}, {0.2999469, 1.151003, 0.000167506}, {0.2999469, 1.20088, 0.000221046}, {0.2999469, 1.24981, 0.000266948}, {0.2999469, 1.298876, 0.000361939}, {0.2999469, 1.35012, 0.000423017}, {0.2999469, 1.400843, 0.000497565}, {0.2999469, 1.45113, 0.000841964}, {0.2999469, 1.487999, 0.001636413}, {0.351399, 0.01203211, 0.1023983}, {0.351399, 0.04910681, 0.02760775}, {0.351399, 0.09977061, 0.001013449}, {0.351399, 0.1508783, 0.000314347}, {0.351399, 0.2008796, 0.000218643}, {0.351399, 0.2510364, 0.000145264}, {0.351399, 0.3009251, 0.0000988}, {0.351399, 0.3508747, 0.0000886}, {0.351399, 0.3999321, 0.000078}, {0.351399, 0.4489179, 0.000113312}, {0.351399, 0.5002585, 0.0000947}, {0.351399, 0.5509165, 0.000150304}, {0.351399, 0.6011173, 0.000443105}, {0.351399, 0.6498302, 0.000857112}, {0.351399, 0.6988636, 0.001158728}, {0.351399, 0.7499531, 0.001562672}, {0.351399, 0.8010127, 0.001445169}, {0.351399, 0.8507249, 0.000932427}, {0.351399, 0.9009042, 0.00044006}, {0.351399, 0.9499643, 0.000182093}, {0.351399, 0.9987899, 0.000100358}, {0.351399, 1.049146, 0.000133863}, {0.351399, 1.100007, 0.000144129}, {0.351399, 1.151003, 0.00010871}, {0.351399, 1.20088, 0.000123393}, {0.351399, 1.24981, 0.000193871}, {0.351399, 1.298876, 0.000241517}, {0.351399, 1.35012, 0.000296181}, {0.351399, 1.400843, 0.00026523}, {0.351399, 1.45113, 0.000646058}, {0.351399, 1.487999, 0.000963321}, {0.4027665, 0.01203211, 0.09461402}, {0.4027665, 0.04910681, 0.0254652}, {0.4027665, 0.09977061, 0.001031896}, {0.4027665, 0.1508783, 0.000384627}, {0.4027665, 0.2008796, 0.000268799}, {0.4027665, 0.2510364, 0.000208381}, {0.4027665, 0.3009251, 0.000199062}, {0.4027665, 0.3508747, 0.000186287}, {0.4027665, 0.3999321, 0.000159836}, {0.4027665, 0.4489179, 0.000107729}, {0.4027665, 0.5002585, 0.0000923}, {0.4027665, 0.5509165, 0.0000702}, {0.4027665, 0.6011173, 0.000146609}, {0.4027665, 0.6498302, 0.000280341}, {0.4027665, 0.6988636, 0.000459356}, {0.4027665, 0.7499531, 0.000744988}, {0.4027665, 0.8010127, 0.001140008}, {0.4027665, 0.8507249, 0.001200483}, {0.4027665, 0.9009042, 0.000922343}, {0.4027665, 0.9499643, 0.000375711}, {0.4027665, 0.9987899, 0.000140653}, {0.4027665, 1.049146, 0.000098}, {0.4027665, 1.100007, 0.0000772}, {0.4027665, 1.151003, 0.0000815}, {0.4027665, 1.20088, 0.0000899}, {0.4027665, 1.24981, 0.0000992}, {0.4027665, 1.298876, 0.000142484}, {0.4027665, 1.35012, 0.000189181}, {0.4027665, 1.400843, 0.000172183}, {0.4027665, 1.45113, 0.000275446}, {0.4027665, 1.487999, 0.000381214}, {0.4496463, 0.01203211, 0.1094655}, {0.4496463, 0.04910681, 0.03120829}, {0.4496463, 0.09977061, 0.001421187}, {0.4496463, 0.1508783, 0.000589879}, {0.4496463, 0.2008796, 0.000401797}, {0.4496463, 0.2510364, 0.000392448}, {0.4496463, 0.3009251, 0.000374653}, {0.4496463, 0.3508747, 0.000443615}, {0.4496463, 0.3999321, 0.000371195}, {0.4496463, 0.4489179, 0.000203434}, {0.4496463, 0.5002585, 0.000117548}, {0.4496463, 0.5509165, 0.0000764}, {0.4496463, 0.6011173, 0.0000956}, {0.4496463, 0.6498302, 0.000120406}, {0.4496463, 0.6988636, 0.000175619}, {0.4496463, 0.7499531, 0.000325115}, {0.4496463, 0.8010127, 0.0005661}, {0.4496463, 0.8507249, 0.000928296}, {0.4496463, 0.9009042, 0.001128707}, {0.4496463, 0.9499643, 0.000719185}, {0.4496463, 0.9987899, 0.000239313}, {0.4496463, 1.049146, 0.0000817}, {0.4496463, 1.100007, 0.0000617}, {0.4496463, 1.151003, 0.0000532}, {0.4496463, 1.20088, 0.0000802}, {0.4496463, 1.24981, 0.000094}, {0.4496463, 1.298876, 0.00010737}, {0.4496463, 1.35012, 0.0000915}, {0.4496463, 1.400843, 0.00016223}, {0.4496463, 1.45113, 0.000256105}, {0.4496463, 1.487999, 0.000406342}, {0.4967034, 0.01203211, 0.1515964}, {0.4967034, 0.04910681, 0.03684591}, {0.4967034, 0.09977061, 0.001324794}, {0.4967034, 0.1508783, 0.000433766}, {0.4967034, 0.2008796, 0.000275803}, {0.4967034, 0.2510364, 0.000212638}, {0.4967034, 0.3009251, 0.000196184}, {0.4967034, 0.3508747, 0.000205123}, {0.4967034, 0.3999321, 0.000232467}, {0.4967034, 0.4489179, 0.000401981}, {0.4967034, 0.5002585, 0.000176261}, {0.4967034, 0.5509165, 0.0000896}, {0.4967034, 0.6011173, 0.0000941}, {0.4967034, 0.6498302, 0.000100446}, {0.4967034, 0.6988636, 0.000110629}, {0.4967034, 0.7499531, 0.000192725}, {0.4967034, 0.8010127, 0.000359514}, {0.4967034, 0.8507249, 0.000674937}, {0.4967034, 0.9009042, 0.001039717}, {0.4967034, 0.9499643, 0.000770872}, {0.4967034, 0.9987899, 0.000225213}, {0.4967034, 1.049146, 0.0000582}, {0.4967034, 1.100007, 0.0000442}, {0.4967034, 1.151003, 0.0000482}, {0.4967034, 1.20088, 0.0000665}, {0.4967034, 1.24981, 0.0000707}, {0.4967034, 1.298876, 0.0000618}, {0.4967034, 1.35012, 0.0000937}, {0.4967034, 1.400843, 0.000150926}, {0.4967034, 1.45113, 0.000135016}, {0.4967034, 1.487999, 0.000233144}, {0.5504108, 0.01203211, 0.09064252}, {0.5504108, 0.04910681, 0.02602461}, {0.5504108, 0.09977061, 0.000835608}, {0.5504108, 0.1508783, 0.000236157}, {0.5504108, 0.2008796, 0.000142981}, {0.5504108, 0.2510364, 0.000107481}, {0.5504108, 0.3009251, 0.0000878}, {0.5504108, 0.3508747, 0.0000884}, {0.5504108, 0.3999321, 0.000127604}, {0.5504108, 0.4489179, 0.000139343}, {0.5504108, 0.5002585, 0.000122183}, {0.5504108, 0.5509165, 0.0000747}, {0.5504108, 0.6011173, 0.0000848}, {0.5504108, 0.6498302, 0.000123968}, {0.5504108, 0.6988636, 0.000148527}, {0.5504108, 0.7499531, 0.000235699}, {0.5504108, 0.8010127, 0.000372422}, {0.5504108, 0.8507249, 0.000677797}, {0.5504108, 0.9009042, 0.000967788}, {0.5504108, 0.9499643, 0.000557506}, {0.5504108, 0.9987899, 0.000136945}, {0.5504108, 1.049146, 0.0000519}, {0.5504108, 1.100007, 0.0000573}, {0.5504108, 1.151003, 0.0000676}, {0.5504108, 1.20088, 0.0000507}, {0.5504108, 1.24981, 0.0000355}, {0.5504108, 1.298876, 0.0000463}, {0.5504108, 1.35012, 0.000113439}, {0.5504108, 1.400843, 0.000125893}, {0.5504108, 1.45113, 0.000127608}, {0.5504108, 1.487999, 0.000108575}, {0.5999553, 0.01203211, 0.06634204}, {0.5999553, 0.04910681, 0.01829561}, {0.5999553, 0.09977061, 0.000690618}, {0.5999553, 0.1508783, 0.000167709}, {0.5999553, 0.2008796, 0.000126736}, {0.5999553, 0.2510364, 0.0000828}, {0.5999553, 0.3009251, 0.0000879}, {0.5999553, 0.3508747, 0.0000923}, {0.5999553, 0.3999321, 0.0000769}, {0.5999553, 0.4489179, 0.0000776}, {0.5999553, 0.5002585, 0.0000767}, {0.5999553, 0.5509165, 0.0000877}, {0.5999553, 0.6011173, 0.000166282}, {0.5999553, 0.6498302, 0.000232257}, {0.5999553, 0.6988636, 0.000360469}, {0.5999553, 0.7499531, 0.00039869}, {0.5999553, 0.8010127, 0.00053909}, {0.5999553, 0.8507249, 0.000729154}, {0.5999553, 0.9009042, 0.000611591}, {0.5999553, 0.9499643, 0.000244657}, {0.5999553, 0.9987899, 0.0000664}, {0.5999553, 1.049146, 0.0000428}, {0.5999553, 1.100007, 0.0000545}, {0.5999553, 1.151003, 0.0000771}, {0.5999553, 1.20088, 0.0000709}, {0.5999553, 1.24981, 0.000079}, {0.5999553, 1.298876, 0.0000836}, {0.5999553, 1.35012, 0.000146739}, {0.5999553, 1.400843, 0.000180494}, {0.5999553, 1.45113, 0.000171035}, {0.5999553, 1.487999, 0.000283511}, {0.6503139, 0.01203211, 0.08897097}, {0.6503139, 0.04910681, 0.02465827}, {0.6503139, 0.09977061, 0.000902531}, {0.6503139, 0.1508783, 0.00021565}, {0.6503139, 0.2008796, 0.000186667}, {0.6503139, 0.2510364, 0.000151591}, {0.6503139, 0.3009251, 0.000120543}, {0.6503139, 0.3508747, 0.000108839}, {0.6503139, 0.3999321, 0.0000846}, {0.6503139, 0.4489179, 0.000115256}, {0.6503139, 0.5002585, 0.000128018}, {0.6503139, 0.5509165, 0.000132044}, {0.6503139, 0.6011173, 0.000235156}, {0.6503139, 0.6498302, 0.000448416}, {0.6503139, 0.6988636, 0.000524899}, {0.6503139, 0.7499531, 0.000584105}, {0.6503139, 0.8010127, 0.000550121}, {0.6503139, 0.8507249, 0.000462607}, {0.6503139, 0.9009042, 0.000262414}, {0.6503139, 0.9499643, 0.000116691}, {0.6503139, 0.9987899, 0.0000866}, {0.6503139, 1.049146, 0.0000572}, {0.6503139, 1.100007, 0.0000328}, {0.6503139, 1.151003, 0.0000645}, {0.6503139, 1.20088, 0.0000764}, {0.6503139, 1.24981, 0.0000914}, {0.6503139, 1.298876, 0.000131544}, {0.6503139, 1.35012, 0.000152969}, {0.6503139, 1.400843, 0.000160366}, {0.6503139, 1.45113, 0.000227675}, {0.6503139, 1.487999, 0.000410726}, {0.6990286, 0.01203211, 0.1305426}, {0.6990286, 0.04910681, 0.03146357}, {0.6990286, 0.09977061, 0.001037019}, {0.6990286, 0.1508783, 0.000231548}, {0.6990286, 0.2008796, 0.000298593}, {0.6990286, 0.2510364, 0.000231503}, {0.6990286, 0.3009251, 0.000136526}, {0.6990286, 0.3508747, 0.000123731}, {0.6990286, 0.3999321, 0.000157325}, {0.6990286, 0.4489179, 0.000276389}, {0.6990286, 0.5002585, 0.000241361}, {0.6990286, 0.5509165, 0.000154788}, {0.6990286, 0.6011173, 0.000268714}, {0.6990286, 0.6498302, 0.000475129}, {0.6990286, 0.6988636, 0.000607848}, {0.6990286, 0.7499531, 0.000470629}, {0.6990286, 0.8010127, 0.000318165}, {0.6990286, 0.8507249, 0.000204583}, {0.6990286, 0.9009042, 0.000127872}, {0.6990286, 0.9499643, 0.0000904}, {0.6990286, 0.9987899, 0.000180306}, {0.6990286, 1.049146, 0.000121658}, {0.6990286, 1.100007, 0.000130731}, {0.6990286, 1.151003, 0.00015566}, {0.6990286, 1.20088, 0.000097}, {0.6990286, 1.24981, 0.0000895}, {0.6990286, 1.298876, 0.00014314}, {0.6990286, 1.35012, 0.000181547}, {0.6990286, 1.400843, 0.000167488}, {0.6990286, 1.45113, 0.000292798}, {0.6990286, 1.487999, 0.000433997}, {0.7477285, 0.3009251, 0.000053}, {0.7477285, 0.3508747, 0.0000956}, {0.7477285, 0.3999321, 0.000344739}, {0.7477285, 0.4489179, 0.000390532}, {0.7477285, 0.5002585, 0.000392541}, {0.7477285, 0.5509165, 0.000149147}, {0.7477285, 0.6011173, 0.000165453}, {0.7477285, 0.6498302, 0.000452263}, {0.7477285, 0.6988636, 0.000415388}, {0.7477285, 0.7499531, 0.000297813}, {0.7477285, 0.8010127, 0.000194161}, {0.7477285, 0.8507249, 0.000154568}, {0.7477285, 0.9009042, 0.000134434}, {0.7477285, 0.9499643, 0.000110127}, {0.7477285, 0.9987899, 0.000110382}, {0.7477285, 1.049146, 0.000129385}, {0.7477285, 1.100007, 0.000353017}, {0.7477285, 1.151003, 0.000538544}, {0.7477285, 1.20088, 0.00015782}, {0.7477285, 1.24981, 0.0000696}, {0.7477285, 1.298876, 0.000146578}, {0.7477285, 1.35012, 0.000300833}, {0.7477285, 1.400843, 0.000445233}, {0.7477285, 1.45113, 0.000371585}, {0.7477285, 1.487999, 0.00069879}, {0.79343, 0.8010127, 0.000545414}, {0.79343, 0.8507249, 0.000225278}, {0.79343, 0.9009042, 0.000404924}, {0.79343, 0.9499643, 0.000148193}, {0.79343, 0.9987899, 0.000165649}, {0.79343, 1.049146, 0.0000836}, {0.79343, 1.100007, 0.000175279}, {0.79343, 1.151003, 0.000331701}, {0.79343, 1.20088, 0.000197516}, {0.79343, 1.24981, 0.0000473}, {0.79343, 1.298876, 0.000169997}, {0.79343, 1.35012, 0.000461569}, {0.79343, 1.400843, 0.000334411}, {0.79343, 1.45113, 0.000547673}, {0.79343, 1.487999, 0.000890756}, {0.8292615, 1.35012, 0.000118945}, {0.8292615, 1.400843, 0.000102903}, {0.8292615, 1.45113, 0.000157944}, {0.8292615, 1.487999, 0.000248875}}

The first entry in each list is the x-position, the second entry is the energy, and the third entry is the intensity. Plotting this dataset is done via ListDensityPlot

ListDensityPlot[data, 
 ColorFunction -> ColorData["Rainbow"], PlotLegends -> Automatic, 
 PlotRange -> {0, 0.005}, ClippingStyle -> Red, 
 InterpolationOrder -> 0, LabelStyle -> {18, GrayLevel[0]}, 
 FrameLabel -> {"[H+0.5, -H+0.5, 0]", "Energy (meV)", 
   "[H,H,0] = [0.45, 0.55]"}, 
 PlotLegends -> {Placed[
    BarLegend[Automatic, Automatic, 
     LegendLabel -> "Intensity (a.u.)"], Right]}]

enter image description here

The model that I want to fit this dataset to is defined as $$ \sqrt{| S(J_x+\text{Jy}) (\cos (k_1)+\cos (k_2)+\cos (k_1 + k_2))+\mu g B_z - 6J_z S| ^2-\left| S (J_x-J_y) \left(e^{\frac{-2 \pi i}{3} } \cos (k_1)+e^{\frac{2 \pi i}{3}} \cos (k_2)+\cos (k_1 + k_2)\right)\right| ^2} $$ where $S = 1/2$, $g = 2$, $B_z = 4$, and $\mu$ is the Bohr magneton $\mu = 5.788381\times 10^{-2} meV\cdot T^{-1}$.

What I thought would be a quick way to fit this data would be to create a cost function between my model and the energy values swept across then minimize this function to extract the three parameters. So here is how I did that. First I defined how to convert the x-positions into $(k_x, k_y, k_z)$ that my model uses

μ = 5.7883818012*10^-2; (* Bohr Magneton pulled from Wikipedia in units of meV * T^-1 *)
b1 = {2 \[Pi], (2 \[Pi])/Sqrt[3], 0};
b2 = {0, (4 \[Pi])/Sqrt[3], 0};
(* First obtain the measured energy values and the measured x values store them in separate lists *)
ω = DeleteDuplicates@*Flatten@data[[All, 2]];
x = DeleteDuplicates@*Flatten@data[[All, 1]];
(* For the above dataset we are moving along the path K -> M: \
k=x(b1+b2) where 1/3 <= x <= 1/2 *)
k = Table[x[[i]] (b1 + b2), {i, 1, Length[x]}];

Now that I have a list of lists k where the first entry in each list is $k_x$ and the second entry is $k_y$ I can feed these to my model and create a list of functions that depend on $J_x$, $J_y$, and $J_z$

(* Create a table of the spectrum for each momentum vector we created above *)
lsw[Jx_, Jy_, Jz_, S_, g_, Bz_] := Table[\[Sqrt](Abs[
       S (Jx + Jy) (Cos[k[[i, 1]]] + 
           Cos[(-Sqrt[3] k[[i, 1]])/2 + k[[i, 2]]/2] + 
           Cos[(-Sqrt[3] k[[i, 1]])/2 - k[[i, 2]]/2]) - 6 S Jz + 
        g \[Mu] Bz ]^2 - 
      Abs[S (Jx - Jy) (E^(-I 2 \[Pi]/3) Cos[k[[i, 1]]] + 
          E^(I 2 \[Pi]/3) Cos[(-Sqrt[3] k[[i, 1]])/2 + k[[i, 2]]/2] + 
          Cos[(-Sqrt[3] k[[i, 1]])/2 - k[[i, 2]]/2])]^2), {i, 1, 
    Length[k]}];
    spectrum = lsw[Jx, Jy, Jz, 1/2, 2, 4];

Now I define my cost function and minimize it to extract the parameter values

CostFunction[Jx_, Jy_, Jz_] := 
 Sum[Sum[Abs[spectrum[[j]] - ω[[l]]]^2, {l, 1, 
    Length[ω]}], {j, 1, Length[energies]}]
(* Minimize this cost function to attempt to extract the parameters \
Jx, Jy, Jz, and g. Ideally, we know what the parameters should be but \
in this case, I only know that g = 2. These parameters will be \
extracted in units of meV.*)
params = NMinimize[{CostFunction[Jx, Jy, Jz]}, {Jx, Jy, Jz}]

This gives me the output for the three parameters

{110.945, {Jx -> -0.000561511, Jy -> 0.000561303, Jz -> -0.0957132}}

Looking at these values I can tell they are not going to be a good fit due to the very small values for $Jx$ and $Jy$ and I am correct with my assumptions when I plot the lsw function as a white line over the intensity plot with these values. I was hoping someone would be able to help diagnose where I am going wrong with this fitting procedure? I have also tried using the function NonlinearModelFit and have only gotten errors where it returns a list of complex-valued energies which I do not want. Any help is appreciated!

enter image description here

$\endgroup$
3
  • 1
    $\begingroup$ I know nothing about physics but if you are using x-position and energy to predict intensity, then you might be better off predicting the log of intensity: ListPointPlot3D[data, PlotRange -> All] vs data[[All, 3]] = Log[data[[All, 3]]]; ListPointPlot3D[data, PlotRange -> All]. $\endgroup$
    – JimB
    Jan 28, 2021 at 4:42
  • $\begingroup$ I'm confused with what you're trying to achieve. Is the typeset equation in the sqrt meant to give a value for energy ,e(k), or intensity, I(k)? That equation returns a scalar when evaluated at a specific k-pt (and Jx,Jy,Jz parameters). If it's the intensity, do you also have a functional form for e(k)? If it's the energy, then at best you'll obtain a 1D plot. I suspect you want to be fitting something of the form Intensity(energy,kpt). I still have my concerns this will work along a 1D k-path, but at-least that could be a well-posed problem. $\endgroup$ Jan 28, 2021 at 8:42
  • $\begingroup$ Oh I see, you're trying to fit e(k) indeed based on some experimental values for intensity $\endgroup$ Jan 28, 2021 at 8:43

1 Answer 1

3
$\begingroup$

It wasn't immediately obvious to me from your post what you were trying to achieving (see comments above), but assuming you want to fit e(k) based on some experimental values for intensity - this might help you get started.

First, there's only a handful of kpts in your dataset so let's make the task somewhat easier by cleaning some outliers:

data = Select[data, 1.15 > #[[2]] > 0.25 &];

Second, you need to somehow pass the intensity information - right now your code is just minimizing the difference b/w the energy bin values (which are the same across), and thus returns a flat line at the average energy.

Here, I used the intensity value to extract a weighted energy mean - presumably this will be easy to extend to a weighted LeastSquares or similar if you prefer.

weightedEnergy = 
 Mean /@ WeightedData @@@ 
   Transpose /@ Map[Rest, GatherBy[data, First], {2}]

This means we'll use a slightly simpler CostFunction:

CostFunction[Jx_, Jy_, Jz_] := 
 Sum[Abs[spectrum[[j]] - weightedEnergy[[j]]]^2, {j, 1, 
   Length[weightedEnergy]}]
params = NMinimize[{CostFunction[Jx, Jy, Jz]}, {Jx, Jy, Jz}]

This returns a sensible fit:

Show[ldp, Graphics[Point[Thread[{x, spectrum /. Last[params]}]]]]

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.