Matrix 我想计算Mathematica中2x2矩阵的特征值,其中矩阵元素是函数

Matrix 我想计算Mathematica中2x2矩阵的特征值,其中矩阵元素是函数,matrix,wolfram-mathematica,eigenvalue,Matrix,Wolfram Mathematica,Eigenvalue,我对数学相当陌生。我想计算2x2矩阵的特征值,其中矩阵元素是2个变量的函数。我使用的代码如下所示: \[Phi] = Pi/4, t1 = 1, t2 = 1/3, U; f1[k1_, k2_] := Cos[\[Phi] + Sqrt[3] * k2] + Cos[\[Phi] - 3 k1/2 - Sqrt[3] k2/2] + Cos[\[Phi] + 3 k1/2 - Sqrt[3] k2/2], f1[k1_, k2_] := Cos[\[Phi] - Sqrt[3] * k2] +

我对数学相当陌生。我想计算2x2矩阵的特征值,其中矩阵元素是2个变量的函数。我使用的代码如下所示:

\[Phi] = Pi/4, t1 = 1, t2 = 1/3, U;
f1[k1_, k2_] := Cos[\[Phi] + Sqrt[3] * k2] + Cos[\[Phi] - 3 k1/2 - Sqrt[3] k2/2] + Cos[\[Phi] + 3 k1/2 - Sqrt[3] k2/2], f1[k1_, k2_] := Cos[\[Phi] - Sqrt[3] * k2] + Cos[\[Phi] + 3 k1/2 + Sqrt[3] k2/2] + Cos[\[Phi] - 3 k1/2 + Sqrt[3] k2/2];
g[k1_, k2_] := Exp[-\[ImaginaryJ] k1] + 2 Cos[Sqrt[3]* k2/2] Exp[-\[ImaginaryJ]  k1/2];
mat[k1_, k2_] = {{U - 2 *t2 * f1, t1*g}, {t1*Conjugate[g],  2 *t2 * f2 - U}};
Eigenvalues[mat]
正如你从代码中看到的,我有三个函数f1,f2和g,它们有两个参数k1和k2,并且给出了它们的形式。我需要对角化的矩阵是mat。我需要得到解析形式的特征值,然后绘制它们的wrt k1和k2。但在这段代码片段之后,当我尝试运行它时,我没有得到任何东西,也就是说,输出中没有任何东西。我该怎么处理呢

f1[k1_, k2_] := Cos[ϕ + Sqrt[3]*k2] + Cos[ϕ - 3 k1/2 - Sqrt[3] k2/2] +
   Cos[ϕ + 3 k1/2 - Sqrt[3] k2/2]

f1[k1_, k2_] := Cos[ϕ - Sqrt[3]*k2] + Cos[ϕ + 3 k1/2 + Sqrt[3] k2/2] +
   Cos[ϕ - 3 k1/2 + Sqrt[3] k2/2]

g[k1_, k2_] := Exp[-\[ImaginaryJ] k1] +
   2 Cos[Sqrt[3]*k2/2] Exp[-\[ImaginaryJ] k1/2];

mat[k1_, k2_] := {{U - 2*t2*f1, t1*g}, {t1*Conjugate[g], 2*t2*f2 - U}}

form = Eigenvalues[{{a, b}, {c, d}}]
{1/2(a+d-Sqrt[a^2+4bc-2ad+d^2]), 1/2(a+d+Sqrt[a^2+4BC-2A+d^2]))

{-((2f1)/3)+U,g},{共轭[g],(2f2)/3-U}

{1/3(-f1+f2-Sqrt[(f1+f2-3U)^2+9G共轭[g]], 1/3(-f1+f2+Sqrt[(f1+f2-3U)^2+9G共轭[g]])]


仔细比较,一个字符一个字符,与你所拥有的

ϕ=Pi/4;t1=1;t2=1/3;
f1[k1_,k2_]:=Cos[ϕ+Sqrt[3]*k2]+Cos[ϕ-3 k1/2-Sqrt[3] k2/2]+Cos[ϕ+3 k1/2-Sqrt[3] k2/2];
f2[k1_,k2_]:=Cos[ϕ-Sqrt[3]*k2]+Cos[ϕ+3 k1/2+Sqrt[3] k2/2]+Cos[ϕ-3 k1/2+Sqrt[3] k2/2];
g[k1_,k2_]:=Exp[-\[ImaginaryJ] k1]+2 Cos[Sqrt[3]*k2/2] Exp[-\[ImaginaryJ] k1/2];
mat[k1_,k2_]:={{U-2*t2*f1[k1,k2],t1*g[k1,k2]},{t1*Conjugate[g[k1,k2]],2*t2*f2[k1,k2]-U}};
Eigenvalues[mat[k1,k2]]

然后非常仔细地检查输出,以验证其是否正确。

FullSimplify[特征值[mat[k1,k2]]]
在我的设置中花费了大约100秒。
FullSimplify[form]
ϕ=Pi/4;t1=1;t2=1/3;
f1[k1_,k2_]:=Cos[ϕ+Sqrt[3]*k2]+Cos[ϕ-3 k1/2-Sqrt[3] k2/2]+Cos[ϕ+3 k1/2-Sqrt[3] k2/2];
f2[k1_,k2_]:=Cos[ϕ-Sqrt[3]*k2]+Cos[ϕ+3 k1/2+Sqrt[3] k2/2]+Cos[ϕ-3 k1/2+Sqrt[3] k2/2];
g[k1_,k2_]:=Exp[-\[ImaginaryJ] k1]+2 Cos[Sqrt[3]*k2/2] Exp[-\[ImaginaryJ] k1/2];
mat[k1_,k2_]:={{U-2*t2*f1[k1,k2],t1*g[k1,k2]},{t1*Conjugate[g[k1,k2]],2*t2*f2[k1,k2]-U}};
Eigenvalues[mat[k1,k2]]