Upload
ahmad-asari
View
217
Download
1
Embed Size (px)
Citation preview
7/26/2019 Praktikum Fisika Komputasi
1/15
Laporan Praktikum
Penyelesaian Pencarian Akar PersamaanMenggunakan Program Fortran90Diajukan untuk Memenuhi Laporan Kegiatan Praktikum Fisika Komputasi
Disusun oleh :Nama : Ahmad Hasan Asari
NIM : 14/362512/PA/15766Hari, Tanggal : Kamis, 24 Maret 2016
Asisten : Jihan Ahmad
: Halim Hamadi
: Muhammad Egi
PROGRAM STUDI FISIKA
JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN
ALAM
UNIVERSITAS GADJAH MADA
YOGYAKARTA2016
7/26/2019 Praktikum Fisika Komputasi
2/15
1 Pendahuluan
1.1 Latar Belakang
Secara garis besar, ilmu fisika dapat dipelajari lewat 3 jalan, yaitu per-tama, dengan menggunakan konsep atau teori fisika yang akhirnya melahirkanfisika teori. Kedua, dengan cara eksperimen yang menghasilkan aliran fisikaeksperimental. Dan ketiga, fisika bisa dipelajari lewat simulasi fenomena alamyang sangat mengandalkan komputer serta algoritma numerik. Metode nu-merik digunakan untuk menyelesaikan persoalan dimana perhitungan secaraanalitis tidak dapat digunakan.
Banyak kasus didalam fisika yang terkait masalah pencarian akar darisuatu persamaan diantaranya kasus pencarian titik dengan medan listrik sama
dengan nol (E = 0), pusat massa suatu benda, titik kesetimbangan danlain - lain. Sedangkan tidak semua persamaan langsung secara analitis bisadicari akar - akar persamaannya. Oleh karena itu metode numerik dalammasalah pencarian akar - akar persamaan sangat membantu dalam penyelesa-ian masalah tersebut.
1.2 Tujuan
Tujuan dari praktikum fisika komputasi ini adalah memahami metodeNewton-Rhapson dalam mencari akar sebuah persamaan terkait masalah dibidang fisika.
2 Dasar Teori
2.1 Metode Pencarian Akar Bisection
Dinamakan metode Bisectiondidasarkan atas teknis metode ini adalahbelah dua. Metode Bisectiondirumuskan berdasarkan Teorema yang meny-atakan bahwa bila fungsi kontinu dalam selang/interval (a, b) dan f(a) sertaf(b) berlawanan tanda, makaf() untuk suatu bilangan sedemikian hinggaa < < b. Dengan metode Bisection, nilai pertama kali diaproksimasidengan memilih x0 yang didefinisikan dengan x0= a+b2 . Bila f(x0) = 0 atauf(x0) dekat kepada nilai 0 untuk suatu nilai toleransi yang diberikan makax0 adalah nilai akar darif(x) . Sebaliknya bila f(x0)= 0 atau f(x0) dekatkepada nilai 0 tetapi tidak memenuhi suatu nilai toleransi yang diberikan,maka berdasarkan Teorema tersebut ada dua kemungkinan yakni nilai akarberada di antara a dan x0 atau nilai akar berada di antara x0 dan b. Darisalah satu kemungkinan ini, metode Bisectionkembali akan digunakan. Secarageometris, metode Bisection yang dikemukakan di atas dapat diilustrasikanmelalui gambar grafik berikut ini.
1
7/26/2019 Praktikum Fisika Komputasi
3/15
Gambar 1: Ilustrasi metode pencarian akar Bisection
Kelebihan metode bisection :
Sangat simple, konvergen terjamin
Kekurangan metode bisection :
Proses konvergen lamban.
2.2 Metode Pencarian Akar Newton-Raphson
Metode Newton-Raphson didasarkan pada aproksimasi linear fungsi danmenggunakan prinsip kemiringan (Tangen) kurva fungsi yang ditinjau.(Gambar2.)
Gambar 2: Menentukan kemiringan kurva suatu fungsi
Kalkulasi dengan metode Newton diawali dengan x0 yang tidak ter-lalu jauh dari salah satu akar yang dicari, bergerak sepanjang garis linear(kemiringan atau tangen garis) ke perpotongannya di sumbu-x, dan mengam-bilnya sebagai titik aproksimasi untuk yang berikutnya. Perlakuan ini diteruskanhingga nilai-nilaixdirasakan sukses cukup dekat ke fungsi bernilai nol. Skema
2
7/26/2019 Praktikum Fisika Komputasi
4/15
kalkulasinya mengikuti segitiga yang dibangun dengan sudut inklinasi darikemiringan garis pada kurva di x= x0 yaitu
tan() = f(x0) = f(x0)
(x0 x1)atau x1=x0
f(x0
f(x0)(1)
Aproksimasi berikutnya diteruskan dengan menghitung x2dengan skema yangsama dimana nilai x0 digantikan oleh x1 . Secara umum metode Newtondirumuskan oleh skema berikut ini:
xn+1= xnf(xn)
f(xn)(2)
Kelebihan metode Newton-Raphson :
Konvergensi yang dihasilkan lebih cepat.
Kelemahan metode Newton-Raphson :
Tidak selalu menemukan akar (divergen).
Kemungkinan sulit dalam mencari f(xn).
Penetapan harga awal (xn) yang sulit.
3 Metode Eksperimen
3.1 Script dan Fungsi Komputasi
3.1.1 Percobaan 1
Berikut Source codepada program Fortran90 untuk percobaan I dimanamencari akar dari persamaan yang diambil dari masalah di bidang fisika. Darimasalah tersebut dirumuskan persamaan sebagai berikut
f(x) = 3
(5 x)2
5
x2 = 0 (3)
Listing 1: Listing program Fortran untuk percobaan I.
Program titik_nol
implicit none
real::x0,x1,delta,tol
integer::i,imak
imak=20
tol=1.0e-14
write(*,*)"berikan masukan nilai x0 ="
read(*,*) x0i=0
3
7/26/2019 Praktikum Fisika Komputasi
5/15
do
i=i+1
x1=x0-fung(x0)/dfung(x0)
delta=x1-x0write(*,*)"akar iterasi ke",i,"adalah",x1
IF((ABS(delta) .LE. tol) .OR. (i .GE. imak)) EXIT
x0=x1
end do
write(*,*) "nilai akar =",x1
Contains
FUNCTION fung(x)
Real::fungReal, intent(in) : : x
fung=3.0/(5.0-x)**2 -5.0/x**2
END FUNCTION fung
FUNCTION dfung(x)
Real::dfung
Real,intent(in)::x
dfung=6.0/(5.0-x)**3+10.0/x**3
END FUNCTION dfung
end Program titik_nol
3.1.2 Percobaan 2
BerikutSource codepada program Fortran90 untuk percobaan II dimanamencari nilai - nilai akar dari persamaan diambil dari masalah di bidang fisika.Persamaan tersebut didefinisikan sebagai berikut
f(x) = 3
(5.0 x)2
5
x2
2
(x+ 1)2+
6
(8 x)2 = 0 (4)
Listing 2: Listing program Fortran untuk percobaan II.
Program titik_nol
implicit none
real::x0,x1,delta,tol
integer::i,imak
imak=100
tol=1.0e-14
write(*,*)"berikan masukan nilai x0 ="
read(*,*) x0i=0
4
7/26/2019 Praktikum Fisika Komputasi
6/15
do
i=i+1
x1=x0-fung(x0)/dfung(x0)
delta=x1-x0write(*,*)"akar iterasi ke",i,"adalah",x1
IF((ABS(delta) .LE. tol) .OR. (i .GE. imak)) EXIT
x0=x1
end do
write(*,*) "nilai akar =",x1
Contains
FUNCTION fung(x)
Real::fungReal, intent(in) : : x
fung=3.0/(5.0-x)**2 -5.0/x**2-2.0/(x+1)**2+6.0/(8-x)**2
END FUNCTION fung
FUNCTION dfung(x)
Real::dfung
Real,intent(in)::x
dfung=6.0/(5.0-x)**3+10.0/x**3+4.0/(x+1)**3+12.0/(8-x)**3
END FUNCTION dfung
end Program titik_nol
3.1.3 Percobaan 3
Berikut Source code pada program Fortran90 untuk percobaan III di-mana akan dicari akar - akar dari persamaan yang dirumuskan sebagai berikut.
f(x) =x2 + 2x 1
x3 = 0 (5)
Listing 3: Listing program Fortran untuk percobaan III.Program titik_nol
implicit none
real::x0,x1,delta,tol
integer::i,imak
imak=100
tol=1.0e-14
write(*,*)"berikan masukan nilai x0 ="
read(*,*) x0
i=0
5
7/26/2019 Praktikum Fisika Komputasi
7/15
do
i=i+1
x1=x0-fung(x0)/dfung(x0)
delta=x1-x0
write(*,*)"akar iterasi ke",i,"adalah",x1
IF((ABS(delta) .LE. tol) .OR. (i .GE. imak)) EXIT
x0=x1
end do
write(*,*) "nilai akar =",x1
Contains
FUNCTION fung(x)
Real::fung
Real, intent(in) : : xfung=x**2+2*x-1/x**3
END FUNCTION fung
FUNCTION dfung(x)
Real::dfung
Real,intent(in)::x
dfung=2*x+2+3/x**4
END FUNCTION dfung
end Program titik_nol
3.1.4 Percobaan 4
Berikut Source code pada program Fortran90 untuk percobaan IV dimanaterambil persamaan trigonometri yaitu
f(x) = sin x (6)
Listing 4: Listing program Fortran untuk percobaan IV.
Program titik_nolimplicit none
real::x0,x1,delta,tol
integer::i,imak
imak=100
tol=1.0e-14
write(*,*)"berikan masukan nilai x0 ="
read(*,*) x0
i=0
doi=i+1
6
7/26/2019 Praktikum Fisika Komputasi
8/15
x1=x0-fung(x0)/dfung(x0)
delta=x1-x0
write(*,*)"akar iterasi ke",i,"adalah",x1
IF((ABS(delta) .LE. tol) .OR. (i .GE. imak)) EXIT
x0=x1
end do
write(*,*) "nilai akar =",x1
Contains
FUNCTION fung(x)
Real::fung
Real, intent(in) : : x
fung=sin(x)
END FUNCTION fung
FUNCTION dfung(x)
Real::dfung
Real,intent(in)::x
dfung=cos(x)
END FUNCTION dfung
end Program titik_nol
3.2 Tugas
3.2.1 Percobaan 1
Pertama, source codedi atas di-compilekemudian dimasukkan nilai dibawah ini satu per satu
x0= 3 x0= 5
x0= 2 x0=2
x0= 10
Kedua, iterasi maksimum diubah menjadi 100 sehingga dalamscriptimak=100 kemudian di-compilekembali kemudian dimasukkan nilaix0= 8 dan x0=10
3.2.2 Percobaan 2
Source code di atas di-compilekemudian dimasukkan nilai - nilai yangsama seperti pada percobaan 1 bagian pertama.
3.2.3 Percobaan 3
Source codedi atas di-compilekemudian dimasukkan nilaix0= 5 dan x0=10.
7
7/26/2019 Praktikum Fisika Komputasi
9/15
3.2.4 Percobaan 4
Source codedi atas di-compilekemudian dimasukkan nilaix0= 0.3 dan x0=0.5.
4 Hasil Eksperimen
4.1 Percobaan 1
Berikut hasil yang didapatkan pada percobaan 1 bagian pertama yaitudengan iterasi maksimumimak= 20 dan nilai - nilai di atas.
akar iterasi ke 1 adalah 2.8264463akar iterasi ke 2 adalah 2.8175545
akar iterasi ke 3 adalah 2.8175416akar iterasi ke 4 adalah 2.8175416nilai akar = 2.8175416
Tabel 1: Hasil iterasi pada percobaan 1 dengan x0= 3 dan iterasi maksimumimak= 20
akar iterasi ke 1 adalah NaNakar iterasi ke 2 adalah NaN...................... .. ........ ......
akar iterasi ke 20 adalah NaNnilai akar = NaN
Tabel 2: Hasil iterasi pada percobaan 1 dengan x0= 5 dan iterasi maksimumimak= 20
akar iterasi ke 1 adalah 2.6226416akar iterasi ke 2 adalah 2.8185940...................... .. ........ ......akar iterasi ke 5 adalah 2.8175416
nilai akar = 2.8175416Tabel 3: Hasil iterasi pada percobaan 1 dengan x0= 2 dan iterasi maksimumimak= 20
Kemudian berikut hasil percobaan 1 bagian kedua dengan nilai x0= 8 dan x0=10 serta iterasi maksimum imak= 100.
4.2 Percobaan 2
Berikut hasil yang didapatkan pada percobaan 2 dengan iterasi mak-
simum imak = 100 dan nilai - nilai yang sama dengan percobaan 1 bagianpertama.
8
7/26/2019 Praktikum Fisika Komputasi
10/15
akar iterasi ke 1 adalah -2.9645181akar iterasi ke 2 adalah -4.3669548...................... .. ........ ......akar iterasi ke 20 adalah -4642.0132
nilai akar = -4642.0132
Tabel 4: Hasil iterasi pada percobaan 1 denganx0= 2 dan iterasi maksimumimak= 20
akar iterasi ke 1 adalah 11.842105akar iterasi ke 2 adalah 14.078759...................... .. ........ ......akar iterasi ke 10 adalah 22.182459
nilai akar = 22.182459
Tabel 5: Hasil iterasi pada percobaan 1 dengan x0
= 10 dan iterasi maksimumimak= 20
akar iterasi ke 1 adalah 9.2591009akar iterasi ke 2 adalah 10.904586...................... .. ........ ......akar iterasi ke 11 adalah 22.182459
nilai akar = 22.182459
Tabel 6: Hasil iterasi pada percobaan 1 dengan x0= 8 dan iterasi maksimumimak= 100
akar iterasi ke 1 adalah 11.842105akar iterasi ke 2 adalah 14.078759...................... .. ........ ......akar iterasi ke 10 adalah 22.182459
nilai akar = 22.182459
Tabel 7: Hasil iterasi pada percobaan 1 dengan x0= 10 dan iterasi maksimumimak= 100
akar iterasi ke 1 adalah 2.7580330akar iterasi ke 2 adalah 2.7440958
akar iterasi ke 3 adalah 2.7440815akar iterasi ke 4 adalah 2.7440815
nilai akar = 2.7440815
Tabel 8: Hasil iterasi pada percobaan 2 dengan x0= 3 dan iterasi maksimumimak= 100
4.3 Percobaan 3
Berikut hasil yang didapatkan pada percobaan 3 dengan iterasi maksi-mumimak= 100 dan nilai x0= 5 dan x0= 10
9
7/26/2019 Praktikum Fisika Komputasi
11/15
akar iterasi ke 1 adalah NaNakar iterasi ke 2 adalah NaN...................... .. ........ ......akar iterasi ke 100 adalah NaN
nilai akar = NaN
Tabel 9: Hasil iterasi pada percobaan 2 dengan x0= 5 dan iterasi maksimumimak= 100
akar iterasi ke 1 adalah 2.5801105akar iterasi ke 2 adalah 2.7432473akar iterasi ke 3 adalah 2.7440815akar iterasi ke 4 adalah 2.7440815
nilai akar = 2.7440815
Tabel 10: Hasil iterasi pada percobaan 2 denganx0
= 2 dan iterasi maksimumimak= 100
akar iterasi ke 1 adalah -2.5993240akar iterasi ke 2 adalah -3.5291753...................... .. ........ ......akar iterasi ke 17 adalah -54.375397
nilai akar = -54.375397
Tabel 11: Hasil iterasi pada percobaan 2 dengan x0 = 2 dan iterasi maksi-mumimak= 100
akar iterasi ke 1 adalah 11.012036akar iterasi ke 2 adalah 12.520412...................... .. ........ ......akar iterasi ke 100 adalah NaN
nilai akar = NaN
Tabel 12: Hasil iterasi pada percobaan 2 denganx0= 10 dan iterasi maksimumimak= 100
akar iterasi ke 1 adalah 2.0851657akar iterasi ke 2 adalah 0.75669146
...................... .. ........ ......akar iterasi ke 6 adalah 0.77480412
nilai akar = 0.77480412
Tabel 13: Hasil iterasi pada percobaan 3 denganx0= 5 dan iterasi maksimumimak= 100
4.4 Percobaan 4
Berikut hasil yang didapatkan pada percobaan 4 dengan iterasi maksi-mumimak= 100 dan nilai x0= 0.3 dan x0= 0.5
10
7/26/2019 Praktikum Fisika Komputasi
12/15
akar iterasi ke 1 adalah 4.5455742akar iterasi ke 2 adalah 1.8656069...................... .. ........ ......akar iterasi ke 8 adalah 0.77480412
nilai akar = 0.77480412
Tabel 14: Hasil iterasi pada percobaan 3 denganx0= 10 dan iterasi maksimumimak= 100
akar iterasi ke 1 adalah -9.33624059E-03akar iterasi ke 2 adalah 2.70827996E-07akar iterasi ke 3 adalah 0.0000000akar iterasi ke 4 adalah 0.0000000
nilai akar = 0.0000000
Tabel 15: Hasil iterasi pada percobaan 4 dengan x0
= 0.3 dan iterasi maksi-mumimak= 100
akar iterasi ke 1 adalah -4.63025086E-02akar iterasi ke 2 adalah 3.31162446E-05akar iterasi ke 3 adalah 0.0000000akar iterasi ke 4 adalah 0.0000000
nilai akar = 0.0000000
Tabel 16: Hasil iterasi pada percobaan 4 dengan x0 = 0.5 dan iterasi maksi-mumimak= 100
5 Pembahasan
Alhamdulillah, telah dilakukan praktikum fisika komputasi tentang pen-carian akar - akar dari suatu persamaan. Dari pencarian akar - akar dari be-berapa persamaan di atas menghasilkan nilai - nilai yang cukup baik. Karenadalamsource codediatur sedemikian rupa sehingga didapatkan nilai hasil yangcukup dekat dengan nilai yang sesungguhnya. Bisa dilihat pada percobaan 1bagian pertama didapatkan nilai akar sebesar 2.8175416 dan 22.182459 den-gan nilai yang sebenarnya sebesar 2.81754163448146 dan 22.1824583655185.Selisih antara nilai yang didapatkan dan nilai yang sebenarnya cukup kecil
sehingga bisa diabaikan. Sebagai contoh, kedua nilai tersebut sesuai perhitun-gan numerik sudah benar namun secara fisis ketika dua muatan yang jenisnyasama diposisikan segaris maka hanya terdapat satu titik diantara keduanyayang medan listriknya bernilai nol E= 0.
Namun timbul masalah ketika iterasi yang dilakukan hanya beberapakali. Contoh kasusnya pada percobaan 1 dengan x0 = 2 dan iterasi mak-simum imak = 20 didapati bahwa nilai yang didapatkan sangat jauh meny-impang dari nilai yang sebenarnya. Seharusnya nilai yang didapatkan padakasus tersebut jika iterasi yang dilakukan semakin banyak maka akan menuju
nilai tak hingga atau dalam program Fortran90 menampilkan hasil NaN
11
7/26/2019 Praktikum Fisika Komputasi
13/15
(Not an Number) yang sama halnya pada percobaan 2 dengan x0 = 10 den-gan iterasi maksimum imak = 100 yang menampilkan hasil tak hingga pula. Pada percobaan 1 dan 2 ketika dimasukkan nilai x0 = 5 maka ke-dua percobaan tersebut menghasilkan NaN (Not an Number). Hal tersebut
dikarenakan ketika nilaix0= 5 dimasukkan ke dalam persamaan pada keduapercobaan yaitu 3/(5 x)2 maka akan menghasilkan nilai tak hingga atauNaN (Not an Number) pada program.
Secara keseluruhan dari beberapa persamaan di atas, dengan menggu-nakan metode Newton-Raphson dalam penentuan nilai akar - akar persamaandidapatkan dengan lebih cepat. Namun tidak selalu menemukan suatu ni-lai konvergen, terkadang sulit menentukan turunan persamaannya, dan harusberhati-hati dalam menentukan nilai awal x0.
6 Kesimpulan
Kesimpulan yang dapat diambil dari pembahasan di atas diantaranyasebagai berikut :
1. Semakin kecil nilai toleransi yang ditentukan maka semakin teliti nilaiyang didapatkan dan berlaku sebaliknya.
2. Semakin banyak iterasi yang dilakukan maka semakin teliti nilai yangdidapatkan dan berlaku sebaliknya.
3. Metode Newton-Raphson memiliki kelebihan dan kekurangan tersendiri.Namun secara umum metode ini cukup mumpuni dalam menentukannilai - nilai akar dari suatu persamaan.
DAFTAR PUSTAKA
Nurwantoro, Pekik. 2016. Petunjuk Praktikum Fisika Komputasi. Yogyakarta: Lab. Fisika Atom dan Inti FMIPA UGM.Zakaria, Ahmad. 2005. Pemograman Numerik Menggunakan Bahasa Fortran. Lampung: Fakultas Teknik Universitas Lampung.
, 2006. Buku Ajar : Metode Numerik. Lampung: FMIPA UniversitasLampung.
Yogyakarta, 31 Maret 2014
Asisten I Asisten II Asisten III Praktikan
Halim Hamadi Jihan Ahmad Muhammad Egi Ahmad Hasan Asari
12
7/26/2019 Praktikum Fisika Komputasi
14/15
Lampiran
fisanti010@linux-lz4s: /Asari15766> gfortrannewton.f90 osipfisanti010@linux lz4s: /Asari15766> ./sip
berikanmasukannilaix0 =3akariterasike1adalah2.8264463akariterasike2adalah2.8175545akariterasike3adalah2.8175416akariterasike4adalah2.8175416nilaiakar = 2.8175416fisanti010@linux lz4s: /Asari15766> ./sipberikanmasukannilaix0 =5akariterasike1adalahNaNakariterasike2adalahNaN............................akariterasike20adalahNaNnilaiakar = N aNfisanti010@linux lz4s: /Asari15766> ./sipberikanmasukannilaix0 =2akariterasike1adalah2.6226416akariterasike2adalah2.8185940................................
akariterasike5adalah2.8175416nilaiakar = 2.8175416fisanti010@linux lz4s: /Asari15766> ./sipberikanmasukannilaix0 = 2akariterasike1adalah 2.9645181akariterasike2adalah 4.3669548................................akariterasike20adalah 4642.0132nilaiakar = 4642.0132
fisanti010@linux lz4s: /Asari15766> ./sipberikanmasukannilaix0 =10akariterasike1adalah11.842105akariterasike2adalah14.078759................................akariterasike10adalah22.182459nilaiakar = 22.182459fisanti010@linux lz4s: /Asari15766> gfortrannewton.f90 osipfisanti010@linux lz4s: /Asari15766> ./sip
berikanmasukannilaix0 =8
13
7/26/2019 Praktikum Fisika Komputasi
15/15
akariterasike1adalah9.2591009akariterasike2adalah10.904586................................akariterasike11adalah22.182459
nilaiakar = 22.182459fisanti010@linux lz4s: /Asari15766> ./sipberikanmasukannilaix0 =10akariterasike1adalah11.842105akariterasike2adalah14.078759...............................akariterasike10adalah22.182459nilaiakar = 22.182459fisanti010@linux lz4s: /Asari15766> gfortrannewton2.f90 osip
fisanti010@linux lz4s: /Asari15766> ./sipberikanmasukannilaix0 =3akariterasike1adalah2.7580330akariterasike2adalah2.7440958akariterasike3adalah2.7440815akariterasike4adalah2.7440815nilaiakar = 2.7440815fisanti010@linux lz4s: /Asari15766> ./sipberikanmasukannilaix0 =
5akariterasike1adalahNaNakariterasike2adalahNaN....................................akariterasike100adalahNaNnilaiakar = N aNfisanti010@linux lz4s: /Asari15766> ./sipberikanmasukannilaix0 =2akariterasike1adalah2.5801105akariterasike2adalah2.7432473
akariterasike3adalah2.7440815akariterasike4adalah2.7440815nilaiakar = 2.7440815fisanti010@linux lz4s: /Asari15766> ./sipberikanmasukannilaix0 = 2akariterasike1adalah 2.5993240akariterasike2adalah 3.5291753.................................akariterasike17adalah 54.375397
nilaiakar = 54.375397
14