Anda di halaman 1dari 20

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 x2 = f(x1) x3 = f(x2) dst Perhitungan dihentikan bila : x i x i 1 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 < df ( x) < 1 dx xi+1 = f(xi) xi = tebakan awal

x1 x* > x2 x* > x3 x* > 2. Divergen (divergence) : jika akar yang dicari semakin jauh dari akar, dimana : df ( x ) < 1 dx 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

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 x = (ex 1)1/4 Gunakan tebakan awal : x0 = 1 x0 = 1

xi+1 = f(xi)

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 0 1 2 3 4 5 6 7 8 9 10 11 12 xi 1 1,1450 1,2098 1,2385 1,2512 1,2567 1,2592 1,2603 1,2607 1,2609 1,2610 1,2611 1,2611

stabil

Maka akar persamaan : 1,2611 Contoh 2. Diketahui persamaan Van der waals : P= RT a 2 V b V

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 + RT a 2 V b V RT a 2 = V b V a ) = RT V2 +b

(V b) = (P + RT Vi+1 = P + a Vi 2 Tebakan awal : V0 =

(0,082054)(500) RT = = 0,205135 P 200

Vi+1

(0,082054)(500) + 0,04267 = 200 + 3,592 Vi 2 41,027 + 0,04267 = 200 + 3,592 Vi 2 xi 0,205135 0,1864425 0,1774237 0,168077 0,168077

Vi+1

Hasil selengkapnya penyelesaian tersebut adalah seperti berikut : i 1 2 3 11 12

Stabil

Maka volume molar = 0,168077 l/mol Pada metode ini : % kesalahan = 2 * ( x i +1 x i ) * 100 % x i +1 + x i

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 : 2( fx x) /( fx + x) < tol 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 % 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 maka : fx = (e^x - 1)^0.25 : STOP

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)

x*
A

1 x0

B x

x2

x1

tg 1 =

f (x0 ) df ( x 0 ) BC = = = f(x0) x 0 x1 AB dx

f (x0 ) = f(x0) x 0 x1 x0 x1 = f ( x0 ) f ' ( x0 ) f ( x0 ) f ' ( x0 )

x1 = x0

tg 2 =

f ( x1 ) = f(x1) x1 x 2 f ( x1 ) f ' ( x1 ) f ( x1 ) f ' ( x1 )

x1 x2 =

x2 = x1 x2 = x1

f ( x1 ) f ' ( x1 ) f ( x2 ) f ' (x2 )

Dengan cara yang sama : x3 = x2

Maka rumus umum Metode Newton Rahpson : xi+1 = xi f ( xi ) f ' ( 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 f ( xi ) f ' ( xi ) x14 e xi + 1 4 x i3 e xi

Gunakan tebakan awal : x0 = 1 Hasil selengkapnya penyelesaian tersebut adalah seperti berikut : i 1 2 3 4 5 6 xi 1,5604 1,3527 1,2731 1,2613 1,2611 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 f ( x) f ' ( x) : STOP

5. Jika : 2( x1 x) /( x1 + x) < tol 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 % 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 = f'(x) = 4*x^3 - e^x

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 f ( xi ) . 1 f ' ( xi )

Backward difference approximation : f(xi) = f ( x i ) f ( x i 1 ) f ( x i ) f ( x i 1 ) = x i x i 1 x .. 2

maka : 2 -----> 1 xi+1 = xi f ( x i ) [( x i ) ( x i 1 )] f ( x i ) f ( x i 1 )

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 : 2( x 2 x1 ) /( x 2 + x1 ) < tol Tulis : xakar = x2 8. Jika tidak : x0 = x1 x1 = 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;
; ;

f ( x1 ) [( x1 ) ( x 0 )] f ( x1 ) f ( x 0 )

: STOP

f(x0) = f(x1) f(x1) = f(x2)

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 f ( x1 ) [( x1 ) ( x 0 )] f ( x1 ) f ( x 0 ) : STOP : xakar = x2

6. Jika : 2( x 2 x1 ) /( x 2 + x1 ) < tol 8. Selesai Evaluasi : f(x2) Jika f(x2) < 0 ; maka x1 = x2 Jika tidak, : x0 = x2

7. Kembali ke langkah 4

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 : 2( x1 x 0 ) /( x1 + x 0 ) > tol 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. : Kembali ke langkah 5

Anda mungkin juga menyukai