新人才开始学用……下面是我的程序,上面一长串都是在给一组矩阵赋值,最后得到了1024个4维方阵
a = 1;
\[Phi] = 2 \[Pi] /4;
aa = Union[
Flatten[N[
With[{ky = #1},
With[{kx = #1},
SparseArray[{Band[{1, 1}, {4, 4}] ->
Table[2 Cos[kx a - q \[Phi]], {q, 0, 3}],
Band[{1, 2}] -> Exp[I ky a],
Band[{2, 1}] -> Exp[-I ky a], {1, 4} ->
Exp[-I ky a], {4, 1} -> Exp[I ky a]}, {4, 4}] //
MatrixForm] & /@
Table[n, {n, -\[Pi]/2, \[Pi]/2, 0.1}]] & /@
Table[n, {n, -\[Pi]/2, \[Pi]/2, 0.1}]]]];
然后使用Eigenvalue求其中一个的本征值
Eigenvalues[aa[[1]]]
输出结果就还是一个矩阵

但是如果直接对这个结果重新计算,就又能算出来值了

不知道为什么,还求大神解答。
a = 1;
\[Phi] = 2 \[Pi] /4;
aa = Union[
Flatten[N[
With[{ky = #1},
With[{kx = #1},
SparseArray[{Band[{1, 1}, {4, 4}] ->
Table[2 Cos[kx a - q \[Phi]], {q, 0, 3}],
Band[{1, 2}] -> Exp[I ky a],
Band[{2, 1}] -> Exp[-I ky a], {1, 4} ->
Exp[-I ky a], {4, 1} -> Exp[I ky a]}, {4, 4}] //
MatrixForm] & /@
Table[n, {n, -\[Pi]/2, \[Pi]/2, 0.1}]] & /@
Table[n, {n, -\[Pi]/2, \[Pi]/2, 0.1}]]]];
然后使用Eigenvalue求其中一个的本征值
Eigenvalues[aa[[1]]]
输出结果就还是一个矩阵

但是如果直接对这个结果重新计算,就又能算出来值了

不知道为什么,还求大神解答。
