Özdeğerlerin ve Ciddi Gürültü Sorunlarının Grafiklendirilmesi
Mathematica'da System Hamiltonian'ımın Eigen değerlerini çizmeye çalışıyorum. Bu çok gürültülü bir olay örgüsü oluşturuyor. Bu benim kodum.
ϵ = 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, -π, π}]

Bu bile doğru değil. Çünkü bu, farklı öz değerleri çözümlerini karıştırmaktır. Herhangi bir yardım çok takdir edilecektir.
Yanıtlar
Bu yüzden ilk adımım, işlevlerinizi şu şekilde yeniden tanımlamaktı:
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}];
Sonra aşağıdakileri kullanarak plan yapabilirim:
Plot3D[Sort[Eigensystem[N[b[1,3][k1,k2]]][[1]]][[2]],{k1,-3,3},{k2,-Pi,Pi},PlotPoints->50]
Hangi verir:

Benzer şekilde,
Plot3D[Sort[Eigenvalues[N[b[1,3][k1,k2]]]][[2]],{k1,-3,3},{k2,-Pi,Pi},PlotPoints->50]
Ve
Plot3D[Sort[Eigenvalues[b[1,3][k1,k2]]][[2]],{k1,-3,3},{k2,-Pi,Pi},PlotPoints->50]
Her ikisi de kullanımlarından dolayı aynı çıktıyı verir Sort
.
Ancak,
Plot3D[Eigensystem[N[b[1,3][k1,k2]]][[1]][[2]],{k1,-3,3},{k2,-Pi,Pi},PlotPoints->50]
Bağlantısız ve ciddi derecede gürültülü arsa verir

Ve bu kullanım eksikliğinden kaynaklanmaktadır Sort
. Aynı çıktıyı şununla da görebiliriz:
Plot3D[Eigenvalues[N[b[1,3][k1,k2]]][[2]],{k1,-3,3},{k2,-Pi,Pi},PlotPoints->50]
Ve
Plot3D[Eigenvalues[b[1,3][k1,k2]][[2]],{k1,-3,3},{k2,-Pi,Pi},PlotPoints->50]
Her ikisi de daha önce görülen aynı gürültülü ve karışık özdeğer grafiğini üretir.
Eğer aradığınız bu değilse, lütfen bana bildirin. Umarım bu yardımcı olur!
OP'nin ilk kod bloğunu çevirirken bir hata fark ettikten sonra, aşağıdakiler artık geçerli değildir:
Ayrıca, ayarınızın ε = 0
köşegeni 0'a götürdüğünü gözlemleyerek matris montajınızı hızlandırabilirsiniz , bu da matrislerinizin işlemlerini birleştirirken bu tür gereksiz hesaplamalar yapma ihtiyacını önleyebilir.
Tl; dr: Sort
Mevcut gürültünün ortadan kaldırılmasına yardımcı olmak için kullanmak anahtardır.