Anda di halaman 1dari 35

JAWABAN FINAL TEST

FISIKA KOMPUTASI

Oleh
Ora Vide Sirituka
0906062459

JURUSAN FISIKA
FAKULTAS SAINS DAN TEKNIK
UNIVERSITAS NUSA CENDANA
KUPANG
2012
Soal 1.Formulasi Analitik
a. Darimana asal formula beda pusat 3 titik, berikut ini :
3
2 1 1 2
0
' ' '
2
2 2
) (
h
f f f f
x f

+
~
b. Jelaskan penggalan syntax program dibawah :

While x<x2 Do
Fx:= 1 exp (-12.5*x/68.1);
J;=j+1;
If (x=x1) Or (x=x2) Then what [i]:=what [i]+fx
Else
Begin
If(x>x1) And (x=x2) And (j mod 2=0)Then
what [i]:= What [i] + 4*fx;
If (x.x1) And (x<x2) And (j mod 2=1) Then
what [i]:=what [i] +2*fx;
End;
Jawab
a. Formula beda pusat 3 titik:
...
! 3 ! 2
) (
' ' '
3
' '
2
'
0
+ + + + = f
x
f
x
xf f x f
Semua turunan dievaluasi pada x=0, didapatkan bentuk persamaan
) (
6 2
) ( 1
4 ' ' '
3
' '
2
'
0
h O f
h
f
h
hf f h x f f + + = =
dimana , ) (
4
h O merupakan pendekatan kesalahan dalam orde 4 atau lebih tinggi. Subtraksi f-
1
dari f
1
pada persamaan (1) memberikan bentuk diferensial,
) (
6 2
4 ' ' '
2
1 1 '
h O f
h
h
f f
f +

=


Bentuk
' ' '
f akan terinduksi ketika h diperkecil menjadi
h
f f
f
2
1 1 '

~
yang merupakan formula beda pusat (central difference) dengan 3 titik, yang lebih dikenal
sebagai 3 point formula atau formula 3 titik.
Untuk formula beda pusat orde O(h
2
) ; formula 3 titik
h
f f
x f
2
) (
1 1
0
'

~

2
1 0 1
0
' '
2
) (
h
f f f
x f

+
~

3
2 1 1 2
0
' ' '
2
2
) (
h
f f f f
x f

+
~

Untuk lebih jelasnya untuk mendapatkan Formula beda pusat 3 titik yaitu:
Pembuktian Formulasi 3 titik untuk f(x
0
):
( ) ()

()

()

()
( )()

()

()

()
( ) ( )

()

() . . . . . . . . . (1)
( ) ()

()

()

()

()
( )()

()

()

()

()

( ) ( )

()

()

() . . . . . (2)
Untuk mengeliminasi f(x) dari kedua persamaan, maka persamaan (1) dan (2) diambil
sehingga:
( ) ( )

()

()
( ) ( )

()

()

()

sehingga:
( ) ( )

()

()
( ) ( )

()

()

()
2( ) ( ) ( ) ( )

()

()
2( ) ( ) ( ) ( )

()

2

() ( ) ( ) ( ) ( )
()
()()()()


()


b. Penjelasan penggalan syntax program adalah sebagai berikut:
Program ini adalah penggalan program yang menggunakan metode Simpson 1/3.
Ketika x lebih kecil x2 maka akan dikerjakan oleh program (while x<x2 Do)
Fx:= 1-exp(-12.5*x/68.1) merupakan rumusan atau persamaan untuk mencari nilai fx
nya.
j :=j+1; berarti bahwa nilai untuk variable j= j+1
If (x=x1) atau (x=x2) Then what [i]:=what [i]+fx berarti bahwa jika nilai x sama
dengan x1atau nilai x sama dengan x2 maka nilai i= i+fx
Else menunjukkan operasi yang lainnya
Begin berarti memulai program
If(x>x1) And (x=x2) And (j mod 2=0)Then menggambarkan bahwa jika x>x1 dan
x=x2 dan nilai j dari operasi hasil bagi terhadap 2=0 maka
what [i]:= What [i] + 4*fx; i= i+4fx
If (x>x1) And (x<x2) And (j mod 2=1) Then jika x lebih besar x1 dan x lebih kecil
x2 dan hasil bagi nilai j terhadap 2=1 maka
End; program berakhir
Program ini menggambarkan metode Simpson 1/3 yang mana dalam list program ini
menggambarkan cara jalannya program. Dalam penggalan program ini juga
menjelaskan tentang aturan Simpson untuk fungsi ganjil dan genap. Jika saat program
dijalankan dan tidak memenuhi aturan untuk fungsi ganjil maka program akan
dilanjutkan ke aturan untuk fungsi genap lalu berhenti. Tapi apabila memenuhi fungsi
ganjil maka program akan berhenti. Demikian seterusnya.


Soal 2. Diferensial

Seorang mahasiswa fisika bermassa 60 kg meloncat dari Heli Thunder yang
terbang diam di atas Penfui, dan mengalami percapatan (dv/dt).Jika parasut
mengalami resistansi udara Fu = -cv, dimana c= 12,5 kg/s , konstanta gravitasi (g
= 9,8 m/s
2
);
a. Rumuskan solusi analitiknya untuk y(t), v(t) dan a(t)
b. Rumuskan formulasi untuk a(t) menggunakan metode beda pusat 3 titik!
c. Tuliskan program dan running untuk mendapatkan solusi!
Jawab
Dik : m = 60 kg
a =


Fu = -cv
c = 12,5 Kg/s
g = 9,8 m/s
2
dit : a. solusi analitik untuk y(t), V(t), dan a(t)
b. Rumuskan formulasi untuk a(t) menggunakan metode beda pusat 3
titik.
c. program dan running untuk mendapatkan solusi.
Jawab:
a. solusi analitik untuk y(t), V(t), dan a(t)


F= F
0
+ F
u ;
F
0
= mg, Fu = -cv
F = mg cv
Untuk memperoleh y(t) maka terlebih dulu dicari v(t) ;

)
(

(
.

/
)
Jika pada t = 1
v(t=1) = ) 1 (
5 , 12
60 8 , 9
1 ) 60 / 5 , 12 (

e

= ) 1 (
5 , 12
588
) 2083 , 0 (
e

= 8,845m/s

Setelah diperoleh V(t)
,
lalu diintegralkan untuk memperoleh y(t) ;
V(t) =

,
.

/
-

,
.

/
-


,
.

/
-

(
.

.
.

/
/

.
.

/
/
() ()

.
.

/
/-
Pada t=1 maka:
() ()

(
.

/
)-
() 4,5767 m.
Setelah diperoleh Y(t), maka sekarang di cari a(t) ;
V(t) =

,
.

/
-
()

(
.

/
)
a
.

/

Pada t =0 maka:
0 ) 60 / 5 . 12 (
8 . 9 ) (

= e t a

) 0 (
8 . 9 ) (

= e t a

2
8 , 9 ) (
s
m
t a =

pada t=1

.



b.Formulasi untuk a(t) menggunakan metode beda pusat 3 titik
Untuk mendapatkan rumusan a(t) sebelumnya kita harus menurunkan atau
mendeferensialkan v(t)
) 1 ( ) (
) / ( t m c
e
c
gm
t v

=

dt
dv
t a = ) (

dt
e
c
gm
d
t a
t m c
) 1 ( (
) (
) / (

=

t m c
e
m
c
c
gm
t a
) / (
) (

=

t m c
e g t a
) / (
) (

=

Kemudian hasil yang diperoleh dimasukan ke formula beda pusat 3 titik
3
2 1 1 2
0
' ' '
2
2
) (
h
f f f f
x f

+
~

Secara numeric juga dapat dituliskan
t :=y-(i-2)*h;
a(t) := 9.8*(exp(-12.5*t/60));
z[i]:=at;
dt:= (z[1]-2*z[2]+z[3]/sqr h);

c. Program dan hasil runingnya
Program yang dibuat untuk mencari solusi dari kasus parasut yaitu menentukan nilai a(t).
Solusi ini menggunakan program TPW 1,5 yang di buat dengan metode beda pusat.
List programnya:
Program Turunan2_BedaPusat;
Uses wincrt;
Const eps = 1e-3;
Type Deret = Array[1..3] of Real;
Var ft, del, dt, zz, t, y, h : Real;
i, n : Integer;
z : Deret;
Begin
Clrscr;
Writeln ('program turunan II untuk beda pusat');
Writeln;
Write('':5,'masukkan nilai t:'); Readln(y) ;
Writeln;
h := 1;
n := 0;
zz :=0;
del :=10;
While Abs (del) >= eps Do
Begin
n := n+1;
For i := 1 To 3 Do
Begin
t := y- (i - 2)* h;
{ -dapat berubah sesuai bentuk fungsi -}
ft := t + 60/12.5*( exp( - 12.5*t/60) - 1);
ft := ft* 9.8* 60/12.5;
{------------------------------------------}
z[i]:=ft;
End;

dt := (z[1] - 2*z[2] + z[3])/sqr(h) ;
del := zz - dt ;
Writeln ('':5, h:10, '':5, dt:10,'':5, del:10) ;
zz := dt;
h := h/10;
End;
Writeln;
Writeln('':5,'Turunan Kedua f(t) :',dt:10);
Gotoxy(60,5); Write ('Tekan <Esc>') ;
Repeat Until Readkey = #27;
End.

Hasil runingnya

Hasil yang di dapatkan nilai dengan numeric sama dengan secara analitik tetapi dalam
penyelesaiannya numeric lebih cepat dan tingkat ketelitiannya lebih baik dari pada analitik.

Soal 3. Integrasi

1

10


20 cm
Berapakah besar arus listrik yang mengalir pada sebuah kawat sangat panjang yang sejajar
dengan sisi panjang sebuah bidang persegi yang ditembus fluks magnet sebesar 3,5 x 10
-6

Weber seperti pada gambar diatas ?
Hitunglah secara analitik dan programkan kasus ini secara komputasi numerik menggunakan
metode simpson 1/3 dan running hasilnya!
Jawab
Diketahui : Panjang (L)= 20 cm= 20/100=0,2 m
Batas bawah x
1
dan batas atas x
2
= 1 cm= (0,01 m) dan 11cm=(0,11 m)
fluks magnet sebesar 3,5 x 10
-6
Ditanya : hitung arus (i) secara anlitik dan numeric?
Penyelesaiannya:
Secara anlitik
d = B.dA
= B.L.dr
=

Dimana;

0
=4 10
-7
Wb/Am
i = arus (ampere)
L = panjang (m)
=fluks magnet (Weber)

}

=
2
1
0
2
x
x
x
dx
L
i

t |

}

=
11 , 0
01 , 0
0
2 , 0
28 , 6 5 , 3
x
dx
i


|
11 . 0
01 , 0 0
ln 2 , 0
98 , 21
x
i

=



A i
i
i
48 , 36
10 023776 , 6
10 98 , 21
398 , 2 2 , 0 10 4
10 98 , 21
7
6
7
6
=

=


=

t

Secara numerik
Diselesaikan dengan program TPW1,5 dan menggunakan metode simpson 1/3
List programnya:
Program Simpson;
Uses wincrt;
Const max = 100;
eps = 1e-3;
Type indeks = 1..max;
Luas = Array[indeks] of Real;
Var simp : Luas;
x, x1, x2, delt, delx, pita, fx : Real;
i, j : Integer;
Arus,fluks,L: real;
Begin
Clrscr;
Write('':5,'Batas bawah:'); Readln(x1) ;
Write('':5,'Batas atas:'); Readln(x2) ;
Writeln; Writeln;
i :=0;
delt :=100;
fluks:=35;
L:=0.2;
Repeat
Begin
i:=i+1;
j:=0;
simp[i]:=0;
x:=x1;
pita:=2*exp((i-1)*Ln(2));
delx:=(x2-x1)/pita;
While x<x2 Do
Begin
{-------dapat berubah sesuai bentuk fungsi -----}
fx :=1/x;
{-----------------------------------------------}
j:=j+1;
If (x=x1) Or (x=x2) Then simp[i]:=simp[i]+fx
Else
Begin
If(x>x1) And (x<x2) And (j mod 2=0) Then
simp[i]:=simp[i]+4*fx;
If (x>x1) And (x<x2) And (j mod 2=1) Then
simp[i]:=simp[i]+2*fx;
End;
x:=x+delx;
End;
simp[i]:=simp[i]*delx/3;
If i=1 Then
Writeln('':5, pita:5:0,'':5,simp[i]:15)
Else
Begin
delt:=simp[i]-simp[i-1];
Writeln('':5,pita:5:0,'':5,simp[i]:15,'':10,
delt:15);
End;
End;
Until Abs(delt)<eps;
Writeln('':5, 'Harga Integrasi :' ,simp[i]:15) ;
Arus:=fluks/(L*2*simp[i]);
Writeln('':5, 'Arus yang mengalir adalah :' ,Arus:15) ;
Gotoxy(60,5); Write('Tekan <Esc>') ;
Repeat Until Readkey = #27;
End.
Hasil runingnya:






Soal 4. Syarat awal & keadaan awal pada ODE
Sebuah kotak kubus bermassa M= 0,6 kg terikat pada ujung bawah
sebuah tali tak bermassa. Pada ujung tali atas diikatkan pada tiang
diam. Kubus menerima resistansi R=-B dy/dt dari udara, dimana B
adalah konstanta damping (Lihat Gambar). Persamaan geraknya:
, 0
2
2
= + + ky y
dt
d
B y
dt
d
M y(0)=1, y(0) = 0
Dimana y adalah perpindahan dari posisi statis, k adalah konstanta
pegas sebesar 100 kg/dtk
2,
dan B= 10 kg/det

Gunakan metode Runge Kutta orde kedua:
(a) y (t) untuk 0<t<0,05 detik dengan h = 0,025
(b) y (t) untuk 0<t<10 detik dengan h = 0,001


Jawab
Diketahui : massa (M)= 0,6 kg
resistansi R=-B dy/dt
B adalah konstanta damping (10 kg/det)
k adalah konstanta pegas sebesar 100 kg/dtk
2

Persamaan geraknya:

, 0
2
2
= + + ky y
dt
d
B y
dt
d
M y(0)=1, y(0) = 0
Ditanya : (a) y (t) untuk 0<t<0,05 detik dengan h = 0,025
(b) y (t) untuk 0<t<10 detik dengan h = 0,001
mengunakan metode Runge Kutta orde kedua:
Penyelesaiannya:
Secara analitik
M

y + B


y + ky = 0; y(0) = 1 ,

(0) = 1
Y = z = F (y,z,t)
Z
1
=

( )
Y(0) = 1
Z(0) = 0
Dengan :
a


U/ n = 1 , t = 0,025
K
1
= hf (Y
0
,Z
0
,t
0
) = hz
0
= 0,025 (0) = 0
l
1
= hf (Y
0
,Z
0
,t
0
) = h(-a(z
0
)-b(y
0
) = 0,025 (-16,66(0)-166,66(1)) = 4,1665
K
2
= hf (y
0
+K
1,
Z
0
+I
1
,t
0
) = hz
0
= h (Z
0
+ l
1
)= 0,025 (0 4,1665) = - 0,1041625
L
2
= hf (y
0
+K
1,
Z
0
+I
1
,t
1
) = hz
0
= h ((Z
0
+ l
1
) b(Y
0
) + K
1
)
= 0,025 ( 16,67 (0+(-4,1665) 166,66x1))
= 0,025 ( 16,67 (-4,1665 166,66x1))
= 0,025 (-97,210) = -2,43025
Y
n+1
= Y
n

(K
1
+

K
2
)
Y
1
= Y
0

(0

-

104)
= 1

(-

0,104)
= 1
= 0,948

Z
1
= Z
0

(

-4,

1665 (- 2,43025))
= Z
0

(

-4,

1665 +2,43025)
= 0

( )

n = 2, h =0.025,

()

) (

)
(*+ *+)

) (

)

( )

) ,(

) (

)-
,() () ()-
(
()
Maka

( )

()

( )


b. n = 1, t = 5, h=0,001

) ( ) ()

) (

)
()

) ,( ) ()-
(
()

( )

n = 2, t = 10, h=0.001

()

) ( )
( ) ()

((

) (

)
( )

)
*(

) (

)
*( ) ()

+
*() ()+
( )
()

)
(

( )

Secara Numerik
Listing programnya adalah sebagai berikut:

program runge_kutta_2;
uses wincrt;
var
n,i:integer;
k,l,y,z: array[0..50]of real;
h,k1,k2,l1,l2,B,x,a,c,M:real;
begin
clrscr;
write('Masukkan jumlah iterasi (maks. 50):');readln(n);
write('Masukkan h :');readln(h);
z[0]:=0;
y[0]:=1;
B:=10;
x:=100;
write('Masukan M :');readln(M);writeln;
writeln;
for i:=1 to n do
begin
a:=B/M;
c:=x/M;
k[i]:=h*z[i-1];
l[i]:=h*((-a*z[i-1])-(c*y[i-1]));
k[i+1]:=h*(z[i-1]+l[i]);
l[i+1]:=h*(-a*(z[i-1]+l[i])-(c*y[i-1])+k[i]);
y[i]:=y[i-1]+(0.5*(k[i]+k[i+1]));
z[i]:=z[i-1]+(0.5*(l[i]+l[i+1]));
writeln('k[',i,']=',k[i]:11:5,'; l[',i,']=',l[i]:11:5);
writeln('k[',i+1,']=',k[i+1]:11:5,'; l[',i+1,']=',l[i+1]:11:5);
writeln('y[',i,']=',y[i]:11:5,'; z[',i,']=',z[i]:11:5);
writeln;
end;
readln;
end.
Hasil runningnya
a. untuk h =0.025

b. untuk h=0.001


Soal 5. Soal 4. Syarat awal & keadaan awal pada ODE

Sebuah rangkaian ditujukan pada gambar memiliki induktansi diri L=80H,
Resisitensi R=30ohm, dan sumber tegangan V=12 volt. Jika saklar ditutup
pada t=0, arus I(t) memenuhi
L d/dt I(t) +RI(t)=E , I(O)=0
Tentukan arus yang mengalir untuk 10 0 s s t detik menggunakan metode
Runge Kutta orde kedua, ketiga, dan keempat dengan h=0,1
Jawab
Diketahui : induktansi diri L=80H
Resisitensi R=30ohm
sumber tegangan V=12 volt
Ditanya : arus yang mengalir untuk 10 0 s s t detik menggunakan metode Runge Kutta
orde kedua, ketiga, dan keempat dengan h=0,1?
Penyelesaiannya:
Secara analitik



) , ( ) ( ) ( t I f
L
E
t I
L
R
t I
dt
d
+ +
- metode Runge Kutta orde dua :





n = 0(t = 0.1)
K
1
= 0.1[(-0.375)(0)+0.15] = 0.015
K
2
= 0.1[(-0.375)(0+0.015)+0.15] = 0,144375
I
1
= I
0
+ (K
1
+K
2
)=0 =0+1/2(0.015+0.144375)=0.0796875
n = 0(t = 0.1)
K
1
= 0.1[(-0.375)(0.0796875)+0.15] = 0.012
K
2
= 0.1[(-0.375)(0.079687+0.012)+0.15] = 0.0115
I
2
= I
1
+ (K
1
+K
2
)=0.079687-1/2 (0.012+0.0115)=0,068126
Secara numerik
Solusinya menggunakan program TPW 1,5 dengan penyelesaiannya digunakan program
Range Kutta orde dua ,metode Heun.
List programnya
Program Runge_Kutta_orde2;
Uses wincrt;
Const eps=1e-5;
delx=0.1;
type selang=array[0..1000] of real;
) 2 1 (
2
1
) 1 ( 2
1
1
k k I I
L
E
k In
L
R
h k
L
E
I
L
R
h k
n n
+ + =
(

+ + =
(

+ =
+
var I, k: selang;
y, ka, delt, t:real;
n, j, m: integer;
begin
write('masukan nilai awal(I0):'); readln(I[0]);
writeln;
n:=0; m:=1;
writeln('t(detik)':10,'I(amp)':10, 'Ketelitian':20);
repeat
begin
n:=n+1;
for j:=1 to 2 do
begin
if j=1 then
begin
y:=I[n-1];
end else
begin
y:=I[n-1]+k[1];
end;
k[j]:=delx*(-0.375*y+0.15);
end;
I[n]:=I[n-1]+0.5*(k[1]+k[2]);
ka:=I[n];
delt:=I[n]-I[n-1];
if (n/10)= m then
begin
writeln(m:5,ka:15:5,delt:25);
m:=m+1;
end;
end;
until delt<eps;
end.
Hasil runningnya


- metode Runge Kutta orde tiga
secara analitik
untuk n=0 (t=0,1);
015 , 0
1
=
(

+ =
L
E
I
L
R
h k
( ) 0148 , 0
2
1
2
1 2
=
(

+ + =
L
E
k I
L
R
h k
n

( ) 0144 , 0 2
2 1 3
=
(

+ + =
L
E
k k I
L
R
h k
n

( )
( )
0886 , 0
0144 , 0 0148 , 0 4 015 , 0
6
1
0
4
6
1
1
1
3 2 1 1
=
+ + + =
+ + + =
=
l
I
k k k I I
n n

Secara numerik
Program Runge_Kutta_orde3;
Uses wincrt;
Const eps=1e-5;
delx=0.1;
type selang=array[0..1000] of real;
var I, k: selang;
y, ka, delt, t:real;
n, j, m: integer;
begin
write('masukan nilai awal(I0):'); readln(I[0]);
writeln;
n:=0; m:=1;
writeln('t(detik)':10,'I(amp)':10, 'Ketelitian':20);
repeat
begin
n:=n+1;
for j:=1 to 3 do
begin
if j=1 then
begin
y:=I[n-1];
end else
begin
y:=I[n-1]+k[1];
end;
k[j]:=delx*(-0.37*y+0.15);
end;
I[n]:=I[n-1]+0.17*(k[1]+4*k[2]+k[3]);
ka:=I[n];
delt:=I[n]-I[n-1];
if (n/10)= m then
begin
writeln(m:5,ka:15:5,delt:25);
m:=m+1;
end;
end;
until delt<eps;
end.
Hasil runningnya

- metode Runge Kutta orde empat
Secara analitik
Untuk n=0 (t=0,1);
015 , 0
1
=
(

+ =
L
E
I
L
R
h k
( ) 0148 , 0
2
1
2
1 2
=
(

+ + =
L
E
k I
L
R
h k
n

( ) 01486 , 0
2
1
2
2 3
=
(

+ + =
L
E
k I
L
R
h k
n

( ) 0144 , 0
3 4
=
(

+ + =
L
E
k I
L
R
h k
n

( )
( )
08872 , 0
0144 , 0 0148 , 0 4 015 , 0
6
1
0
2 2
6
1
1
1
4 3 2 1 1
=
+ + + =
+ + + + =
=
l
I
k k k k I I
n n

Secara numerik
List programnya
Program Runge_Kutta_orde4;
Uses wincrt;
Const eps=1e-5;
delx=0.1;
type selang=array[0..1000] of real;
var I, k: selang;
y, ka, delt, t:real;
n, j, m: integer;
begin
write('masukan nilai awal(I0):'); readln(I[0]);
writeln;
n:=0; m:=1;
writeln('t(detik)':10,'I(amp)':10, 'Ketelitian':20);
repeat
begin
n:=n+1;
for j:=1 to 4 do
begin
if j=1 then
begin
y:=I[n-1];
end else
begin
y:=I[n-1]+k[1];
end;
k[j]:=delx*(-0.37*y+0.15);
end;
I[n]:=I[n-1]+0.166*(k[1]+2*k[2]+2*k[3]+k[4]);
ka:=I[n];
delt:=I[n]-I[n-1];
if (n/10)= m then
begin
writeln(m:5,ka:15:5,delt:25);
m:=m+1;
end;
end;
until delt<eps;
end.
Hasil runningnya


Soal 6. Soal Bonus
Pada kasus fisis getaran tergandeng yang terjadi pada dua buah
titik massa (M) yang keduanya dihubungkan oleh sebuah pegas
yang berfungsi sebagai gaya pemulih harmonik (harmonic
restoring force) dan perpindahan posisi untuk benda pertama dan
kedua berturut-turut adalah x
1
dan x
2
memberikan dua persamaan
gerakan, yaitu
0 ) (
1 2 1 1
2
1
2
= + x x C x C
dt
x d
m dan 0 ) (
1 2 2 2
2
1
2
= + x x C x C
dt
x d
m
Dengan C1 dan C2 adalah tetapan-tetapan gaya yang bergantung pada panjang masing-masing
pendulum ,dengan C1 = C2 adalah kontanta pegas. Analisis dengan program dan grafik hasil
running!!
Jawab
Diketahui : x
1
dan x
2
memberikan dua persamaan gerakan, yaitu
0 ) (
1 2 1 1
2
1
2
= + x x C x C
dt
x d
m dan 0 ) (
1 2 2 2
2
1
2
= + x x C x C
dt
x d
m
Ditanya : Analisis dengan program dan grafik hasil running!!
Penyelesaiannya:

program osilasi_harmonik_tergandeng;
uses wincrt;
var
k1,l1,m1,n1,k2,l2,m2,n2,k3,l3,m3,n3,k4,l4,m4,n4,M,c,c1,c2,
h,t,ta,z1,z2,x1,x2,xx1,xx2,x01,x02,z01,z02:extended;
i:integer;
osilasi:text;
Procedure Analitik_khusus;
begin
t:=0;
x1:=x01;x2:=x02;
z1:=z01;z2:=z02;
writeln(osilasi,'metode analitik untuk keadaan khusus');
writeln(osilasi);
writeln(osilasi,' t(detik) x1(meter)
x2(meter) ');
writeln(osilasi,' ',t:5:4,' ',x1,' ',x2);
repeat
x1:=x01*cos(t*sqrt(c1/M))+z01*sqrt(M/c1)*sin(t*sqrt(c1/M));
x2:=x02*cos(t*sqrt(c2/M))+z02*sqrt(M/c2)*sin(t*sqrt(c2/M));
t:=t+h;
writeln(osilasi,' ',t:5:4,' ',x1,' ',x2);
until t>ta;
End;
procedure Euler;
Begin
t:=0;
x1:=x01;x2:=x02;
z1:=z01;z2:=z02;
writeln(osilasi,'metode Euler');
writeln(osilasi);
writeln(osilasi,' t(detik) x1(meter) x2(meter) ');
writeln(osilasi,' ',t:5:4,' ',x1,' ',x2);
repeat
k1:=h*z1;
l1:=h*(-(c1+c)*x1/M+c*x2/M);
m1:=h*z2;
n1:=h*(c*x1/M-(c2+c)*x2/M);
x1:=x1+k1;
z1:=z1+l1;
x2:=x2+m1;
z2:=z2+n1;
t:=t+h;
writeln(osilasi,' ',t:5:4,' ',x1,' ',x2);
until t>ta;
End;
{ program telah dipenggal disini !!}
procedure Runge_Kutta_Orde_Empat;
begin
t:=0;
x1:=x01;x2:=x02;
z1:=z01;z2:=z02;
writeln(osilasi,'metode Runge-Kutta orde 4');
writeln(osilasi);
writeln(osilasi,'t(detik) x1(meter) x2(meter) ');
writeln(osilasi,' ',t:5:4,' ',x1,' ',x2);
repeat
k1:=h*z1;
l1:=h*(-(c1+c)*x1/M+c*x2/M);
m1:=h*z2;
n1:=h*(c*x1/M-(c2+c)*x2/M);
k2:=h*(z1+l1*0.5);
l2:=h*(-(c1+c)*(x1+k1*0.5)/M+c*(x2+m1*0.5)/M);
m2:=h*(z2+n1*0.5);
n2:=h*(c*(x1+k1*0.5)/M-(c2+c)*(x2+m1*0.5)/M);
k3:=h*(z1+l2*0.5);
l3:=h*(-(c1+c)*(x1+k2*0.5)/M+c*(x2+m2*0.5)/M);
m3:=h*(z2+n2*0.5);
n3:=h*(c*(x1+k2*0.5)/M-(c2+c)*(x2+m2*0.5)/M);
k4:=h*(z1+l3);
l4:=h*(-(c1+c)*(x1+k3)/M+c*(x2+m3)/M);
m4:=h*(z2+n3);
n4:=h*(c*(x1+k3)/M-(c2+c)*(x2+m3)/M);
x1:=x1+(k1+2*k2+2*k3+k4)/6;
z1:=z1+(l1+2*l2+2*l3+l4)/6;
x2:=x2+(m1+2*m2+2*m3+m4)/6;
z2:=z2+(n1+2*n2+2*n3+n4)/6;
t:=t+h;
writeln(osilasi,' ',t:5:4,' ',x1,' ',x2);
until t>ta;
End;
begin
M:=2; c1:=30; c2:=40; c:=0; x01:=4; x02:=5; z01:=0;z02:=40;
h:=0.1; ta:=2;{ta = t akhir}
assign(osilasi,'fisika.txt');rewrite(osilasi);
analitik_khusus;
writeln(osilasi);
Euler;
writeln(osilasi);
Runge_Kutta_Orde_Dua;
writeln(osilasi);
Runge_Kutta_Orde_Tiga;
writeln(osilasi);
Runge_Kutta_Orde_Empat;
Close(osilasi);
End
Hasil Running
Data hasil running didapatkan untuk analisis kasus yang dilakukan dengan cara memvariasikan
nilai konstanta pegas (C), besarnya tetapan gaya yang bekerja pada massa benda pertama (C1),
tetapan gaya pada benda kedua (C2), lebar langkah (h), dan kelajuan awal (Z01).
Pada kasus khusus C=0 yang diamati hanya untuk perpindahan pendulum pertama yang tidak
diberikan kelajuan awal dan ketika lebar langkah h=0,1. Hasil yang diperoleh dengan metode
Euler jauh menyimpang dari hasil analitiknya, sedangkan metode Runge-Kutta menunjukan hasil
yang mendekati nilai analitiknya. Keakuratan hasil yang diperoleh bertambah baik dengan
bertambahnya orde metode Runge-Kutta, sehingga metode Runge-Kutta orde empat lebih baik
daripada metode lain yang digunakan.

Gambar . Simpatetik dengan (M= 2 kg, C1= 30 N/m, C2= 40 N/m, C= 0 N/m, h= 0.1, Z01= 10
m/s)

Ketika digunakan nilai lebar langkah h=0,001, dan hasil yang diperoleh untuk setiap metode
memberikan nilai yang hampir sama dengan nilai analitiknya.

Gambarnya adalah seperti dibawah ini:

Gambar Simpatetik dengan (M= 2 kg, C1= 30 N/m, C2= 40 N/m, C= 0 N/m, h= 0.001)