各位高手,大家好,我自己编了两段小程序,个人认为,两段程序应该实现同一结果,但却不一样,想请各位高手给指点一下,哪一个正确,并且最好能帮我分析一下,从目前的计算结果来看,第二段程序应该是正确的,但第一段错在哪里,因为我在具体计算过程中M与S还要发生变化,如果M与S维数较大时,第一段程序计算时耗费的时间很短。计算结果中,omgans是解析解。 
第一段:
M=[ 0.6667 0.3333; 0.3333 0.6667];
S=[-0.5 0.5;-0.5 0.5];
N=1;
e0= zeros(N+1,1);
e0(1)=1;
en= zeros(N+1,1);
en(N+1)=1;
L=[0:0.05*pi:pi];
Imax=size(L) ;
Imax=Imax(2) ;
alafa=0.0
for II=1:Imax
BB=i*M;
AA= (2*S-alafa*en*(en'-exp(i*L(II)*(N+1))*e0')+(2-alafa)*e0*(e0'-exp(-i*L(II)*(N+1))*en'));
omg=eig(AA,BB );

w1(II)=omg(1,1);
w2(II)=omg(2,1);
end
omgans=L;
%figure
plot(L/pi,omgans, 'LineWidth',1.5)
hold on
plot(L/pi,real(w1)/(N+1) , 'LineWidth',1.5)

第二段:
M=[ 0.6667 0.3333; 0.3333 0.6667];
S=[-0.5 0.5;-0.5 0.5];
N=1;
e0= zeros(N+1,1);
e0(1)=1;
en= zeros(N+1,1);
en(N+1)=1;
L=[0:0.05*pi:pi];
Imax=size(L) ;
Imax=Imax(2) ;
alafa=0.0
for II=1:Imax

AA= (2*S-alafa*en*(en'-exp(i*L(II)*(N+1))*e0') +(2-alafa) *e0*(e0'-exp(-i*L(II) *(N+1))*en')) ;
BB=i*M;
Syms omg
BB=det(omg*eye(size(AA))- AA/BB);
[omg1]=solve(BB, 'omg');
omg1=double(omg1);
w1(II)=omg1(1,1);
w2(II)=omg1(2,1);
end
omgans=L;
plot(L/pi,omgans, 'LineWidth', 2)
hold on
plot(L/pi,real(w1)/(N+1), 'LineWidth',2)