Laporan Praktikum Laporan Praktikum
Pencarian Akar suatu Fungsi dengan
Pencarian Akar suatu Fungsi dengan
Menggunakan Metode Newton-Raphson
Menggunakan Metode Newton-Raphson
Diajukan untuk Memenuhi Laporan Kegiatan Praktikum Fisika
Diajukan untuk Memenuhi Laporan Kegiatan Praktikum Fisika KomputasiKomputasi
Disusun oleh : Disusun oleh : Nama
Nama : : ohan !"ah Fatomiohan !"ah Fatomi N#M
N#M : : $%&'()*($&P$%&'()*($&PA&$+,A&$+,$$ .ari/
.ari/ 0a0anggal nggal Praktikum Praktikum : : Kamis/ Kamis/ )% )% Maret Maret )$()$(
A
Assiisstteen n PPrraakkttiikkuumm : .: .aammiid d ..aammaaddii :
: 1inan 1inan AhmadAhmad :
: Muhammad Muhammad 2gi2gi
LA34RA0
LA34RA04R#5M 4R#5M F#!#KA K4MPF#!#KA K4MP50A!#50A!# D2PA
D2PAR02M2N F#!#KR02M2N F#!#KAA
FAK5L0A! MA02MA0#KA DAN #LM5 P2N620A.5AN ALAM FAK5L0A! MA02MA0#KA DAN #LM5 P2N620A.5AN ALAM
5N#72R!#0A! 6AD1A. MADA 5N#72R!#0A! 6AD1A. MADA
8468AKAR0A 8468AKAR0A
)$( )$(
1. Pendahuluan
1.1
Latar Belakang
6am9aran isikawan dalam memandang gejala alam adalah se9uah perumusan "ang matematis; Perumusan matematis 9an"ak "ang susah dipecahkan jika diselesaikan menggunakan metode analisis; !eperti misaln"a dalam pencarian akar suatu ungsi kadang ada "ang sulit dipecahkan terutama ungsi tidak linear; 4leh karena itu di9utuhkan metode "ang mampu memecahkan masalah pencarian akar dengan mudah/ salah satun"a adalah dengan menggunakan metode Newton Raphson
1.2
Tujuan
a; Menentukan nilai akar-akar suatu ungsi secara numerik dengan metode Newton-Raphson;
2. Dasar Teori
Dalam Mencari nilai suatu akar-akar suatu ungsi secara numeric dapat menggunakan metode 9erikut ini :
2.1
Metode Bisection
algoritma pencarian akar pada se9uah inter<al; #nter<al terse9ut mem9agi dua 9agian/ lalu memilih dari dua 9agian ini dipilih 9agian mana "ang
mengandung akar dan 9agian "ang tidak mengandung akar di9uang; .al ini dilakukan 9erulang-ulang hingga diperoleh akar persamaan atau mendekati akar persamaan; Metode ini 9erlaku ketika ingin memecahkan persamaan f = x> ? dengan f merupakan ungsi kontin"u;
2.2
Newton-Rapshon
adalah metode pencarian akar suatu ungsi =@> dengan pendekatan satu titik/ dimana ungsi =@> mempun"ai turunan; Metode ini dianggap le9ih mudah dari Metode 3agi-Dua =3isection Method> karena metode ini menggunakan
pendekatan satu titik se9agai titik awal; !emakin dekat titik awal "ang kita pilih dengan akar se9enarn"a/ maka semakin cepat kon<ergen ke akarn"a;
Prosedur Metode Newton :
menentukan @ se9agai titik awal/ kemudian menarik garis lurus =misal garis l >
"ang men"inggung titik =@>; .al ini 9eraki9at garis l memotong sum9u @ di
titik @$; !etelah itu diulangi langkah se9elumn"a tapi sekarang @$dianggap
se9agai titik awaln"a; Dari mengulang langkah-langkah se9elumn"a akan mendapatkan @)/ @'/ B @n dengan @n "ang diperoleh adalah 9ilangan riil "ang
merupakan akar atau mendekati akar "ang se9enarn"a;
. Metode !ksperi"en
.1
#cript $o"putasi
PROGRAM titik_nol IMPLICIT NONE
REAL :: x0, x1, delta, tol INTEGER :: i, imak
imak = 100 tol = 1.0e!
"RITE #$,$%&'e(ikan ma)*kan nilai x0 = & REA+ #$,$%x0 i=0 +O i = i 1 x1 = x0-*n#x0%/d-*n#x0% delta = x1 x0
"RITE #$,$%&Aka( ite(a)i ke &,i,&adala&, x1
I ##A'2#delta% .LE. tol% .OR. #i .GE. imak%%E3IT EN+ +O
"RITE #$,$%&Nilai aka( = &, x1 CONTAIN2 4NCTION -*n#3% REAL :: -*n REAL, INTENT#in% :: x -*n = 5.0/#6.0x%$$ 7 6.0/x$$7 EN+ 4NCTION -*n 4NCTION d-*n#x% REAL :: d-*n REAL, INTENT#in% :: x d-*n = 8.0/#6.0x%$$5 10.0/x$$5 EN+ 4NCTION d-*n
EN+ PROGRAM titik_nol
.2
%ungsi &ang Digunakan
No; f
(
x)
f '(
x)
$; 3.0(
5.0−
x)
2−
5.0(
x)
2 6.0(
5.0− x)
3 + 10.0 x3 ); 6.0(
8.0−
x)
2+
3.0(
5−
x)
2−
5.0 x2−
2(
x+
12 8− x3+ 6(
5− x)
3+ 10(
x)
3+ 4(
x+1)
3 '; sin x cos x %; x2+
2 x−
x−3 2 x+2+ 3 x4'. (asil !ksperi"en
!etelah dilakukan pem9uatan listing program dan mengcompilen"a sehingga didapatkan hasil 9erikut ini :
$; f
(
x)
=
3.0
(
5.0−
x)
2−
5.0
(
x)
2 , x0=
10,imaks=
100 Akar iterasi ke $ adalah $$;,%)$+ Akar iterasi ke ) adalah $$;,%)$+ B;;B;;
Akar iterasi ke CC adalah $$;,%)$+ Akar iterasi ke $ adalah $$;,%)$+ Nilai akar ? $$;,%)$+
); f
(
x)
=
3.0
(
5.0−
x)
2−
5.0
(
x)
2 , x0=
3,imaks=
100 Akar iterasi ke $ adalah );%',(C$( Akar iterasi ke ) adalah );%',(C$( BB
Akar iterasi ke CC adalah );%',(C$( Akar iterasi ke $ adalah );%',(C$( Nilai akar ? );%',(C$( '; f
(
x)
=
3.0(
5.0−
x)
2−
5.0(
x)
2 , x0=
5,imaks=
100 Akar iterasi ke $ adalah NaN Akar iterasi ke ) adalah NaN BB
Akar iterasi ke CC adalah NaN Akar iterasi ke $ adalah NaN Nilai akar ? NaN
%; f
(
x)
=
6.0(
8.0−
x)
2+
3.0(
5−
x)
2−
5.0 x2−
2(
x+
1)
2 , x0=
2,imaks=
100Akar iterasi ke $ adalah ); Nilai akar ? ); +; f
(
x)
=
6.0(
8.0−
x)
2+
3.0(
5−
x)
2−
5.0 x2−
2(
x+
1)
2 , x0=−
2,imaks=
100Akar iterasi ke $ adalah -);(C*CC(C Akar iterasi ke ) adalah -);(C*CC(C B;
B;
Akar iterasi ke CC adalah -);(C*CC(C Akar iterasi ke $ adalah -);(C*CC(C Nilai akar ? -);(C*CC(C (; f
(
x)
=
6.0(
8.0−
x)
2+
3.0(
5−
x)
2−
5.0 x2−
2(
x+
1)
2 , x0=
10,imaks=
100Akar iterasi ke $ adalah %);C,,'%( Akar iterasi ke ) adalah %);C,,'%( B;
B;
Akar iterasi ke CC adalah %);C,,'%( Akar iterasi ke $ adalah %);C,,'%( Nilai akar ? %);C,,'%(
*; f
(
x)
=
sin x , x0=
0.3,imaks=
100Akar iterasi ke $ adalah ;%+$$*%)C Akar iterasi ke ) adalah ;%+$$*%)C B
B
Akar iterasi ke CC adalah ;%+$$*%)C Akar iterasi ke $ adalah ;%+$$*%)C Nilai akar ? ;%+$$*%)C
,; f
(
x)
=
sin x , x0=
0.6,imaks=
100Akar iterasi ke $ adalah ;,C%(,%) Akar iterasi ke ) adalah ;,C%(,%) B
B
Akar iterasi ke CC adalah ;,C%(,%) Akar iterasi ke $ adalah ;,C%(,%) Nilai akar ? ;,C%(,%)
C; f
(
x)
=
x2
+
2 x−
x−3, x0=
5,imaks=
100Akar iterasi ke $ adalah );,+$(+* Akar iterasi ke ) adalah );,+$(+* B
B
Akar iterasi ke CC adalah );,+$(+* Akar iterasi ke $ adalah );,+$(+* Nilai akar ? );,+$(+*
$; f
(
x)
=
x2
+
2 x−
x−3, x0=
5,imaks=
100Akar iterasi ke $ adalah %;+%++*%) Akar iterasi ke ) adalah %;+%++*%) B
B
Akar iterasi ke CC adalah %;+%++*%) Akar iterasi ke $ adalah %;+%++*%) Nilai akar ? %;+%++*%)
Pada praktikum metode newton raphson "ang menggunakan 9ahasa pemrograman ortran C; Kode-kode "ang digunakan 9ertujuan untuk mem9uat suatu iterasi&pengulangan agar mendapatkan nilai f
(
x)
=
0 sehingga nilai xi+
1=
x1 ;!ehingga didapatkanlah nilai akar ungsi itu;
!intaks Program titik_nol adalah nama program itu; Implicit NONE adalah untuk mem9eritahu compiler agar menga9aikan ortran implicit 9ahwa <aria9el "ang diawali dengan a-h atau - adalah real sedangkan "ang diawali dengan 1
−
n adalah integer; Aki9atn"a compiler mengharuskan untuk secara eksplisit mendeinisikan jenis dari setiap <aria9le "ang digunakan dalam program; Real ::x0,x1,delta,tol menjelaskan 9ahwa input dari @/@$/delta/ dan tol adalah 9ilangan real/atau 9ilangan "ang ada koman"a; Integer :: i,imak adalahmendeinisikan 9ahwa iterasi dan iterasi maksimumn"a adalah 9ilangan 9ulat/ karena memang 9ulat tidak ada iterasi "ang menggukanan koma; Perintah write(*,* !"erikan ma#$kan nilai x0 % ! adala& sintaks untuk memasukkan nilai te9akan awal melalui ke"9oard / sedangkan read(*,*x0 men"atakan 9ahwa nilai "ang dimasukkan lewat ke"9oard itu adalah @/ i%0 menunjukkan 9ahwa saat nilai awal dimasukkan 9elum terjadi iterasi; Perintah imak % 100 dan tol%1'0e) men"atakan 9ahwa 9an"akn"a iterasi maksimum adalah $ dan
toleransin"a adalah $;e-%; Perintah do adalah untuk memulai iterasi/ i%i1 men"atakan9ahwa iterasi dilakukan dengan rentang $; xi
=
x0 – fung(
x0)/
dfung(
x0)
adalah rumusan newton raphson "ang akandigunakan untuk mencari nilai akar melalui iterasi/sedangkan delta%x1x0 adalah selisih antara xi1 dengan xi ; write(*,* !akar itera#ike+,i,+ adala& !,1 untuk menampilkan pada output saat iterasi ke9erapa hasiln"a 9erapa/ hasiln"a 9erupa nilai x1 "ang didapat dari rumusan newton raphson; Perinta&
if((a#(delta '-E' tol 'OR' (I '.E' imak exit kalau diterjemahkan ke 9ahasa manusia adalah jika nilai a9solute =mutlak> dari delta =selisih @iE$ dengan @i> le9ih kecil sama dengan nilai toleransi atau i le9ih 9esar sama dengan imak maka iterasi&pengulangan dihentikan; Perintah x0
=
x1 End do men"atakan saat delta sama atau le9ih kecildari toleransi maka nilai akar sudah didapatkan sehingga iterasi 9erakhir cukup sampai disini; Perintah write(*,* !Nilai akar % !,x1 adalah untuk menghasilkan nilai keluaran nilai akar "ang dicari "aitu x1 "ang didapat dengan iterasi perumusan
newton raphson/9ukan masukan dari ke"9oard; /ontain# adalah perintah tentang konten-konten "angada pada program; Perintah Function ung=@> men"atakan ungsi @; Real :: f$ng men"atakan 9ahwa ung adalah real/ atau nilain"a 9isa menggunakan koma; Real,intent(in :: x mem9eri tahu compiler 9ahwa @ digunakan se9agai nilai masukkan&inputsaja; Atau dengan kata lain/ @ dimasukkan ke dalam
d-*n intin"a sama "ang mem9edakan adalah dung merupakan turunan dari ung;
Dengan perhitungan program diatas didapatkan hasil se9agai 9erikut :
No; f
(
x)
x0 Hasil $; f(
x)
=
3.0(
5.0−
x)
2−
5.0(
x)
2 $ $$;,%)$+ ); f(
x)
=
3.0(
5.0−
x)
2−
5.0(
x)
2 ' );%',(C$( '; f(
x)
=
3.0(
5.0−
x)
2−
5.0(
x)
2 + Nan %; f(
x)
=
6.0(
8.0−
x)
2+
3.0(
5−
x)
2−
5.0 x2−
2(
x+
1)
2 ) ) +; f(
x)
=
6.0(
8.0−
x)
2+
3.0(
5−
x)
2−
5.0 x2−
2(
x+
1)
2 -) -);(C*CC(C (; f(
x)
=
6.0(
8.0−
x)
2+
3.0(
5−
x)
2−
5.0 x2−
2(
x+
1)
2 $ %);C,,'%( *; sin x ;' ;%+$$*%)C ,; sin x ;( ;,C%(,%) C; f(
x)
=
x2+
2 x−
x−3 + );,+$(+* $; f(
x)
= x2 +2 x− x−3 + %;+%++*%)dengan nilai imak# % $;
1ika kita lihat ada nilai-nilai "ang tidak 9iasa di sini "aitu nilai Nan pada akar ungsi f
(
x)
=
3.0(
5.0−
x)
2−
5.0
(
x)
2 nilai x0=
5 ; .al itu terjadi dikarenakan pada saatperhitungan didapatkan nilai
suatu persamaan
(
5.0−
5.0)
=
tidak terdefinisi ; 0idak terdeinisidilam9angkan pada ortran se9agai Nan;
+. $esi"pulan
$; Metode Newton-Raphson merupakan metode "ang 9agus untuk mendapatkan nilai suatu akar dari suatu ungsi non linear / mudah dipelajari serta mudah diterapkan di koding pemrograman ortran
No; f
(
x)
x0 Hasil $; f(
x)
=
3.0(
5.0−
x)
2−
5.0(
x)
2 $ $$;,%)$+ ); f(
x)
=
3.0(
5.0−
x)
2−
5.0(
x)
2 ' );%',(C$( '; f(
x)
=
3.0(
5.0−
x)
2−
5.0(
x)
2 + Nan %; f(
x)
=
6.0(
8.0−
x)
2+
3.0(
5−
x)
2−
5.0 x2−
2(
x+
1)
2 ) ) +; f(
x)
=
6.0(
8.0−
x)
2+
3.0(
5−
x)
2−
5.0 x2−
2(
x+
1)
2 -) -);(C*CC(C (; f(
x)
=
6.0(
8.0−
x)
2+
3.0(
5−
x)
2−
5.0 x2−
2(
x+
1)
2 $ %);C,,'%( *; sin x ;' ;%+$$*%)C ,; sin x ;( ;,C%(,%) C; f(
x)
= x2 +2 x− x−3 + );,+$(+* $; f(
x)
=
x2+
2 x−
x−3 + %;+%++*%) dengan nilai imak# % $;,. Datar Pustaka
1. Nurwantoro/ Pekik ; )$; Pet$n$k Praktik$m i#ika 2omp$ta#i/ 5ni<er sitas 6adjah Mada:8og"akarta;
2. Nugroho/ Fahrudin; )$%; Pemrograman dan 3etode N$merik /5ni<ersitas 6adjah Mada:8og"akarta;
. Fujianto/)$+; NewtonRap&#on 4ec&ni5$e diakses pada tanggal )C April )$(
. Le"*ar Pengesahan
8og"akarta/ $$ April )$%
Asisten Praktikum Asisten Praktikum
Asisten Praktikum Praktikan
Muhammad 2gi ohan !"ah Fatomi
/. La"piran
10. PROGRAM titik_nol 11. IMPLICIT NONE
17. REAL :: x0, x1, delta, tol 15. INTEGER :: i, imak 1!. 16. imak = 100 18. tol = 1.0e! 19. 1.
1;. "RITE #$,$%&'e(ikan ma)*kan nilai x0 = & 70. REA+ #$,$%x0 71. i=0 77. 75. +O 7!. 76. i = i 1 78. x1 = x0-*n#x0%/d-*n#x0% 79. delta = x1 x0
7. "RITE #$,$%&Aka( ite(a)i ke &,i,&adala&, x1 7;.
50. I ##A'2#delta% .LE. tol% .OR. #i .GE. imak%%E3IT 51. EN+ +O
57.
55. "RITE #$,$%&Nilai aka( = &, x1 5!. 56. CONTAIN2 58. 59. 4NCTION -*n#3% 5. REAL :: -*n 5;. REAL, INTENT#in% :: x !0. -*n = 5.0/#6.0x%$$ 7 6.0/x$$7
!1. EN+ 4NCTION -*n !7. !5. 4NCTION d-*n#x% !!. REAL :: d-*n !6. REAL, INTENT#in% :: x !8. d-*n = 8.0/#6.0x%$$5 10.0/x$$5 !9. EN+ 4NCTION d-*n !.