• Tidak ada hasil yang ditemukan

Aplikasi Metode Beda Hingga Pada Persamaan Schrödinger Menggunakan Matlab

N/A
N/A
Protected

Academic year: 2019

Membagikan "Aplikasi Metode Beda Hingga Pada Persamaan Schrödinger Menggunakan Matlab"

Copied!
14
0
0

Teks penuh

(1)

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)

(2)

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

(3)

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);

(4)

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;

(5)

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

(6)

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)

(7)

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);

(8)

%

-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;

(9)

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);

(10)

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)

(11)

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);

(12)

Lampiran 2. Daftar Konstanta dan Penyelesaian Analitik

m = 9.11 x 10

-31

kg

= 6.628 x 10

-34

J.s

= 8.45 x 10

20

rad/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

(13)

(

( ( ) )

)

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

( )

( )( ( ) )

(14)

a.

Konstanta F

b.

Kontanta C

(

)

( )

dengan

m

(

( )

)

( ( ) )

c.

Kontanta D

(

)

( )

(

( )

)

( (

) )

d.

Kontanta A

, (

) (

)-

,

(

( )

)

(

( )

)-

e.

Kontanta B

, (

) (

)-

,

(

( )

)

(

Referensi

Dokumen terkait

Instrumen penelitian pada penelitian ini menggunakan kuesioner untuk mengetahui perilaku beresiko masyarakat terhadap demam berdarah dengue (DBD), dan keberadaan

Setelah berdiskusi siswa diharapkan mampu menyajikan dalam bentuk tulisan tentang perkembangan kerajaan –kerajaan Islam di Jawa.. Setelah berdiskusi siswa diharapkan

dalam pasal 11 ayat (1) dilakukan paling lama 1 (satu) bulan sejak diterimanya permohonan pengembalian kelebihan pembayaran pajak sehubungan diterbitkannya Surat

Demikian juga dengan kepemimpinan manajer yang menunjukkan kategori kurang baik dengan persentase 70%.Hasil penelitian ini juga menunjukkan bahwa adanya hubungan yang

Hal itu dipertegas melalui Permendiknas Nomor 41 Tahun 2007 tentang standar proses yang berbunyi perencanaanproses pembelajaran yang mensyaratkan pendidik untuk mengembangkan

yang ditemukan selama pengamatan adalah Gejala serangan Penggerek Batang padi, populasi Wereng hijau dan Walang sangit (lihat gambar 4, 5 dan Lampiran 2), Hasil pengamatan rata

Yohanes Indrayono/Iman Santoso, S.E.. Yohanes Indrayono/Iman

Swasakti Utama Tasikmalaya yang didasarkan pada hasil dari analisis faktor internal dan analisis faktor eksternal juga analisis SWOT yang kemudian datanya digunakan