matlab, funckcja

0

hej, chciałbym obliczyć wartości własne takiej macierzy i potem ich wykres, wydaje sie wszystko ok ale coś jest nie tak ? :C

function [y] = energy(kx,ky,kz)
eV = 1.6 * 10^(-19);
m = 9.1 * 10^(-31);
g1 = 6.85;
g2 = 2.1;
g3 = 2.9;
h = (6.62 * 10^(-34))/(2*pi);
P = (h^2*g1*(kx^2+ky^2+kz^2))/(2*m);
Q = (h^2*g2*(kx^2+ky^2-2*kz^2))/(2*m);
M = sqrt(3)*(h^2*g2*(kx^2-ky^2))/(m)-(1i*sqrt(3)*h^2*g3*(kx*ky))/(m);
L = (-1i*sqrt(3)*h^2*g3*(kx-1i*ky)*kz)/(m);
Ls = ctranspose(L);
Ms = ctranspose(M);
H = [P+Q L M 0;
    Ls P-Q 0 M;
    Ms 0 P-Q -L
    0 Ms -Ls P+Q].*(-1);
y = eig(H);
end
Error using  ^ 
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.

Error in energy (line 8)
P = (h^2*g1*(kx^2+ky^2+kz^2))/(2*m);
0

a ,gdy dodałem kropki przed zmiennymi kx,ky,kz (rozumiem ze musze dodać zeby narysować tą funkcje bo np. kx=010) to taki błąd

Error using horzcat
Dimensions of matrices being concatenated are not consistent.

Error in energy (line 14)
H = [P+Q L M 0;

1 użytkowników online, w tym zalogowanych: 0, gości: 1