Eigenvalues ​​और गंभीर शोर समस्याओं की साजिश रचने

Aug 18 2020

मैं मैथेमेटिका में अपने सिस्टम हैमिल्टन के ईजेन मूल्यों की साजिश करने की कोशिश कर रहा हूं। यह बहुत शोर साजिश पैदा कर रहा है। यह मेरा कोड है।

ϵ = 0;
A[α_, c_, b_, q_] := ϵ + 
2*Cos[k2*b + 2*π*α]*Exp[-π 1/(2*q)]*
LaguerreL[c, 0, (π*1/q)]
B[a_, q_] := Exp[I*k1*q*a]
B1[a_, q_] := Exp[-I*k1*q*a]
b[α_, q_] := 
SparseArray[{Band[{1, 1}] -> A[α, 0, 1, q], 
Band[{1, 2}] -> B[1, q], Band[{2, 1}] -> B1[1, q], 
Band[{1, q}] -> B1[1, q], Band[{q, 1}] -> B[1, q]}, {q, q}];
Plot3D[Eigenvalues[b[1, 3]][[2]], {k1, -3, 3}, {k2, -π, π}]

यह भी सही नहीं है। चूंकि यह अलग-अलग ईजन मूल्यों के समाधानों को मिला रहा है। किसी भी तरह की सहायता की हम सराहना करेंगे।

जवाब

5 CATrevillian Aug 18 2020 at 13:58

तो मेरा पहला कदम आपके कार्यों को इस तरह पुनर्परिभाषित करना था:

ClearAll[A,ε,B,B1,b];

A[α_, c_, b_, q_, ε_][k2_]:=ε + Cos[k2*b + 2*Pi*α]*Exp[-Pi 1/(2*q)]*LaguerreL[c, 0, (Pi*1/q)];

B[a_, q_][k1_]:=Exp[I*k1*q*a];

B1[a_, q_][k1_]:=Exp[-I*k1*q*a];

b[α_, q_][k1_,k2_] :=
SparseArray[{Band[{1, 1}] -> A[α, 0, 1, q, 0][k2],
Band[{1, 2}] -> B[1, q][k1], Band[{2, 1}] -> B1[1, q][k1],
Band[{1, q}] -> B1[1, q][k1], Band[{q, 1}] -> B[1, q][k1]}, {q, q}];

तब मैं निम्नलिखित का उपयोग करके साजिश कर सकता था:

Plot3D[Sort[Eigensystem[N[b[1,3][k1,k2]]][[1]]][[2]],{k1,-3,3},{k2,-Pi,Pi},PlotPoints->50]

जो देता है:

इसी तरह,

Plot3D[Sort[Eigenvalues[N[b[1,3][k1,k2]]]][[2]],{k1,-3,3},{k2,-Pi,Pi},PlotPoints->50]  

तथा

Plot3D[Sort[Eigenvalues[b[1,3][k1,k2]]][[2]],{k1,-3,3},{k2,-Pi,Pi},PlotPoints->50]

दोनों अपने उपयोग के कारण समान आउटपुट देते हैं Sort

तथापि,

Plot3D[Eigensystem[N[b[1,3][k1,k2]]][[1]][[2]],{k1,-3,3},{k2,-Pi,Pi},PlotPoints->50]

डिस्कनेक्ट किया गया और गंभीर रूप से शोर की साजिश देता है

और यह उपयोग के अभाव के कारण है Sort। हम इसके साथ भी यही आउटपुट देख सकते हैं:

Plot3D[Eigenvalues[N[b[1,3][k1,k2]]][[2]],{k1,-3,3},{k2,-Pi,Pi},PlotPoints->50]

तथा

Plot3D[Eigenvalues[b[1,3][k1,k2]][[2]],{k1,-3,3},{k2,-Pi,Pi},PlotPoints->50]

जो दोनों पहले देखे गए एक ही शोर और मिश्रित eigenvalue साजिश का उत्पादन करते हैं।

यदि यह वह नहीं है जो आप ढूंढ रहे हैं, तो कृपया मुझे बताएं? आशा है कि ये आपकी मदद करेगा!


ओपी के प्रारंभिक कोडब्लॉक का अनुवाद करने में त्रुटि का एहसास होने के बाद, निम्नलिखित अब लागू नहीं होता है:

आप यह देखते हुए भी अपनी मैट्रिक्स असेंबली को तेज़ कर सकते हैं कि आपकी सेटिंग ε = 0विकर्ण को 0 पर ले जाती है, जो आपके मैट्रिस के रन को इकट्ठा करते समय इस तरह के बाहरी गणना करने की आवश्यकता को रोक सकता है।


टीएल; ड्र; का उपयोग करना Sortउस शोर को खत्म करने में मदद करने के लिए महत्वपूर्ण है जो मौजूद था।