Lampiran 1. Kode Pemrograman Visualisasi gelombang pada partikel dengan
potensial halang.
clc
L=Str2num(get(handles.edit1,'String')); Ni=Str2num(get(handles.edit2,'String')); ni=Str2num(get(handles.edit6,'String')); m=Str2num(get(handles.edit5,'String')); ii=Str2num(get(handles.edit9,'String')); N=Ni;
h=L/(N+1);
set(handles.edit3,'String',h); hplank=6.628*10^-34;
omega=8.45*10^20; Vh=0.5*m*omega^2*h^2; Eni=5.6*10^-13*(ni+0.5);
set(handles.edit4,'string',Vh); set(handles.edit7,'String',Eni); k2=(2*m*(Vh-Eni)/hplank^2)^0.5; k1=(2*m*(Eni)/hplank^2)^0.5; Ai=2;
x1=linspace(-L,0,200); xxx=linspace(0,L,(N+2)); x3=linspace(L,2*L,200);
R=(sin(k2*L))/(sin(k2*L)^2+(4*k1^2*k2^2/(k1^2-k2^2)^2)); Bi=(R*Ai^2)^0.5;
Psi1=Ai*exp(i*k1*x1)+Bi*exp(-i*k1*x1); alpha=Ai*exp(i*k1*0)+Bi*exp(-i*k1*0);
if Eni<Vh QQi=Ai+Bi;
Psi2i=QQi*exp(-k2*xxx); beta=QQi*exp(-k2*L); Fi=beta/(exp(i*k1*2*L)); Psi3=Fi*exp(i*k1*x3); % Psi Analatik
n=N;
%Membuat Matriks A Berdiagonal Sesuai Penyelesaian Finit Beda Hingga
for ii=1:n
A(ii,ii)=(2+h^2*((k2)^2));
end
for ii=1:n-1 A(ii,ii+1)=-1;
end
for ii=2:n A(ii,ii-1)=-1;
end
% Penyusunan Vektor berdiri b b(1,1)=alpha;
for ii=2:n-1 b(ii,1)=0;
end
b(n,1)=beta;
%Kalibrasi b kedalam A
for ii=1:n
A(ii,n+1)=b(ii,1);
end
for j=1:(n-1)
% mulai proses pivot
if (A(j,j)==0)
u=A(j,p); v=A(j+1,p); A(j+1,p)=u; A(j,p)=v;
end end
%akhir proses pivot jj=j+1;
for ii=jj:n
m=A(ii,j)/A(j,j);
for k=1:(n+1)
A(ii,k)=A(ii,k)-(m*A(j,k));
end end end
%Proses Substitusi mundur x(n,1)=A(n,n+1)/A(n,n);
for ii=n-1:-1:1 S=0;
for j=n:-1:ii+1 S=S+A(ii,j)*x(j,1);
end
x(ii,1)=(A(ii,n+1)-S)/A(ii,ii);
end
%Menampilkan Vektor ww ww=zeros(1,n+2);
ww(1,1)=real(alpha); ww(1,N+2)=real(beta);
for uu=2:N+1
ww(:,uu)=real(x(uu-1,:))';
end
P=zeros(1,2*N); Pi=zeros(1,2*N); NN=N+2;
for oo=1:2:2*NN;
P(:,oo)=(xxx((oo+1)/2));
end
for ooo=2:2:2*NN;
P(:,ooo)=(xxx(ooo/2));
end
for oooo=1:4:2*NN; Pi(:,oooo)=10;
end
for ooooo=2:4:2*NN; Pi(:,ooooo)=-10;
end
for oooooo=3:4:2*NN; Pi(:,oooooo)=-10;
end
for ooooooo=4:4:2*NN; Pi(:,ooooooo)=10;
end
format long e
Transposex=xxx'; TranposePsi2=ww';
Tampil=[Transposex TranposePsi2 real(Psi2i)']
plot(P,Pi,'g',x1,real(Psi1),xxx,ww,'r',x3,real(Psi3)); axis([-L 2*L -8 8])
else
Psi2=C*exp(k2*xxx)+D*exp(-k2*xxx); real(C)
real(D)
yyy=C*exp(k2*(0+h))+D*exp(-k2*(0+h)) beta=C*exp(k2*L)+D*exp(-k2*L);
Fi=beta/(exp(i*k1*L)); Psi3=Fi*exp(i*k1*x3); % Psi Analatik
n=N;
%Membuat Matriks A Berdiagonal Sesuai Penyelesaian Finit Beda Hingga
for ii=1:n
A(ii,ii)=(2+h^2*((k2)^2));
end
for ii=1:n-1 A(ii,ii+1)=-1;
end
for ii=2:n A(ii,ii-1)=-1;
end
% Penyusunan Vektor berdiri b b(1,1)=alpha;
for ii=2:n-1 b(ii,1)=0;
end
b(n,1)=beta;
%Kalibrasi b kedalam A
for ii=1:n
A(ii,n+1)=b(ii,1);
end
for j=1:(n-1)
% mulai proses pivot
if (A(j,j)==0)
for p=1:n+1 u=A(j,p); v=A(j+1,p); A(j+1,p)=u; A(j,p)=v;
end end
%akhir proses pivot jj=j+1;
for ii=jj:n
m=A(ii,j)/A(j,j);
for k=1:(n+1)
A(ii,k)=A(ii,k)-(m*A(j,k));
end end end
%Proses Substitusi mundur x(n,1)=A(n,n+1)/A(n,n);
for ii=n-1:-1:1 S=0;
for j=n:-1:ii+1 S=S+A(ii,j)*x(j,1);
end
x(ii,1)=(A(ii,n+1)-S)/A(ii,ii);
end
%Menampilkan Vektor ww ww=zeros(1,n+2);
for uu=2:N+1
ww(:,uu)=real(x(uu-1,:))';
end
P=zeros(1,2*N); Pi=zeros(1,2*N); NN=N+2;
for oo=1:2:2*NN;
P(:,oo)=(xxx((oo+1)/2));
end
for ooo=2:2:2*NN;
P(:,ooo)=(xxx(ooo/2));
end
for oooo=1:4:2*NN; Pi(:,oooo)=10;
end
for ooooo=2:4:2*NN; Pi(:,ooooo)=-10;
end
for oooooo=3:4:2*NN; Pi(:,oooooo)=-10;
end
for ooooooo=4:4:2*NN; Pi(:,ooooooo)=10;
end
format long e
Transposex=xxx'; TranposePsi2=ww';
Tampil=[Transposex TranposePsi2 real(Psi2)'] plot(P,Pi,'g',x1,real(Psi1),xxx,ww,'r',x3,real(Psi3)); axis([-L 2*L -8 8])
end
case 2 clc
L=Str2num(get(handles.edit1,'String')); Ni=Str2num(get(handles.edit2,'String')); ni=Str2num(get(handles.edit6,'String')); m=Str2num(get(handles.edit5,'String')); ii=Str2num(get(handles.edit9,'String')); N=Ni;
h=L/(N+1);
set(handles.edit3,'String',h); hplank=6.628*10^-34;
omega=8.45*10^20; Vh=0.5*m*omega^2*h^2; Eni=5.6*10^-13*(ni+0.5);
set(handles.edit4,'string',Vh); set(handles.edit7,'String',Eni); k2=(2*m*(Vh-Eni)/hplank^2)^0.5; k1=(2*m*(Eni)/hplank^2)^0.5; Ai=2;
x1=linspace(-L,0,200); xxx=linspace(0,L,(N+2)); x3=linspace(L,2*L,200);
R=(sin(k2*L))/(sin(k2*L)^2+(4*k1^2*k2^2/(k1^2-k2^2)^2)); Bi=(R*Ai^2)^0.5;
Psi1=Ai*exp(i*k1*x1)+Bi*exp(-i*k1*x1); alpha=Ai*exp(i*k1*0)+Bi*exp(-i*k1*0);
if Eni<Vh QQi=Ai+Bi;
Fi=beta/(exp(i*k1*2*L)); Psi3=Fi*exp(i*k1*x3); % Psi Analatik
n=N;
%Membuat Matriks A Berdiagonal Sesuai Penyelesaian Finit Beda Hingga
for ii=1:n
A(ii,ii)=(2+h^2*((k2)^2));
end
for ii=1:n-1 A(ii,ii+1)=-1;
end
for ii=2:n A(ii,ii-1)=-1;
end
% Penyusunan Vektor berdiri b b(1,1)=alpha;
for ii=2:n-1 b(ii,1)=0;
end
b(n,1)=beta;
%Kalibrasi b kedalam A
for ii=1:n
A(ii,n+1)=b(ii,1);
end
for j=1:(n-1)
% mulai proses pivot
if (A(j,j)==0)
for p=1:n+1 u=A(j,p); v=A(j+1,p); A(j+1,p)=u; A(j,p)=v;
end end
%akhir proses pivot jj=j+1;
for ii=jj:n
m=A(ii,j)/A(j,j);
for k=1:(n+1)
A(ii,k)=A(ii,k)-(m*A(j,k));
end end end
%Proses Substitusi mundur x(n,1)=A(n,n+1)/A(n,n);
for ii=n-1:-1:1 S=0;
for j=n:-1:ii+1 S=S+A(ii,j)*x(j,1);
end
x(ii,1)=(A(ii,n+1)-S)/A(ii,ii);
end
%Menampilkan Vektor ww ww=zeros(1,n+2);
ww(1,1)=real(alpha); ww(1,N+2)=real(beta);
for uu=2:N+1
ww(:,uu)=real(x(uu-1,:))';
end
NN=N+2;
for oo=1:2:2*NN;
P(:,oo)=(xxx((oo+1)/2));
end
for ooo=2:2:2*NN;
P(:,ooo)=(xxx(ooo/2));
end
for oooo=1:4:2*NN; Pi(:,oooo)=10;
end
for ooooo=2:4:2*NN; Pi(:,ooooo)=-10;
end
for oooooo=3:4:2*NN; Pi(:,oooooo)=-10;
end
for ooooooo=4:4:2*NN; Pi(:,ooooooo)=10;
end
format long e
Transposex=xxx'; TranposePsi2=ww';
plot(P,Pi,'y',x1,real(Psi1),xxx,real(Psi2i),x3,real(Psi3)); axis([-L 2*L -8 8])
else
C=(alpha/2)+((i*k1/(2*k2))*(Ai-Bi)); D=(alpha/2)-((i*k1/(2*k2))*(Ai-Bi)); Psi2=C*exp(k2*xxx)+D*exp(-k2*xxx); beta=C*exp(k2*L)+D*exp(-k2*L); Fi=beta/(exp(i*k1*L));
Psi3=Fi*exp(i*k1*x3); % Psi Analatik
n=N;
%Membuat Matriks A Berdiagonal Sesuai Penyelesaian Finit Beda Hingga
for ii=1:n
A(ii,ii)=(2+h^2*((k2)^2));
end
for ii=1:n-1 A(ii,ii+1)=-1;
end
for ii=2:n A(ii,ii-1)=-1;
end
% Penyusunan Vektor berdiri b b(1,1)=alpha;
for ii=2:n-1 b(ii,1)=0;
end
b(n,1)=beta;
%Kalibrasi b kedalam A
for ii=1:n
A(ii,n+1)=b(ii,1);
end
for j=1:(n-1)
% mulai proses pivot
if (A(j,j)==0)
end end
%akhir proses pivot jj=j+1;
for ii=jj:n
m=A(ii,j)/A(j,j);
for k=1:(n+1)
A(ii,k)=A(ii,k)-(m*A(j,k));
end end end
%Proses Substitusi mundur x(n,1)=A(n,n+1)/A(n,n);
for ii=n-1:-1:1 S=0;
for j=n:-1:ii+1 S=S+A(ii,j)*x(j,1);
end
x(ii,1)=(A(ii,n+1)-S)/A(ii,ii);
end
%Menampilkan Vektor ww ww=zeros(1,n+2);
ww(1,1)=real(alpha); ww(1,N+2)=real(beta);
for uu=2:N+1
ww(:,uu)=real(x(uu-1,:))';
end
P=zeros(1,2*N); Pi=zeros(1,2*N); NN=N+2;
for oo=1:2:2*NN;
P(:,oo)=(xxx((oo+1)/2));
end
for ooo=2:2:2*NN;
P(:,ooo)=(xxx(ooo/2));
end
for oooo=1:4:2*NN; Pi(:,oooo)=10;
end
for ooooo=2:4:2*NN; Pi(:,ooooo)=-10;
end
for oooooo=3:4:2*NN; Pi(:,oooooo)=-10;
end
for ooooooo=4:4:2*NN; Pi(:,ooooooo)=10;
end
format long e
Transposex=xxx'; TranposePsi2=ww';
plot(P,Pi,'y',x1,real(Psi1),xxx,real(Psi2),'m',x3,real(Psi3)); axis([-L 2*L -8 8])
end
case 3
bar(1:.5:10); case 4
plot(membrane); case 5
surf(peaks);
%
-function FileMenu_Callback(hObject, eventdata, handles) % hObject handle to FileMenu (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%
-function OpenMenuItem_Callback(hObject, eventdata, handles) % hObject handle to OpenMenuItem (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) file = uigetfile('*.fig');
if ~isequal(file, 0) open(file);
end
%
-function PrintMenuItem_Callback(hObject, eventdata, handles) % hObject handle to PrintMenuItem (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) printdlg(handles.figure1)
%
-function CloseMenuItem_Callback(hObject, eventdata, handles) % hObject handle to CloseMenuItem (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) selection = questdlg(['Close ' get(handles.figure1,'Name') '?'],...
['Close ' get(handles.figure1,'Name') '...'],...
'Yes','No','Yes');
if strcmp(selection,'No') return;
end
delete(handles.figure1)
L=Str2num(get(handles.edit1,'String')); Ni=Str2num(get(handles.edit2,'String')); ni=Str2num(get(handles.edit6,'String')); m=Str2num(get(handles.edit5,'String')); iii=Str2num(get(handles.edit9,'String')); N=Ni;
h=L/(N+1);
hplank=6.628*10^-34; omega=8.45*10^20; Vh=0.5*m*omega^2*h^2; Eni=5.6*10^-13*(ni+0.5);
k2=(2*m*(Vh-Eni)/hplank^2)^0.5; k1=(2*m*(Eni)/hplank^2)^0.5; Ai=2;
xxx=linspace(0,L,(N+2)); x3=linspace(L,2*L,200);
R=(sin(k2*L))/(sin(k2*L)^2+(4*k1^2*k2^2/(k1^2-k2^2)^2)); Bi=(R*Ai^2)^0.5;
n=N;
Psi1=Ai*exp(i*k1*x1)+Bi*exp(-i*k1*x1); alpha=Ai*exp(i*k1*0)+Bi*exp(-i*k1*0);
if Eni<Vh QQi=Ai+Bi;
Psi2i=QQi*exp(-k2*xxx); beta=QQi*exp(-k2*L); Fi=beta/(exp(i*k1*L)); Psi3=Fi*exp(i*k1*x3); % Psi Analatik
n=N;
%Membuat Matriks A Berdiagonal Sesuai Penyelesaian Finit Beda Hingga
for ii=1:n
A(ii,ii)=(2+h^2*((k2)^2));
end
for ii=1:n-1 A(ii,ii+1)=-1;
end
for ii=2:n A(ii,ii-1)=-1;
end
% Penyusunan Vektor berdiri b b(1,1)=alpha;
for ii=2:n-1 b(ii,1)=0;
end
b(n,1)=beta;
%Kalibrasi b kedalam A
for ii=1:n
A(ii,n+1)=b(ii,1);
end
for j=1:(n-1)
% mulai proses pivot
if (A(j,j)==0)
for p=1:n+1 u=A(j,p); v=A(j+1,p); A(j+1,p)=u; A(j,p)=v;
end end
%akhir proses pivot jj=j+1;
for ii=jj:n
m=A(ii,j)/A(j,j);
for k=1:(n+1)
A(ii,k)=A(ii,k)-(m*A(j,k));
end end end
%Proses Substitusi mundur x(n,1)=A(n,n+1)/A(n,n);
for ii=n-1:-1:1 S=0;
for j=n:-1:ii+1 S=S+A(ii,j)*x(j,1);
x(ii,1)=(A(ii,n+1)-S)/A(ii,ii);
end
%Menampilkan Vektor ww ww=zeros(1,n+2);
ww(1,1)=real(alpha); ww(1,N+2)=real(beta);
for uu=2:N+1
ww(:,uu)=real(x(uu-1,:))';
end
iiii=iii+1;
tras=real(Psi2i); format long e
Tr=ww; Tra=xxx; AAA=tras'; RT=[Tr' Tra']; tru=Tr(:,iiii); tra=Tra(:,iiii); trasi=tras(:,iiii); warior=abs(tru-trasi);
set(handles.edit15,'String',warior); set(handles.edit13,'String',trasi); set(handles.edit14,'String',tra); set(handles.edit10,'String',tra); set(handles.edit11,'String',tru);
else
C=(alpha/2)+((i*k1/(2*k2))*(Ai-Bi)); D=(alpha/2)-((i*k1/(2*k2))*(Ai-Bi)); Psi2=C*exp(k2*xxx)+D*exp(-k2*xxx); beta=C*exp(k2*L)+D*exp(-k2*L); Fi=beta/(exp(i*k1*L));
Psi3=Fi*exp(i*k1*x3); % Psi Analatik
n=N;
%Membuat Matriks A Berdiagonal Sesuai Penyelesaian Finit Beda Hingga
for ii=1:n
A(ii,ii)=(2+h^2*((k2)^2));
end
for ii=1:n-1 A(ii,ii+1)=-1;
end
for ii=2:n A(ii,ii-1)=-1;
end
% Penyusunan Vektor berdiri b b(1,1)=alpha;
for ii=2:n-1 b(ii,1)=0;
end
b(n,1)=beta;
%Kalibrasi b kedalam A
for ii=1:n
A(ii,n+1)=b(ii,1);
end
for j=1:(n-1)
% mulai proses pivot
if (A(j,j)==0)
A(j,p)=v;
end end
%akhir proses pivot jj=j+1;
for ii=jj:n
m=A(ii,j)/A(j,j);
for k=1:(n+1)
A(ii,k)=A(ii,k)-(m*A(j,k));
end end end
%Proses Substitusi mundur x(n,1)=A(n,n+1)/A(n,n);
for ii=n-1:-1:1 S=0;
for j=n:-1:ii+1 S=S+A(ii,j)*x(j,1);
end
x(ii,1)=(A(ii,n+1)-S)/A(ii,ii);
end
%Menampilkan Vektor ww ww=zeros(1,n+2);
ww(1,1)=real(alpha); ww(1,N+2)=real(beta);
for uu=2:N+1
ww(:,uu)=real(x(uu-1,:))';
end
format long e
iiii=iii+1; tras=real(Psi2); Tr=ww;
Tra=xxx; AAA=tras'; RT=[Tr' Tra']; tru=Tr(:,iiii); tra=Tra(:,iiii); trasi=tras(:,iiii); warior=abs(tru-trasi);
set(handles.edit15,'String',warior); set(handles.edit13,'String',trasi); set(handles.edit14,'String',tra); set(handles.edit10,'String',tra); set(handles.edit11,'String',tru);
Lampiran 2. Daftar Konstanta dan Penyelesaian Analitik
m = 9.11 x 10
-31kg
= 6.628 x 10
-34J.s
= 8.45 x 10
20rad/s.
Untuk E < V
1.
Menentukan nilai potensial (V)
dengan
(
)(
)
(
)
2.
Menentukan nilai Energi (E)
(
)
dengan
(
)(
)
3.
Menentukan nilai
√
√
( ( )( ) )4.
Menentukan nilai
√
( )√
( ( )( ) )5.
Menentukan nilai konstanta
a.
Konstanta A = 2
b.
Kontanta B
(
( ( ) ))
c.
Kontanta C
Untuk E > V
1.
Menentukan nilai potensial (V)
dengan
m
(
)(
)
(
)
Joule
2.
Menentukan nilai Energi (E)
(
)
dengan
(
)(
)
Joule
3.
Menentukan nilai
√
√
( ( )( ) )4.
Menentukan nilai
√
( )√
( )( ( ) )a.
Konstanta F
b.
Kontanta C
(
)
( )dengan
m
(
( ))
( ( ) )c.
Kontanta D
(
)
( )(
( ))
( () )
d.
Kontanta A
, (
) (
)-
,
(
( )
)
(
( )
)-
e.
Kontanta B
, (
) (
)-
,
(
( )