Komputasi Fisika METODE BISECTION Program M0209054; Uses crt; var a,b,m,fa,fb,fm,tol,n : real; iter_max,it : integer; function f(x:real) : real; begin f:= sqr(x)+ 3*x - 5; end; Begin Clrscr; writeln ('================================================================= =');
writeln ('Program Bisection':50); writeln
('================================================================= =');
writeln;
write ('Batas Bawah = '); readln (a); write ('Batas Atas = '); readln (b); write ('Nilai Toleransi = '); readln (tol);
write ('Iterasi Maksimum = '); readln (iter_max); writeln; it:=0;
fa:=f(a); fb:=f(b); if ( fa * fb > 0)
then writeln ('Nilai F(X0) x F(X1) > 0') else begin
writeln ('---'); writeln (' It. A M B F(A) F(B) |F(A)-F(B)| '); writeln ('---'); n := tol+1;
while ((it <= iter_max) and (n > tol)) do begin
it := it+1; m := (a+b)/2; fm := f(m);
writeln (it:3,' ',a:10:3,' ',m:10:3,' ',b:10:3,' ',fa:10:3,' ',fm:10:3,' ',abs(fb-fa/2):10:3); n := abs (m-a);
Komputasi Fisika then begin b := m; fb := f(m); end else begin a := m; fa := f(m); end; end; if (it <= iter_max) then begin
writeln ('Toleransi Terpenuhi'); writeln ('Hasil Akhir = ',m:8:7); end
else writeln ('Toleransi Tidak Terpenuhi'); end; readln; end. Hasil Output 1 ================================================================== Program Bisection ================================================================== Batas Bawah = 0 Batas Atas = 5 Nilai Toleransi = 0.00000001 Iterasi Maksimum = 100 --- It. A M B F(A) F(B) |F(A)-F(B)|
--- 1 0.000 2.500 5.000 -5.000 8.750 37.500 2 0.000 1.250 2.500 -5.000 0.313 11.250 3 0.000 0.625 1.250 -5.000 -2.734 2.813 4 0.625 0.938 1.250 -2.734 -1.309 1.680 5 0.938 1.094 1.250 -1.309 -0.522 0.967
Komputasi Fisika 6 1.094 1.172 1.250 -0.522 -0.111 0.574 7 1.172 1.211 1.250 -0.111 0.099 0.368 8 1.172 1.191 1.211 -0.111 -0.006 0.155 9 1.191 1.201 1.211 -0.006 0.046 0.102 10 1.191 1.196 1.201 -0.006 0.020 0.049 11 1.191 1.194 1.196 -0.006 0.007 0.023 12 1.191 1.193 1.194 -0.006 0.000 0.010 13 1.191 1.192 1.193 -0.006 -0.003 0.003 14 1.192 1.192 1.193 -0.003 -0.001 0.002 15 1.192 1.192 1.193 -0.001 -0.001 0.001 16 1.192 1.193 1.193 -0.001 -0.000 0.001 17 1.193 1.193 1.193 -0.000 0.000 0.000 18 1.193 1.193 1.193 -0.000 -0.000 0.000 19 1.193 1.193 1.193 -0.000 -0.000 0.000 20 1.193 1.193 1.193 -0.000 0.000 0.000 21 1.193 1.193 1.193 -0.000 -0.000 0.000 22 1.193 1.193 1.193 -0.000 0.000 0.000 23 1.193 1.193 1.193 -0.000 -0.000 0.000 24 1.193 1.193 1.193 -0.000 0.000 0.000 25 1.193 1.193 1.193 -0.000 -0.000 0.000 26 1.193 1.193 1.193 -0.000 0.000 0.000 27 1.193 1.193 1.193 -0.000 0.000 0.000 28 1.193 1.193 1.193 -0.000 0.000 0.000 29 1.193 1.193 1.193 -0.000 0.000 0.000 Toleransi Terpenuhi Hasil Akhir = 1.1925824 Hasil Output 2 ================================================================== Program Bisection ================================================================== Batas Bawah = -5 Batas Atas = 0 Nilai Toleransi = 0.00000001 Iterasi Maksimum = 100 --- It. A M B F(A) F(B) |F(A)-F(B)|
--- 1 -5.000 -2.500 0.000 5.000 -6.250 7.500 2 -5.000 -3.750 -2.500 5.000 -2.188 8.750 3 -5.000 -4.375 -3.750 5.000 1.016 4.688 4 -4.375 -4.063 -3.750 1.016 -0.684 2.695
Komputasi Fisika 5 -4.375 -4.219 -4.063 1.016 0.142 1.191 6 -4.219 -4.141 -4.063 0.142 -0.277 0.754 7 -4.219 -4.180 -4.141 0.142 -0.069 0.348 8 -4.219 -4.199 -4.180 0.142 0.036 0.140 9 -4.199 -4.189 -4.180 0.036 -0.017 0.087 10 -4.199 -4.194 -4.189 0.036 0.009 0.035 11 -4.194 -4.192 -4.189 0.009 -0.004 0.022 12 -4.194 -4.193 -4.192 0.009 0.003 0.008 13 -4.193 -4.193 -4.192 0.003 -0.000 0.005 14 -4.193 -4.193 -4.193 0.003 0.001 0.002 15 -4.193 -4.193 -4.193 0.001 0.000 0.001 16 -4.193 -4.193 -4.193 0.000 -0.000 0.001 17 -4.193 -4.193 -4.193 0.000 0.000 0.000 18 -4.193 -4.193 -4.193 0.000 0.000 0.000 19 -4.193 -4.193 -4.193 0.000 0.000 0.000 20 -4.193 -4.193 -4.193 0.000 0.000 0.000 21 -4.193 -4.193 -4.193 0.000 0.000 0.000 22 -4.193 -4.193 -4.193 0.000 -0.000 0.000 23 -4.193 -4.193 -4.193 0.000 0.000 0.000 24 -4.193 -4.193 -4.193 0.000 0.000 0.000 25 -4.193 -4.193 -4.193 0.000 0.000 0.000 26 -4.193 -4.193 -4.193 0.000 0.000 0.000 27 -4.193 -4.193 -4.193 0.000 0.000 0.000 28 -4.193 -4.193 -4.193 0.000 -0.000 0.000 29 -4.193 -4.193 -4.193 0.000 -0.000 0.000 Toleransi Terpenuhi Hasil Akhir = -4.1925824 Analisa Data
Sebuah fungsi f(x) x2 3x5dijadikan pokok permasalahan untuk dicari akar-akar persamaannya. Untuk pemecahannya digunakan metode Bisection, dimana metode bisection membagi daerah sebuah garis fungsi menjadi sama besar (dibagi menjadi dua bagian). Ketika menggunakan:
Batas Bawah 0 -5
Batas Atas 5 0
Nilai Toleransi 0.00000001 0.00000001 Akar-akar (xn) 1.1925824 -4.1925824
Dari program bisection ini, ketika nilai batas berkisar dari 0<x<5 didapat nilai akar pertama (x1), dan -5<x<0 didapat nilai akar kedua (x2). Nilai toleransi sangat mempengaruhi besarnya ketelitian pada akar sebuah fungsi, karena metode bisection hanya membagi luas daerah menjadi dua bagian yang sama besar. Besarnya nilai toleransi juga mempengaruhi jumlah iterasi yang digunakan, dengan batas 0<x<5 atau -5<x<0 dibutuhkan 29 iterasi. Semakin kecil nilai toleransi, maka akan semakin banyak iterasi yang dibutuhkan. Jika semakin besar
Komputasi Fisika
nilai toleransim, maka akan semakin kecil jumlah iterasi yang dibutuhkan. Hal ini dikarenakan nilai toleransi merupakan tingkat ketelitian dari fungsi tersebut.
METODE ITERASI SEDERHANA TIPE 1 Program M0209054; uses crt; var x : array [0..1000] of real; it : integer; iter_max,tol,n : real; begin clrscr;
writeln('PROGRAM METODE ITERASI SEDERHANA':50); writeln; writeln('Persamaan Pertama');
write('Masukkan X0 = ');readln(x[0]); write('Toleransi = ');readln(tol);
Komputasi Fisika
write('Iterasi max = ');readln(iter_max); it:=0;
it:=it+1; n:=tol+1;
writeln(' it x g(x) Ea'); while ((it <= iter_max) and (n>tol)) do begin
x[it+1] := (5-sqr(x[it]))-3;
writeln (it:4,' ',x[it]:8:3,' ',x[it+1]:8:3,' ',abs((x[it+1]-x[it])/x[it+1]):3); n := abs(x[it+1]-x[it]); inc(it); end; if (n<=tol) then begin writeln('Toleransi terpenuhi'); writeln('Hasil akhir = ',x[it]:8:7); end
else writeln('Toleransi tidak terpenuhi'); readln;
end.end.
Hasil Output tipe 1
PROGRAM ALGORITMA METODE ITERASI SEDERHANA Persamaan Pertama x awal = 1 Toleransi = 0.0001 Iterasi Max = 100 it x g(x) Ea 0 1.000 1.333 0.2500000000 1 1.333 1.074 0.2413793103 2 1.074 1.282 0.1622681883 3 1.282 1.119 0.1460598268 4 1.119 1.249 0.1046558024 5 1.249 1.146 0.0900555971 6 1.146 1.229 0.0670918036 7 1.229 1.163 0.0560926306 8 1.163 1.215 0.0428121228 9 1.215 1.174 0.0351417181 10 1.174 1.207 0.0272302599 11 1.207 1.181 0.0220918531 12 1.181 1.202 0.0172816889 13 1.202 1.185 0.0139169687
Komputasi Fisika 14 1.185 1.198 0.0109520702 15 1.198 1.188 0.0087783430 16 1.188 1.196 0.0069342921 17 1.196 1.190 0.0055414744 18 1.190 1.195 0.0043878198 19 1.195 1.191 0.0034998841 20 1.191 1.194 0.0027754284 21 1.194 1.191 0.0022111452 22 1.191 1.194 0.0017551172 23 1.194 1.192 0.0013972239 24 1.192 1.193 0.0011097253 25 1.193 1.192 0.0008830156 26 1.192 1.193 0.0007015887 27 1.193 1.192 0.0005580905 28 1.192 1.193 0.0004435299 29 1.193 1.192 0.0003527461 30 1.192 1.193 0.0002803795 31 1.193 1.192 0.0002229633 32 1.192 1.193 0.0001772389 33 1.193 1.193 0.0001409331 34 1.193 1.193 0.0001120379 35 1.193 1.193 0.0000890836 36 1.193 1.193 0.0000708217 Toleransi terpenuhi Hasil akhir = 1.1926198 TIPE 2 Program M0209054; uses crt; var x : array [0..1000] of real; it,d : integer; b,c,n : real; begin clrscr;
writeln('PROGRAM ALGORITMA METODE ITERASI SEDERHANA':50);writeln; writeln('Persamaan Kedua’);
write('x awal = ');readln(x[0]); write('Toleransi = ');readln(c); write('Jumlah iterasi max = ');readln(d); it:=0;
n:=c+1;
Komputasi Fisika
while ((it <= d) and (n > c)) do begin
x[it+1]:=((5/x[it])-3);
writeln(it:4,' ',x[it]:8:4,' ',x[it+1]:8:4,' ',abs((x[it+1]-x[it])/x[it+1]):8:7); n:=abs(x[it+1]-x[it]); inc(it); end; if (it<=d) then begin writeln('Toleransi terpenuhi'); writeln('Hasil akhir = ',x[it]:8:7); end
else writeln('Toleransi tidak terpenuhi'); readln;
end.
Hasil Output Tipe 2
PROGRAM ALGORITMA METODE ITERASI SEDERHANA Persamaan Kedua
x awal = 1 Toleransi = 0.0001 Jumlah iterasi max = 100 it x g(x) Ea 0 1.0000 2.0000 0.5000000 1 2.0000 -0.5000 5.0000000 2 -0.5000 -13.0000 0.9615385 3 -13.0000 -3.3846 2.8409091 4 -3.3846 -4.4773 0.2440453 5 -4.4773 -4.1168 0.0875743 6 -4.1168 -4.2145 0.0232050 7 -4.2145 -4.1864 0.0067322 8 -4.1864 -4.1944 0.0019042 9 -4.1944 -4.1921 0.0005425 10 -4.1921 -4.1927 0.0001543 11 -4.1927 -4.1925 0.0000439 12 -4.1925 -4.1926 0.0000125 Toleransi terpenuhi Hasil akhir = -4.1925940 TIPE 3 Program M0209054;
Komputasi Fisika uses crt; var x : array [0..1000] of real; it,d : integer; b,c,n : real; begin clrscr;
writeln('PROGRAM ALGORITMA METODE ITERASI SEDERHANA':50);writeln; writeln('Persamaan Ketiga');
write('x awal = ');readln(x[0]); write('Toleransi = ');readln(c); write('Jumlah iterasi max = ');readln(d); it:=0;
n:=c+1;
writeln(' it x g(x) Ea'); while ((it <= d) and (n > c)) do begin
x[it+1]:=sqrt(5-(3*x[it]));
writeln(it:3,' ',x[it]:8:5,' ',x[it+1]:8:5,' ',abs((x[it+1]-x[it])/x[it+1]):4); n:=abs(x[it+1]-x[it]); inc(it); end; if (it<=d) then begin writeln('Toleransi terpenuhi'); writeln('Hasil akhir = ',x[it]:9:7); end
else writeln('Toleransi tidak terpenuhi'); readln;
end.
Hasil Output Tipe 3 ‘Tidak Bisa Dijalankan’
TIPE 4 Program M0209054; uses crt; var x : array [0..1000] of real; it,d : integer; b,c,n : real; begin clrscr;
Komputasi Fisika
writeln('PROGRAM ALGORITMA METODE ITERASI SEDERHANA':50);writeln; writeln('Persamaan Keempat');
write('x awal = ');readln(x[0]); write('Toleransi = ');readln(c); write('Jumlah iterasi max = ');readln(d); it:=0;
n:=c+1;
writeln(' it x g(x) Ea'); while ((it <= d) and (n > c)) do begin
x[it+1]:=5/(3+x[it]);
writeln(it:3,' ',x[it]:8:5,' ',x[it+1]:8:5,' ',abs((x[it+1]-x[it])/x[it+1]):4); n:=abs(x[it+1]-x[it]); inc(it); end; if (it<=d) then begin writeln('Toleransi terpenuhi'); writeln('Hasil akhir = ',x[it]:9:7); end
else writeln('Toleransi tidak terpenuhi'); readln;
end.
Hasil Output Tipe 4
PROGRAM ALGORITMA METODE ITERASI SEDERHANA Persamaan Keempat
x awal = 1 Toleransi = 0.0001 Jumlah iterasi max = 100 it x g(x) Ea 0 1.00000 1.25000 2.0E-0001 1 1.25000 1.17647 6.2E-0002 2 1.17647 1.19718 1.7E-0002 3 1.19718 1.19128 5.0E-0003 4 1.19128 1.19295 1.4E-0003 5 1.19295 1.19248 4.0E-0004 6 1.19248 1.19261 1.1E-0004 7 1.19261 1.19257 3.2E-0005 Toleransi terpenuhi Hasil akhir = 1.1925738
Komputasi Fisika
Analisa Data
Sebuah fungsi f(x) x2 3x5dijadikan pokok permasalahan untuk dicari akar-akar persamaannya. Untuk pemecahannya digunakan metode iterasi sederhana, dimana metode iterasi sederhana adalah metode yang memisahkan x dengan sebagian x yang lain sehingga diperoleh: x = g(x), dikenal juga sebagai metode x = (x). Bentuk iterasi satu titik ini dapat dituliskan dalam bentuk x(n+1) = g (xn). Dimana n = 0,1,2,3…
Digunakan 4 tipe x untuk menyusun kembali persamaan tersebut dalam bentuk x=g(x), yakni Tipe 1: 3 5 2 ) 1 ( x xn Tipe 2: ( 1) 5 3 x xn Tipe 3: 3 5 2 ) 1 ( x xn Tipe 4: x(n1) 53x Tipe 1 2 3 4 xawal 1 1 1 1 Nilai Toleransi 0.0001 0.0001 0.0001 0.0001 Iterasi Maksimum 100 100 100 100 Akar-akar (xn) 1.1926198 -4.1925940 - 1.1925738
Dari hasil-hasil program, tampak pada persamaan tipe 1 & 4 memberikan hasil yang konvergen, sedangkan persamaan tipe 2 tidak konvergen, dan tipe 3 tidak memberikan mampu meberikan akar yang dicari. Dari table hasil, dapat kita lihat bahwa tipe 1, 2, maupun 4 tidak memberikan akar yang sama. Tipe 1 dan 4 hanya berbeda tingkat ketelitiannya saja, sedangkan tipe 2 mempunyai akar lain dari fungsi.
Komputasi Fisika
METODE FALSE POSITION program false_position; uses crt; var n,a,m,b,fa,fb,fm,tol : real; iter_max,it : integer; function f(x:real):real; begin f:= sqr(x)+ 3*x - 5; end; begin clrscr;
writeln ('PROGRAM FALSE POSITION':50); writeln; write ('Batas Bawah (b) = '); readln (a);
write ('Batas Atas (a) = '); readln (b); write ('toleransi = '); readln (tol);
write ('Iterasi Maksimum = '); readln (iter_max); it:=0;
fa:=f(a); fb:=f(b); If (Fa*Fb > 0)
then writeln('nilai F(a) x F(b) > 0') else begin
writeln (' it. a m b f(a) f(b) |f(b)-f(a)]/2|'); n:=tol+1;
while ((it <= iter_max) and ( n > tol)) do begin
it:=it+1;
m:= b-((f(b)*(a-b))/((f(a)-f(b)))); fm:=f(m);
writeln (it:4,' ',a:8:3,' ',m:8:3,' ',b:8:3,' ',fa:8:3,' ',fm:8:3,' ',abs(fb-fa)/2:12:7); n:=abs(m-a); if (fa * fm <= 0) then begin b:=m; fb:=fm; end else begin
Komputasi Fisika a:=m; fa:=fm; end; end; if (n <= tol) then begin writeln('toleransi terpenuhi'); writeln('hasil akhir= ',m:9:7); end
else writeln('toleransi tidak terpenuhi'); end;
readln; end.
Output Hasil PROGRAM FALSE POSITION Batas Bawah (b) = 0
Batas Atas (a) = 5
toleransi = 0.00000001 Iterasi Maksimum = 100
it. a m b f(a) f(b) |f(b)-f(a)]/2|
1 0.000 0.625 5.000 -5.000 -2.734 20.0000000 2 0.625 0.942 5.000 -2.734 -1.286 18.8671875 3 0.942 1.086 5.000 -1.286 -0.563 18.1432472 4 1.086 1.148 5.000 -0.563 -0.239 17.7815619 5 1.148 1.174 5.000 -0.239 -0.100 17.6193730 6 1.174 1.185 5.000 -0.100 -0.042 17.5499268 7 1.185 1.189 5.000 -0.042 -0.017 17.5207628 8 1.189 1.191 5.000 -0.017 -0.007 17.5086141 9 1.191 1.192 5.000 -0.007 -0.003 17.5035703 10 1.192 1.192 5.000 -0.003 -0.001 17.5014792 11 1.192 1.192 5.000 -0.001 -0.001 17.5006127 12 1.192 1.193 5.000 -0.001 -0.000 17.5002538 13 1.193 1.193 5.000 -0.000 -0.000 17.5001051 14 1.193 1.193 5.000 -0.000 -0.000 17.5000435 15 1.193 1.193 5.000 -0.000 -0.000 17.5000180 16 1.193 1.193 5.000 -0.000 -0.000 17.5000075 17 1.193 1.193 5.000 -0.000 -0.000 17.5000031 18 1.193 1.193 5.000 -0.000 -0.000 17.5000013 19 1.193 1.193 5.000 -0.000 -0.000 17.5000005 20 1.193 1.193 5.000 -0.000 -0.000 17.5000002
Komputasi Fisika 21 1.193 1.193 5.000 -0.000 -0.000 17.5000001 22 1.193 1.193 5.000 -0.000 -0.000 17.5000000 toleransi terpenuhi hasil akhir= 1.1925824 Output Hasil 2 PROGRAM FALSE POSITION
Batas Bawah (b) = -5 Batas Atas (a) = 0
toleransi = 0.00000001 Iterasi Maksimum = 100
it. a m b f(a) f(b) |f(b)-f(a)]/2|
1 -5.000 -2.500 0.000 5.000 -6.250 5.0000000 2 -5.000 -3.889 -2.500 5.000 -1.543 5.6250000 3 -5.000 -4.151 -3.889 5.000 -0.222 3.2716049 4 -5.000 -4.187 -4.151 5.000 -0.029 2.6112496 5 -5.000 -4.192 -4.187 5.000 -0.004 2.5147023 6 -5.000 -4.192 -4.192 5.000 -0.001 2.5019203 7 -5.000 -4.193 -4.192 5.000 -0.000 2.5002504 8 -5.000 -4.193 -4.193 5.000 -0.000 2.5000327 9 -5.000 -4.193 -4.193 5.000 -0.000 2.5000043 10 -5.000 -4.193 -4.193 5.000 -0.000 2.5000006 11 -5.000 -4.193 -4.193 5.000 -0.000 2.5000001 12 -5.000 -4.193 -4.193 5.000 -0.000 2.5000000 13 -5.000 -4.193 -4.193 5.000 -0.000 2.5000000 14 -5.000 -4.193 -4.193 5.000 -0.000 2.5000000 15 -5.000 -4.193 -4.193 5.000 -0.000 2.5000000 16 -5.000 -4.193 -4.193 5.000 -0.000 2.5000000 17 -5.000 -4.193 -4.193 5.000 -0.000 2.5000000 18 -5.000 -4.193 -4.193 5.000 -0.000 2.5000000 19 -5.000 -4.193 -4.193 5.000 -0.000 2.5000000 20 -5.000 -4.193 -4.193 5.000 0.000 2.5000000 21 -4.193 -4.193 -4.193 0.000 0.000 0.0000000 toleransi terpenuhi hasil akhir= -4.1925824 Analisa Data
Sebuah fungsi f(x) x2 3x5dijadikan pokok permasalahan untuk dicari akar-akar persamaannya. Untuk pemecahannya digunakan metode False Position. Ketika menggunakan:
Komputasi Fisika
Batas Atas 5 0
Nilai Toleransi 0.00000001 0.00000001 Akar-akar (xn) 1.1925824 -4.1925824
Metode False Position merupakan perbaikan dari metode Bisection. Metode False Position menggunakan taksiran persamaan grafik yang perpotongan garis lurus pada sumbu x nya 2 2 1 1 ' ) ( ' ) ( x x x f x x x f ( ) ( ) ) )( ( 2 ' 2 1 2 1 2 x f x f x x x f x x
. Pada batas -5<x<0 diperkirakan bernilai akar -4.1925824. Sedangkan dengan batas 0<x<5 diperkirakan mempunyai akar 1.1925824. Besarnya nilai toleransi sangat mempengaruhi nilai ketelitian pada hasil akhir. Semakin kecil toleransinya akan semakin teliti pula hasil akhirnya.
METODE NEWTON RHAPSON Program M0209054;
uses crt; var
it,iter_max : integer; x0,x1,fa,fb,f1a,n,tol : real; function f (x:real) : real; Begin
f:=sqr(x)+3*x-5; end;
function f1 (x:real) : real; begin
Komputasi Fisika end;
begin clrscr;
writeln ('PROGRAM NEWTON RHAPSON':50);
writeln ('---');writeln; write ('Tebakan akar (X0) = '); readln (x0);
write ('Nilai Toleransi = '); readln (tol);
write ('Jumlah iterasi = '); readln (iter_max);writeln; it:=0;
writeln (' Iter X X1 F(X0) F1(X0) F(X1) N '); writeln ('---'); n:=tol+1;
while ((it <= iter_max) and (n>tol)) do begin it := it+1; x1 := x0-f(x0)/f1(x0); fa := f(x0); fb := f(x1); f1a:= f1(x0); n := abs(x1-x0);
writeln (it:4,' ',x0:8:3,' ',x1:10:3,' ',fa:10:3,' ',f1a:10:3,' ',fb:10:3,' ',n:10:3); x0 := x1;
end; if (n<tol) then begin
writeln ('---'); writeln ('toleransi terpenuhi');
write ('hasil akhir = ',x1:8:7); end
else
writeln ('toleransi tidak terpenuhi'); readln;
Komputasi Fisika
Hasil Output 1
PROGRAM NEWTON RHAPSON
--- Tebakan akar (X0) = 0 Nilai Toleransi = 0.00000001 Jumlah iterasi = 100 Iter X X1 F(X0) F1(X0) F(X1) N --- 1 0.000 1.667 -5.000 3.000 2.778 1.667 2 1.667 1.228 2.778 6.333 0.192 0.439 3 1.228 1.193 0.192 5.456 0.001 0.035 4 1.193 1.193 0.001 5.386 0.000 0.000 5 1.193 1.193 0.000 5.385 0.000 0.000 --- toleransi terpenuhi hasil akhir = 1.1925824 Hasil Ouput 2
PROGRAM NEWTON RHAPSON
--- Tebakan akar (X0) = -5 Nilai Toleransi = 0.00000001 Jumlah iterasi = 100 Iter X X1 F(X0) F1(X0) F(X1) N --- 1 -5.000 -4.286 5.000 -7.000 0.510 0.714 2 -4.286 -4.194 0.510 -5.571 0.008 0.092 3 -4.194 -4.193 0.008 -5.388 0.000 0.002 4 -4.193 -4.193 0.000 -5.385 0.000 0.000 5 -4.193 -4.193 0.000 -5.385 0.000 0.000 --- toleransi terpenuhi hasil akhir = -4.1925824
Komputasi Fisika
Analisa Data
Sebuah fungsi f(x) x2 3x5dijadikan pokok permasalahan untuk dicari akar-akar persamaannya. Untuk pemecahannya digunakan metode Newton Rhapson, dimana metode Newton Rhapson merupakan salah satu metode penyelesaian akar-akar persamaan non linier f(x) membagi daerah sebuah garis fungsi menjadi sama besar (dibagi menjadi dua bagian). Ketika menggunakan:
Tebakan akar (x0) 5 0 -5
Nilai Toleransi 0.00000001 0.00000001 0.00000001 Akar-akar (Xn) 1.1925824 1.1925824 -4.1925824
Dalam metode Newton-Rhapson, diawal kita harus menentukan f’(x) dan f’’(x) dari f(x). Setelah itu kita menebak akar dari fungsi tersebut lalu diujikan 1
) ( ' ). ( ' ) ( '' ). ( 0 0 0 0 x f x f x f x f . Jika x tebakan akar tersebut memenuhi persamaan maka dilanjutkan dengan iterasi (pengulangan)
) ( ' ) ( 1 i i i i x f x f x
x , jika tidak maka akan dimintai nilai x lagi. Akar x akan semakin akurat, jika nilai f(x) semakin mendekati 0.
Kelemahan Metode Newton-Rhapson antara lain:
- Jika fungsi f(x) mempunyai beberapa akar (titik) penyelesaian, akar-akar penyelesaian tersebut tidak dapat dicari secara bersamaan.
- Tidak dapat mencari akar kompleks (imajiner).
- Tidak bias mencari akar persamaan yant tidak memenuhi persayaratan persamaannya, meskipun ada akar penyelesainnya.
- Untuk persamaan non linier yang cukup kompleks, pencarian turunan pertama dan kedua f(x) akan menjadi sulit.
Komputasi Fisika METODE SECANT Program M0209054; uses crt; var it,iter_max : integer; x2,x1,x0,n,tol : real; function f(x:real) : real; begin
f:=sqr(x)+3*x-5; end;
begin clrscr;
writeln ('PROGRAM METODE SECANT':50);writeln; write ('Masukkan X0 = ');readln(x0);
write ('Masukkan X1 = ');readln(x1); write ('Toleransi = ');readln(tol);
write ('Iterasi maksimal = '); readln(iter_max); it:=0;
writeln ('Iterasi X1 X2 X3 F(X1) F(X2) F(X3) N '); N:=tol+1;
while (it<=iter_max) and (N>tol) do begin it:=it+1; x2:=x1-(f(x1)*(x1-x0)/(f(x1)-f(x0))); N:=abs(x2-x1); writeln(it:2,' ',x0:8:3,' ',x1:8:3,' ',x2:8:3,' ',f(x0):8:3,' ',f(x1):8:3,' ',f(x2):8:3,' ',N:8:3); x0:=x1; X1:=X2; end; if (N<tol) then begin
writeln ('toleransi terpenuhi'); write ('Hasil akhir = ',x2:8:7); end
Komputasi Fisika
writeln ('toleransi tidak terpenuhi'); readln;
end.
Hasil Output 1 PROGRAM METODE SECANT Masukkan X0 = 0 Masukkan X1 = 5 Toleransi = 0.00000001 Iterasi maksimal = 100 Iterasi X1 X2 X3 F(X1) F(X2) F(X3) N 1 0.000 5.000 0.625 -5.000 35.000 -2.734 4.375 2 5.000 0.625 0.942 35.000 -2.734 -1.286 0.317 3 0.625 0.942 1.224 -2.734 -1.286 0.169 0.282 4 0.942 1.224 1.191 -1.286 0.169 -0.008 0.033 5 1.224 1.191 1.193 0.169 -0.008 -0.000 0.002 6 1.191 1.193 1.193 -0.008 -0.000 0.000 0.000 7 1.193 1.193 1.193 -0.000 0.000 -0.000 0.000 toleransi terpenuhi Hasil akhir = 1.1925824 Hasil Output 2
Komputasi Fisika
PROGRAM METODE SECANT Masukkan X0 = -5 Masukkan X1 = 0 Toleransi = 0.00000001 Iterasi maksimal = 100 Iterasi X1 X2 X3 F(X1) F(X2) F(X3) N 1 -5.000 0.000 -2.500 5.000 -5.000 -6.250 2.500 2 0.000 -2.500 10.000 -5.000 -6.250 125.000 12.500 3 -2.500 10.000 -1.905 -6.250 125.000 -7.086 11.905 4 10.000 -1.905 -1.266 125.000 -7.086 -7.195 0.639 5 -1.905 -1.266 -43.379 -7.086 -7.195 1746.616 42.113 6 -1.266 -43.379 -1.439 -7.195 1746.616 -7.246 41.940 7 -43.379 -1.439 -1.612 1746.616 -7.246 -7.237 0.173 8 -1.439 -1.612 -143.465 -7.246 -7.237 20146.716 141.853 9 -1.612 -143.465 -1.663 -7.237 20146.716 -7.223 141.802 10 -143.465 -1.663 -1.714 20146.716 -7.223 -7.204 0.051 11 -1.663 -1.714 -20.823 -7.223 -7.204 366.130 19.109 12 -1.714 -20.823 -2.083 -7.204 366.130 -6.911 18.740 13 -20.823 -2.083 -2.430 366.130 -6.911 -6.385 0.347 14 -2.083 -2.430 -6.652 -6.911 -6.385 19.289 4.222 15 -2.430 -6.652 -3.480 -6.385 19.289 -3.330 3.172 16 -6.652 -3.480 -3.947 19.289 -3.330 -1.263 0.467 17 -3.480 -3.947 -4.232 -3.330 -1.263 0.215 0.285 18 -3.947 -4.232 -4.191 -1.263 0.215 -0.010 0.041 19 -4.232 -4.191 -4.193 0.215 -0.010 -0.000 0.002 20 -4.191 -4.193 -4.193 -0.010 -0.000 0.000 0.000 21 -4.193 -4.193 -4.193 -0.000 0.000 -0.000 0.000 toleransi terpenuhi Hasil akhir = -4.1925824 Analisa Data
Sebuah fungsi f(x) x2 3x5dijadikan pokok permasalahan untuk dicari akar-akar persamaannya. Kali ini pemecahannya digunakan metode Secant, dimana metode Secant Metode secant merupakan perbaikan dari metode Newton Rhapson, yaitu nilai turunan f’(x) didekati dengan beda hingga (∆).. Ketika menggunakan:
Batas Bawah 0 -5
Batas Atas 5 0
Nilai Toleransi 0.00000001 0.00000001 Akar-akar (Xn) 1.1925824 -4.1925824
Komputasi Fisika
Algoritma metode secant dimulai dengan menentukan x0, x1, toleransi dan jumlah iterasi maksimum. Setelah itu menentukan
) 0 1 0 1 1 1 ( ) ( ) )( ( x f x f x x x f x xbaru
. Jika xbaru x1 toleransi, maka diperoleh xbaru sebagai hasil perhitungan. Keuntungan menggunakan metode secant yakni cepat konvergen, namun tidak selalu konvergen terkadang bisa divergen. Hasil akar yang didapat dari metode Secant hanya satu akar saja dari tiap iterasi.
Kesimpulan:
Metode bisection membagi daerah sebuah garis fungsi menjadi sama besar (dibagi menjadi dua bagian). Metode iterasi sederhana adalah metode yang memisahkan x dengan sebagian x yang lain sehingga diperoleh: x = g(x), dikenal juga sebagai metode x = (x). Bentuk iterasi satu titik ini dapat dituliskan dalam bentuk x(n+1) = g (xn). Metode Newton Rhapson merupakan salah satu metode penyelesaian akar-akar persamaan non linier f(x) membagi daerah sebuah garis fungsi menjadi sama besar (dibagi menjadi dua bagian). Metode secant merupakan perbaikan dari metode Newton Rhapson, yaitu nilai turunan f’(x) didekati dengan beda hingga (∆).
Dari hasil-hasil akar di tiap metode, mempunyai ketelitian yang sama, kecuali pada metode iterasi satu titik sederhana. Dikarenakan toleransi yang digunakan berbeda dengan metode yang lainnya. Besarnya toleransi mempengaruhi nilai ketelitian pada hasil akhir. Dapat disimpulakan bahwa fungsi f(x) x2 3x5mempunyai perkiraan akar: