Dispersion plot of frequency vs Bloch wave function, K
Afficher commentaires plus anciens
The problem is to plot w(omega) vs K(capital k) using the highlighted equation when beta is equal to zero. I need help with this, thank you in advance.
clear
clc
echo off
n2=2.89; %refractive index in length a
n1=3.38; %refractive index in length b
c=1e8; %volecity of light m/s
a=0.5*1e-6; %length of a in m
b=0.5*1e-6; %length of b in m
TM=(n1/n2)^2;
Cap_lamda=a+b; %period
w=0.0001:0.01:3*pi;
beta=0.0001:0.01:6*pi;
for i=1:length(w)
for j=1:length(beta)
beta=0;
k1(i,j)=sqrt((w(i)*n1/Cap_lamda).^2-(beta(j)/Cap_lamda)^2);
k2(i,j)=sqrt((w(i)*n2/Cap_lamda).^2-(beta(j)/Cap_lamda)^2);
AplusD(i,j)=cos(k2(i,j)*b)*cos(k1(i,j)*a)*2-sin(k2(i,j)*b)*sin(k1(i,j)*a)*(TM^-1*k1(i,j)/k2(i,j)+TM*k2(i,j)/k1(i,j));
K(w,beta)=(1/(Cap_lamda)^2)*(acos(AplusD(i,j)/2));
exp(-1i*K*Cap_lamda)=(1/2)*(AplusD(i,j))+[1 -1]*(((1/2*(AplusD(i,j)))^2)-1)^0.5;
%%M(i,j)=1/2*(AplusD(i,j))+[1 -1]*(((1/2*(AplusB(i,j)))^2)-1)^0.5;
%%M=exp(-1i*K*Cap_lamda);
end;
end;
Réponses (1)
Hi Emma,
The code has an error on the following line. ω(omega) is an array while betaβ is zero.
K(w,beta)=(1/(Cap_lamda)^2)*(acos(AplusD(i,j)/2));
Matlab does not support zero based indexing. Since ω is an array, you must also make sure that you are assigning an array having the same dimension as that of K.
Thanks
Gokul Nath S J
Catégories
En savoir plus sur Quantum Computing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!