PENDAHULUAN
1.1
Tujuan
1.
Dapat menghitung akar persamaan nonlinear dengan metode Biseksi, dan Metode
2.
Newton Raphson
Mencari besarnya kesalahan dari suatu perhitungan akar persamaan nonlinear dengan
metode Biseksi, dan Metode Newton Raphson.
1.2 Permasalahan
1. Buatlah program untuk menghitung akar permasalahan non linear dengan
menggunakan bahasa Pascal, percarian kar dari f(x) = ex + x2 3x -2 = 0 dengan
terdapat sebuah akar riil dalam selang [-1.0, 1.0]. Carilah akar tersebut dengan
toleransi kesalahan le-5 dengan menggunakan metode dibawah ini :
1. Metode Biseksi
2. Metode Newton-Rapshon
3. Metode Secant
1.3Dasar Teori
1.
Metode Biseksi
Dalam metode Biseksi, interval yang mengandung akar dibagi menjadi dua
secara berurutan hinggga ukuran interval mengecil dan akhirnya mencapai harga
toleransi kesalahan yang diinginkan. Dalam interval [a,b] terdapat sebuah akar (yang
akan dicari), apabila dipenuhi : ()()0
Algoritma
Masukan :
Batas kiri dan kanan interval, dan
jika ()()<0,
maka =
Jika tidak, =
baharui harga : =0.5(+)
Akar pendekatan =
Selesai
2.
iter=0
Hitung () dan ()
3.
iter=iter+1
+1= ()()
= |+1|
Jika& iter>maxit maka Akar pendekatan = xc+1, Selesai
= +1, kembali ke langkah 2
Metode Secant
Metode Newton memerlukan perhitungan turunan pertama fungsi. Karena itu,
tidak semua fungsi mudah dicari turunan pertamanya, terutama fungsi yang rumit.
Turunan fungsi tersebut digantikan dengan bentuk yang ekuivalen. ()= ()
(1)1
Algoritma :
Masukan :
Fungsi, dinyatakan sebagai ()
Harga Tebakan awal 0,
Toleransi , maksimum iterasi
Keluaran :
Akar pendekatan, +1
Proses :
iter=0
Hitung (0),()
iter=iter+1
+1= ()(0)()(0)
= |+1|
Jika & iter>maxit maka Akar pendekatan = xc+1, Selesai
= +1, 0= kembali ke langkah 2
BAB II
PEMBAHASAN
2.1 Source Code
1. Metode Biseksi
{***********************************************************}
dengan Metode
Biseksi
Dibuat oleh :
Nama
NIM
: 24010314140117
{***********************************************************}
program biseksi;
uses crt;
var e,data,maxit,x1,xr,xm,tol,epsilon,F_x1,F_xr,F_xm,galat : real;
iter:integer;
function f(x : real) : real;
begin
e := 2.718;
f := exp (x * ln(e))+x*x-3*x-2;
end;
BEGIN
clrscr;
writeln('=====================================================');
writeln('|
|');
writeln('|
|');
writeln('|
|');
writeln('|
Metode Biseksi
|');
witeln('=====================================================');
writeln;
writeln('-----------------------------------------------------');
data := 1.446;
writeln('Mencari Akar Persamaan Nonlinier ');
writeln('f(x) = e^x+x^2-3x-2');
writeln('Metode Biseksi');
writeln('---------------------------------------------------');
writeln;
write('Masukkan Batas bawah
= ');read(x1);
= ');read(xr);
write('Toleransi
= ');read(tol);
= ');read(maxit);
iter:=0;
F_x1 := f(x1);
F_xr := f(xr);
if F_x1 * F_xr > 0 then
begin
writeln('Nilai F(x1)*F(xr) > 0')
end
else
begin
writeln();
writeln('-------------------------------------------------');
writeln('|iter |x1|x|xr| f(x1) | f(xr) | abs[f(xr)-f(x1)/2]|
galat
|');
writeln('-------------------------------------------------');
epsilon := tol+1;
while ((iter<=maxit) and (epsilon>tol))
do
begin
iter := iter+1;
xm := (x1+xr)/2;
F_xm := f(xm);
galat := data-abs(xm);
writeln('|',iter:2,'
|',x1:7:3,'|',xm:7:3,'|',xr:7:3,'|',F_x1:7:3,'|',F_xr:7:3,'|
',(abs(F_x1 + F_xr)/2):7:3,' |',galat:7:3,'
epsilon := abs(xm-x1);
if(F_x1 * F_xm <= 0) then
begin
xr := xm;
F_xr := F_xm;
end
else
begin
x1 := xm;
F_x1 := F_xm;
end;
end;
end;
if (iter <= maxit) then
|');
begin
writeln('-----------------------------------------');
writeln('toleransi terpenuhi');
writeln('hasil akhir = ', xm:9:7);
readln();
end
else
begin
writeln('------------------------------------');
writeln('toleransi tidak terpenuhi ');
end;
readkey();
END.
2. Metode NewtonRapshon
{***********************************************************}
{
Dibuat oleh :
Nama
NIM
: 24010314140117
{***********************************************************}
program Newton_Rapshon;
uses crt;
var
e,x0,xb,epsilon,data,tol,galat : real;
maxit,iter: integer;
BEGIN
clrscr;
writeln('==================================================');
writeln('|
|');
writeln('|
|');
writeln('|
|');
writeln('|
Metode NewtonRapshon
|');
writeln('====================================================');
writeln;
writeln('--------------------------------------------------');
data :=1.446;
writeln('Mencari Akar Persamaan Nonlinear
');
writeln('f(x) = e^x+x^2-3x-2
');
');
writeln( '-----------------------------------------------------');
writeln;
write('Masukkan Nilai awal
= ');read(x0);
write('Toleransi
= ');read(tol);
| f(x
) | f(x
) | epsilon
| galat
|');
writeln('---------------------------------------------------');
while ((iter<=maxit) and (epsilon >tol)) do
begin
iter := iter +1;
xb := x0-f(x0)/f1(x0);
epsilon := abs(xb-x0);
galat :=data-abs(xb);
writeln('| ',iter,'
',f1(x0):3:5,' |
',epsilon:3:5,'
x0 := xb;
end;
if(iter<=maxit) then
begin
| ',x0:3:5,' |
|
',f(x0):3:5,'
',galat:3:5,'|');
writeln('---------------------------------------');
writeln('toleransi terpenuhi');
writeln('hasil akhir
= ', xb:9:7);
end
else
begin
writeln('---------------------------------------------');
writeln ('toleransi tidak terpenuhi ');
end;
readkey();
END.
3. Metode Secant
{***********************************************************}
{
Dibuat oleh :
}
}
}
}
Nama
: Inna Alvi N
NIM
: 24010314140117
}
}
}
{***********************************************************}
program Secant;
uses crt;
var
e,x0,xc,xb,tol,data,epsilon,fxc,fx,delta,galat:real;
maxit,iter:integer;
function f(x : real) : real;
begin
e := 2.718;
f:=exp (x * ln(e))+x*x-3*x-2;
end;
BEGIN
clrscr;
data := 1.446;
writeln('============================================
=');
writeln('|
writeln('|
|');
writeln('|
writeln('|
Metode Secant
|');
|');
writeln('==============================================')
;
writeln;
writeln('---------------------------------------------');
writeln('Mencari Akar Persamaan Nonlinear
');
writeln('f(x)=e^x+x^2-3x-2;
');
writeln('MetodeSecant
');
writeln( '--------------------------------------------');
writeln;
write('Nilai x0
= ');readln(x0);
write('Nilai x1
= ');readln(xc);
write('Toleransi
= ');readln(tol);
= ');readln(maxit);
iter :=0;
epsilon := tol+1;
writeln;
writeln('---------------------------------------------');
writeln('| iter |
x0 | xc
| fxc |epsilon
| galat
|');
writeln('---------------------------------------------');
while ((iter<=maxit) and (epsilon >tol)) do
begin
iter := iter +1;
fx:=f(x0);
fxc:=f(xc);
xb:=xc-(fxc*(xc-x0)/(fxc-fx));
epsilon := abs(xc-x0);
galat := data-abs(xc);
writeln('|
',xc:3:5,'
',fxc:3:5,'
',iter,'
|
',x0:3:5,'
',epsilon:3:5,'
|
|
',galat:3:5,' |' );
x0 := xc;
xc := xb;
end;
writeln('=============================================');
writeln;
if(iter<=maxit) then
begin
writeln('toleransi terpenuhi');
writeln('hasil akhir
= ', xc:9:7);
end
else
writeln ('toleransi tidak terpenuhi ');
readln;
END.
2.2 Pejelasan
1. Metode Biseksi
Berikut adalah penjelasan atau langkah-langkah menghitung akar persamaan non
linear dengan metode biseksi
-
Diketahui f(x) = ex + x2 3x -2
-
Kemudian input nilai batas atas dan batas bawah dengan batas bawah = 0 dan
batas atas = -1
Kemudian inputkan nilai dari iterasi maksimum sesuai yang anda inginkan,
disini saya inputkan nilai iterasi maksimum = 20
Iterasi pertama
-
Iterasi Ketiga
- xc = -0,394
- Menghitung nilai f(xc) & f(xc)
f(xc) = exc + xc2 3xc 2 = e-0,394 + -0,3942 3(-0,394) 2 = 0,011
f(xc) = exc + 2*xc 3 = e-0,394 + 2*-0,394 3 = -3,113
- Xc+1 = xc f(xc) / f(xc) = -00,394 0,011 / -3,113 = -0,3902
- Epsilon = |xc+1 - xc| = |-0,3902 (-0,394) | = 0,0037
- Galat = data -|xc+1| = 1,446 (-0,3902) = 1,055
- Kemudian nilai xc+1 akan dimasukkan kedalam variabel xc
Iterasi Keempat
- xc = -0,3902
- Menghitung nilai f(xc) & f(xc)
f(xc) = exc + xc2 3xc 2 = e-0,3902 + (-0,3902)2 3(-0,3902) 2 =
1,897
f(xc) = exc + 2*xc 3 = e-0,3902 + 2*-0,3902 3 = -3,103
-
atas = -1
Kemudian masukkan nilai toleransi = 0.00001
Masukkan nilai iterasi maksimum = 20
X0 = 0 dan xc = -1
Kemudian menghitung nilai f(x0) dan f(xc)
f(x0) = ex0 + x02 3x0 2 = e0 + 02 3(0) 2 = 1 + 0 0 2 = -1
f(xc) = exc + xc2 3xc 2 = e-1 + (-1)2 3(-1) 2 = 0,368 + 2 = 2,368
Iterasi Pertama
- x0 = 0, xc = -1
- f(x0) = ex0 + x02 3x0 2 = e0 + (0)2 3(0) 2 =1 2 = -1
- f(xc) = exc + xc2 3xc 2 = e-1 + (-1)2 3(-1) 2 = (2,718)-1 + 1 + 3 2
-
= 0,368 + 2 = 2,368
xb = xc (f(xc) * (xc x0) / ( f(xc) f(x0) )) = -1 (2,368 * (-1 0) /
Iterasi Kedua
- x0 = -1, xc = -0,297
- f(x0) = ex0 + x02 3x0 2 = e-1 + (-1)2 3(-1) 2 =
= (2,718)-1 + 1 + 3 2 = 0,368 + 2 = 2,368
- f(xc) = exc + xc2 3xc 2 = e-0,297 + (-0,297)2 3(-0,297) - 2
= 0,743 + 0,088209 + 0,891 -2 = -0,277
- xb = xc (f(xc) * (xc x0) / ( f(xc) f(x0) ))
= -0,297 (-0,277 * (-0,297 (-1)) / (-0,277 2,367 ))
= -0,297 - ( -0,194 / -2,644) = -0,370
- Epsilon = |xc x0| = | -0,297 (-1) | = 0,703
- Galat = data - |xc| = 1,446 - |-0,297| = 1,149
- Kemudian nilai xc diinisialisasikan ke dalam variabel xo, sedangkan
nilai xb diisinilaisasikan ke variabel xc.
Iterasi Ketiga
- x0 = -0,297, xc = -0,370
- f(x0) = ex0 + x02 3x0 2 = e-0,297 + (-0,297)2 3(-0,297) - 2
= 0,743 + 0,088209 + 0,891 -2 = -0,277
- f(xc) = exc + xc2 3xc 2 = e-0,370 + (-0,370)2 3(-0,370) - 2
= 0,690+ 0,137 + 1,112 -2 = -0,059
- xb = xc (f(xc) * (xc x0) / ( f(xc) f(x0) ))
= -0,370 (-0,059 * (-0,37 (-0,297)) / (-0,059 (-0,277) ))
= -0,370 - ( -0,004 / 0,218) = -0,391
- Epsilon = |xc x0| = | -0,37 (-0,297) | = 0,073
- Galat = data - |xc| = 1,446 - |-0,370| = 1,076
- Kemudian nilai xc diinisialisasikan ke dalma variabel x0, sedangkan nilai dari xb
diinisialisasikan ke variabel xc
Iterasi keempat
- x0 = -0,370, xc = -0,391
- f(x0) = ex0 + x02 3x0 2 = e-0,370 + (-0,370)2 3(-0,370) - 2
= -0,059
- f(xc) = exc + xc2 3xc 2 = e-0,391 + (-0,391)2 3(-0,391) - 2
= -0,002
- xb = xc (f(xc) * (xc x0) / ( f(xc) f(x0) ))
= -0,391 (-0,002 * (-0,391 (-0,370)) / (-0,002 (-0,059) ))
= -0,3902
- Epsilon = |xc x0| = | -0,391 (-0,370) | = 0,0203
- Galat = data - |xc| = 1,446 - |-0,391| = 1,054
- Kemudian nilai xc akan diinisialisasikan ke dalam variabel x0, sedangkan nilai xb
diinisialisasikan ke dalam variabel xc
Berikut adalah tampilan pada Excel.
2.3 SreenShot
1. Metode Biseksi
BAB III
KESIMPULAN
Dari praktikum kali ini dapat ambil kesimpulan sebagai berikut.
1. Metode Biseksi adalah metode yang digunakan untuk menentukan akar persamaan
non linier melalui proses iterasi. Ide dasar metode Biseksi hanya membagi range
menjadi dua bagian. Kemudian dari dua bagian dipilih bagian mana yang
mengandung penyelesaian dan bagian yang tidak mengandung penyelesaian akan
dibuang. Hal ini dilakukan secara berulang-ulang sampai nilai eror mendekati nol.
2. Metode Newton Raphson, dalam mencari akar suatu fungsi nonlinear = ()
memerlukan evaluasi harga fungsi dan turunannya pada sembarang titik x yang
merupakan harga awal tebakan akar fungsi tersebut. Metode ini didasarkan atas
perluasan deret Taylor di sekitar suatu titik. Karenanya, apabila harga awal tebakan
jauh dari akar sebenarnya, konvergensi akan lambat atau mungkin tidak dicapai sama
sekali.
3. Metode
Secant
tidak
diperlukan
turunan
pertama
dari
fungsi non liniernya, tetapi diperlukan dua buah nilai awal. Dengan rumus :
DAFTAR PUSTAKA
Sidik Sasongko, Priyo. 2013. Modul Praktikum Metode Numerik. Diakses pada hari
minggu, 22 November 2015, pukul 15.10 WIB