Upload
desta-donna-putri-damanik
View
256
Download
14
Embed Size (px)
Citation preview
PERSAMAAN TAK LINIER TUNGGAL (SINGLE NONLINEAR EQUATION)
Dalam teknik kimia sering dijumpai persoalan mencari akar persamaan non-linier:
f(x) = 0 yang sukar diselesaikan dengan manipulasi matematis analitis. Ada beberapa
cara numeris yang bisa dipakai untuk kasus ini. Beberapa metode yang dapat dipakai
dalam menyelesaikan permasalahan ini antara lain adalah :
1. Metode substitusi berurut (successive substitution method)
2. Metode Newton-Raphson (Newton-Raphson method)
3. Metode tali busur (secant method)
4. Metode posisi palsu (regula falsi method)
5. Metode pengetengahan selang (bisection method)
Beberapa dari metode tersebut akan dibahas di bawah ini.
Metode Substitusi Berurut (Successive Substitution Method)
Pada metode ini, bentuk persamaan f(x) = 0 diubah menjadi x = f(x), sehingga :
x = x1 xi = tebakan awal
x2 = f(x1)
x3 = f(x2) xi+1 = f(xi)
dst
Perhitungan dihentikan bila :
≤ toleransi (sesatan)
i = 1,2,3, … (bilangan bulat positif)
Kondisi penyelesaian dengan metode substitusi berurut :
1. Konvergen (convergence) : jika akar yang dicari menuju ke satu akar tertentu,
dimana :
0 < < 1
x1 – x* > x2 – x* > x3 – x* > …
2. Divergen (divergence) : jika akar yang dicari semakin jauh dari akar, dimana :
< 1
x1 – x* < x2 – x* < x3 – x* < …
Untuk mendapatkan penyelesaian, keadaan harus konvergen.
Kedua kondisi ini dapat digambarkan secara grafis :
y = x
y
y = f(x)
x* x3 x2 x1 x0 x
Gambar 3.1 Metode Substitusi berurut (konvergen)
y = f(x)
y y = x
x2 x1 x0 x* x
Gambar 3.2 Metode Substitusi berurut (divergen)
Contoh 1 :
Tentukan harga x dari persamaan berikut dengan metode substitusi berurut :
f(x) = x4 – ex + 1 = 0
Penyelesaian :
f(x) = x4 – ex + 1 = 0
x4 = ex – 1 xi+1 = f(xi)
x = (ex – 1)1/4
Gunakan tebakan awal : x0 = 1
x0 = 1
x1 = (ex – 1)1/4 = ((e1 – 1)1/4 = 1,145
x2 = (e1,145 – 1)1/4 = 1,2098
dst
Hasil selengkapnya penyelesaian tersebut adalah seperti berikut :
i xi
0 1
1 1,1450
2 1,2098
3 1,2385
4 1,2512
5 1,2567
6 1,2592
7 1,2603
8 1,2607
9 1,2609
10 1,2610
11 1,2611
12 1,2611 stabil
Maka akar persamaan : 1,2611
Contoh 2.
Diketahui persamaan Van der waals :
P =
P = 200 atm
R = 0,082054 l.atm/gmol.K
T = 500 K
a = 3,592 l2.atm/gmol2
b = 0,04267 l/gmol
Hitung volume molar (V) pada keadaan tersebut.
Penyelesaian :
P =
P + =
(V – b) = (P + ) = RT
Vi+1 =
Tebakan awal : V0 =
Vi+1 =
Vi+1 =
Hasil selengkapnya penyelesaian tersebut adalah seperti berikut :
i xi
1 0,205135
2 0,1864425
3 0,1774237
11 0,168077
12 0,168077 Stabil
Maka volume molar = 0,168077 l/mol
Pada metode ini :
% kesalahan =
Untuk menyelesaikan persamaan-persamaan tersebut dengan bantuan program komputer
(Matlab), maka terlebih dahulu dibuat algoritma dari metode tersebut.
Contohnya adalah sebagai berikut :
Algoritma : f(x) = x4 – ex + 1 = 0
1. Masukkan toleransi, iterasi = 1
2. Masukkan tebakan awal, x
3. Evaluasi fx
4. Jika : < tol : STOP
Tulis : xakar = fx
5. Jika tidak : x = fx
6. Ulangi langkah 3
7. Selesai
Penyelesaian metode tersebut dengan program Matlab dapat dengan menggunakan
perintah “while … end” atau dengan menggunakan perintah “for … end”. Kedua cara
tersebut dapat dilihat di bawah ini.
Cara 1 :
% Program substitusi berurut : subsitusi.m
% Penyelesaian persamaan : x^4 - e^x + 1 = 0
% maka : fx = (e^x - 1)^0.25
clc
tol = 0.00001;
x = input ('Nilai tebakan awal : ');
iterasi = 0
fx = (exp(x) - 1)^0.25
while abs (2*(fx - x)/(fx + x))> tol
x=fx;
iterasi = iterasi + 1
fx = (exp(x) - 1)^0.25
end
Iterasimaksimum = iterasi
disp ('Maka akar persamaan =');x=fx
Nilai tebakan awal : 1
iterasi =
0
fx =
1.1449
iterasi =
1
fx =
1.2098
iterasi =
2
fx =
1.2385
iterasi =
3
fx =
1.2512
iterasi =
4
fx =
1.2567
iterasi =
5
fx =
1.2592
iterasi =
6
fx =
1.2603
iterasi =
7
fx =
1.2607
iterasi =
8
fx =
1.2609
iterasi =
9
fx =
1.2610
iterasi =
10
fx =
1.2611
iterasi =
11
fx =
1.2611
iterasi =
12
fx =
1.2611
Maka akar persamaan =
x =
1.2611
Cara 2 :
% Program substitusi berurut : subs.m
% Penyelesaian persamaan : x^4 - e^x + 1 = 0
% maka : fx = (e^x - 1)^0.25
clc
tol = 0.00001;
x = input ('Nilai tebakan awal : ');
iterasi = 0
fx = (exp(x) - 1)^0.25
for i = 1:14
x=fx;
iterasi = iterasi + 1
fx = (exp(x) - 1)^0.25
while abs(2*(fx-x)/(fx + x))> tol
break
end
end
disp ('Maka akar persamaan =');x=fx
Nilai tebakan awal : 1
iterasi =
0
fx =
1.1449
iterasi =
1
fx =
1.2098
iterasi =
2
fx =
1.2385
iterasi =
3
fx =
1.2512
iterasi =
4
fx =
1.2567
iterasi =
5
fx =
1.2592
iterasi =
6
fx =
1.2603
iterasi =
7
fx =
1.2607
iterasi =
8
fx =
1.2609
iterasi =
9
fx =
1.2610
iterasi =
10
fx =
1.2611
iterasi =
11
fx =
1.2611
iterasi =
12
fx =
1.2611
iterasi =
13
fx =
1.2611
iterasi =
14
fx =
1.2611
Maka akar persamaan =
x =
1.2611
Dari kedua cara ini dapat disimpulkan bahwa untuk menyelesaikan persamaan tersebut
lebih efisien dengan menggunakan perintah “while … end”, karena program ini secara
otomatis akan bekerja sendiri mencari akar yang dicari dan akan menghentikan iterasi
perhitungan jika kondisi yang diberikan sudah tercapai. Sedangkan pada cara kedua,
eksekusi program akan dihentikan sampai iterasi maksimum yang diberikan selesai,
walaupun kondisi yang diberikan sudah dicapai atau belum. Pada contoh di atas, for i =
1:14, artinya iterasi dilakukan sampai 14 kali.
Metode Newton-Raphson (Newton-Raphson method)
y f(x)
C
x*
A θ1 B
x2 x1 x0 x
tg θ1 = = = = f‘(x0)
= f‘(x0)
x0 – x1 =
x1 = x0 –
tg θ2 = = f‘(x1)
x1 – x2 =
x2 = x1 –
x2 = x1 –
Dengan cara yang sama :
x3 = x2 –
Maka rumus umum Metode Newton – Rahpson :
xi+1 = xi –
Contoh :
Tentukan harga x dari persamaan berikut dengan metode Newton – Rahpson :
f(x) = x4 – ex + 1 = 0
Penyelesaian :
f(x) = x4 – ex + 1 = 0
f’(x) = 4x3 – ex
xi+1 = xi –
xi+1 = xi –
Gunakan tebakan awal : x0 = 1
Hasil selengkapnya penyelesaian tersebut adalah seperti berikut :
i xi
1 1,5604
2 1,3527
3 1,2731
4 1,2613
5 1,2611
6 1,2611 Stabil
Maka akar persamaan : 1,2611
Algoritma metode Newton – Raphson : f(x) = x4 – ex + 1 = 0
1. Masukkan toleransi, iterasi = 1
2. Masukkan tebakan awal, x
3. Evaluasi f(x), f’(x)
4. Evaluasi : x1 = x –
5. Jika : < tol : STOP
Tulis : xakar = x1
6. Jika tidak : x = x1
7. Kembali ke langkah 4
8. Selesai
Penyelesaian metode tersebut dengan program Matlab dilakukan dengan menggunakan
perintah “while … end”. Di bawah ini akan diberikan 2 cara penyelesaian yang
memberikan hasil yang sama. Perbedaan dan persamaan dari kedua cara tersebut dapat
dilihat pada program di bawah ini.
Cara 1:
% Program Newton - Raphson : fnewton1.m
% Penyelesaian persamaan : f(x) = x^4 - e^x + 1 = 0
% f'(x) = 4*x^3 - e^x
clc
tol = 0.00001;
x = input ('Nilai tebakan awal : ');
iterasi = 1
fx = x.^4 - exp(x) + 1;
dfx = 4*x.^3 - exp(x);
x1 = x -(fx/dfx)
while abs (2*(x1-x)/(x1 + x))>tol
x=x1;
iterasi = iterasi + 1
fx = x.^4 - exp(x) + 1;
dfx = 4*x.^3 - exp(x);
x1 = x -(fx/dfx)
end;
iterasimaksimum = iterasi
disp ('akar persamaan =');x=x1
» fnewton1
Nilai tebakan awal : 1
iterasi =
1
x1 =
1.5604
iterasi =
2
x1 =
1.3527
iterasi =
3
x1 =
1.2731
iterasi =
4
x1 =
1.2613
iterasi =
5
x1 =
1.2611
iterasi =
6
x1 =
1.2611
iterasimaksimum =
6
akar persamaan =
x =
1.2611
Cara 2:
% Program utama Newton - Raphson : fnewton.m
% Penyelesaian persamaan : f(x) = x^4 - e^x + 1 = 0
function [x,iterasi] = fnewton(func,dfunc,x,tol);
% x = nilai awal (tebakan awal) ; tol = toleransi (keakuratan)
iterasi = 0;
x0 = x;
d = feval (func,x0)/feval(dfunc,x0);
while abs(d)>tol
x1=x0-d;
iterasi=iterasi+1
x0=x1
d = feval(func,x0)/feval(dfunc,x0);
end;
x = x0;
function F= f201(x);
F = x.^4 - exp(x) + 1;
function F=f202(x);
F = 4*x.^3 - exp(x);
» [x,iterasi] = fnewton('f302','f303',1,0.00001)
iterasi =
1
x0 =
1.5604
iterasi =
2
x0 =
1.3527
iterasi =
3
x0 =
1.2731
iterasi =
4
x0 =
1.2613
iterasi =
5
x0 =
1.2611
x =
1.2611
iterasi =
5
Metode tali busur (secant method)
Metode Newton – Rahpson :
xi+1 = xi – …………………………. 1
Backward difference approximation :
f’(xi) = = ……………….. 2
maka : 2 -----> 1
xi+1 = xi –
Pada metode secant ini, tebakan awal ada 2 buah, yaitu : x0 & x1
Algoritma metode tali busur/secant : f(x) = x4 – ex + 1 = 0
1. Masukkan toleransi, iterasi = 1
2. Masukkan tebakan awal 1, x0
3. Masukkan tebakan awal 2, x1
4. Masukkan f(x0) & f(x1)
5. Evaluasi : x2 = x1 –
6. Evaluasi : f(x2) = x2
7. Jika : < tol : STOP
Tulis : xakar = x2
8. Jika tidak : x0 = x1 ; f(x0) = f(x1)
x1 = x2 ; f(x1) = f(x2)
9. Kembali ke langkah 5
10. Selesai
Penyelesaian metode tersebut dengan program Matlab dilakukan dengan menggunakan
perintah “while … end”.
% Program Tali Busur : tali.m
% Penyelesaian persamaan : f(x) = x^4 - e^x + 1 = 0
clc
tol = 0.00001;
x0 = input ('Nilai tebakan awal, x0 : ');
x1 = input ('Nilai tebakan awal, x1 : ');
iterasi = 1
f0 = x0.^4 - exp(x0) + 1;
f1 = x1.^4 - exp(x1) + 1;
x2 = x1 - f1*(x1-x0)/(f1-f0)
f2=x2;
while abs (2*(x2-x1)/(x2 + x1))>tol
x0=x1;f0=f1;
x1=x2;f1=f2;
iterasi = iterasi + 1
f0 = x0.^4 - exp(x0) + 1;
f1 = x1.^4 - exp(x1) + 1;
x2 = x1 - f1*(x1-x0)/(f1-f0)
end;
iterasimaksimum = iterasi
disp ('akar persamaan =');x=x2
» tali
Nilai tebakan awal, x0 : 1
Nilai tebakan awal, x1 : 2
iterasi =
1
x2 =
1.0695
iterasi =
2
x2 =
1.1247
iterasi =
3
x2 =
1.3340
iterasi =
4
x2 =
1.2427
iterasi =
5
x2 =
1.2589
iterasi =
6
x2 =
1.2612
iterasi =
7
x2 =
1.2611
iterasi =
8
x2 =
1.2611
iterasimaksimum =
8
akar persamaan =
x =
1.2611
Metode posisi palsu (regula falsi method)
Algoritma metode posisi palsu : f(x) = x4 – ex + 1 = 0
1. Masukkan toleransi, iterasi = 1
2. Masukkan tebakan awal 1, x0
3. Masukkan tebakan awal 2, x1
4. Evaluasi f(x0) & f(x1)
5. Evaluasi : x2 = x1 –
6. Jika : < tol : STOP : xakar = x2
- Evaluasi : f(x2)
- Jika f(x2) < 0 ; maka x1 = x2
- Jika tidak, : x0 = x2
7. Kembali ke langkah 4
8. Selesai
Metode pengetengahan selang (bisection method)
Algoritma pengetengahan selang : f(x) = x4 – ex + 1 = 0
1. Masukkan toleransi, iterasi = 1
2. Masukkan tebakan awal 1, x0
3. Masukkan tebakan awal 2, x1
4. Evaluasi f(x0) & f(x1) ------ syarat : f(x0)*f(x1) < 0
5. xm = (x0 + x1)/2
6. Evaluasi f(xm)
7. Jika : f(xm) = 0 : STOP : xakar = xm
8. Jika f(x1)*f(xm) < 0
x0 = xm
x0 = f(xm)
9. Jika f(x1)*f(xm) > 0
x1 = xm
x1 = f(xm)
10. Jika : > tol : Kembali ke langkah 5
11. xakar = (x0 + x1)/2
12. Selesai
Penyelesaian metode tersebut dengan program Matlab dilakukan dengan menggunakan
perintah “while … end”. Penyelesaian metoda posisi palsu dan pengetengahan selang ini
mirip dengan penyelesaian dengan metoda tali busur.