I am plotting the Landau levels of a system numerically. Every thing is going right except a lot of noise in the energy spectrum. Please, help me out to resolve this issue. Thanks!
c = 3*10^8; m = (0.09*5.1*10^5)/(c^2); ℏ = 6.6*10^-16; v = 4.7*10^5; Δ = 0.24*10^-3*B; Subscript[ω, 0] = ℏ*B*m^-1; Subscript[ω, D] = Sqrt[2*ℏ*B*v^2]; ll = Sqrt[(2*B)/ℏ]; Block[{L = 20, Γ = 1.3*10^-3, λ = 2.5*10^-28, i, j, one, a, adag, wa, qd, H, Es, list, nn}, one = SparseArray[Band[{1, 1}] -> 1, {L, L}]; a = SparseArray[{j_, i_} /; i - j == 1 -> Sqrt[j], {L, L}]; adag = SparseArray[{j_, i_} /; j - i == 1 -> Sqrt[i], {L, L}]; wa = ll^3*λ*(a . a . a + adag . adag . adag); qd = Subscript[ω, 0]*(adag . a); H[B_] = ArrayFlatten[{{(Δ + 0.5*Subscript[ω, 0])*one + qd + wa, I*Subscript[ω, D]*a}, {-I*Subscript[ω, D]* adag, (-Δ + 0.5*Subscript[ω, 0])*one + qd - wa}}]; list[B_?NumericQ] := list[B] = Eigenvalues[H[N[B]]]; list[B_?NumericQ, nn_] := list[B][[nn]]; Plot[Evaluate@Transpose@Table[list[B, nn], {nn, 2*L}], {B, 0, 40}, PlotRange -> {{0, 40}, {-0.06, 0.1}}, ImageSize -> 500] ] 
