2
その行列の2つの最初の固有値の差のカラープロットを作成したいと思います。これを行うために、最初に、2つのパラメータ "x"と "y"を持つ記号行列を定義しました。次に、固有ベクトルと固有値(短絡)を取得し、2つの最初の固有値との間のギャップを計算します。最後に(私はここに問題があると思う...)私は、関数 "energy_gap(x、y)"で結果をZに格納して評価するために点XとYのグリッドを作成し、プロットを行うには、それは動作しません....任意のアイデアなぜですか?pythonのシンボリック行列の固有値の密度プロットを作るには
import numpy as np
import numpy
import matplotlib.pyplot as plt
from sympy.utilities.lambdify import lambdify
from sympy import symbols
x = symbols("x")
y = symbols("y")
matrix = [[x+2, x,y],[y**2,x,3],[y+4,2,1]]
simbolic_matrix = lambdify((x,y), matrix,'numpy')
def eigen_system(x,y):
values, vectors = numpy.linalg.eig(np.array(simbolic_matrix(x,y)))
values_short = np.sort(values)
vectors_short = vectors[:,values.argsort()]
return values_short , vectors_short
def energy_gap(x,y):
values , vectors = eigen_system(x,y)
gap = abs(values[1])-abs(values[0])
return gap
def plot_energy_gap():
x = np.arange(1.1, 3.0, 0.1)
y = np.arange(1.1, 3.0, 0.1)
X, Y = np.meshgrid(x, y)
Z = energy_gap(X,Y)
im = plt.imshow(Z, cmap=plt.cm.RdBu,extent=(1.1,3,1.1,3))
plt.colorbar(im)
plt.show()
plot_energy_gap()
ああ!ありがとう!今はとてもうまくいく。 – Joe