PERSAMAAN TAK LINIER TUNGGAL.doc

25
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 = x 1 x i = tebakan awal x 2 = f(x 1 ) x 3 = f(x 2 ) x i+1 = f(x i ) dst Perhitungan dihentikan bila : ≤ toleransi (sesatan) i = 1,2,3, … (bilangan bulat positif) Kondisi penyelesaian dengan metode substitusi berurut :

Transcript of PERSAMAAN TAK LINIER TUNGGAL.doc

Page 1: PERSAMAAN TAK LINIER TUNGGAL.doc

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 :

Page 2: PERSAMAAN TAK LINIER TUNGGAL.doc

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)

Page 3: PERSAMAAN TAK LINIER TUNGGAL.doc

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

Page 4: PERSAMAAN TAK LINIER TUNGGAL.doc

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

Page 5: PERSAMAAN TAK LINIER TUNGGAL.doc

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

Page 6: PERSAMAAN TAK LINIER TUNGGAL.doc

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 =

Page 7: PERSAMAAN TAK LINIER TUNGGAL.doc

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 =

Page 8: PERSAMAAN TAK LINIER TUNGGAL.doc

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 =

Page 9: PERSAMAAN TAK LINIER TUNGGAL.doc

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

Page 10: PERSAMAAN TAK LINIER TUNGGAL.doc

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.

Page 11: PERSAMAAN TAK LINIER TUNGGAL.doc

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 :

Page 12: PERSAMAAN TAK LINIER TUNGGAL.doc

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

Page 13: PERSAMAAN TAK LINIER TUNGGAL.doc

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;

Page 14: PERSAMAAN TAK LINIER TUNGGAL.doc

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

Page 15: PERSAMAAN TAK LINIER TUNGGAL.doc

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

Page 16: PERSAMAAN TAK LINIER TUNGGAL.doc

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

Page 17: PERSAMAAN TAK LINIER TUNGGAL.doc

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;

Page 18: PERSAMAAN TAK LINIER TUNGGAL.doc

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

Page 19: PERSAMAAN TAK LINIER TUNGGAL.doc

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)

Page 20: PERSAMAAN TAK LINIER TUNGGAL.doc

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.

Page 21: PERSAMAAN TAK LINIER TUNGGAL.doc