Você está na página 1de 10

Penyelesaian Persamaan Nonlinier secara Numeris

1. Persamaan Matematis
Persamaan matematis dapat dibagi menjadi dua yaitu : a. persamaan garis lurus/persamaan linier b. persamaan kurva/persamaan nonlinier Perbedaan antara persamaan garis lurus dengan persamaan kurva terletak dari bentuk garis yang dihasilkan masing-masing persamaannya. Persamaan linier akan menghasilkan suatu garis lurus apabila digambarkan pada bidang kartesius (garis pada Gambar 1 berwarna merah) sedangkan persamaan nonlinier akan menghasilkan garis berupa kurva seperti yang ditampilkan pada Gambar 1 dengan warna biru.
Y Persamaan Nonlinier berupa Persamaan Kuadrat y=ax2+bx+c y=mx+c

Persamaan Linier

Gambar 1. Ilustrasi persamaan linier dan nonlinier

Secara matematis, persamaan linier merupakan persamaan matematis yang memiliki pangkat tertinggi dari variabel bebas sebesar 1 sedangkan persamaan nonlinier merupakan persamaan matematis yang memiliki pangkat tertinggi dari variabel bebas tidak sama dengan 1 atau mengandung suku eksponensial atau logarima. Perhatikan beberapa persamaan berikut ini : a. b. c. d. e. y=3x+5 y=4x y=3x2+2x+3 y=5e1,3x y=ln(2x)+6

Persamaan tersebut (persamaan a hingga e) merupakan persamaan dengan variabel terikat (variabel tidak bebas /dependen) adalah y dan variabel bebas (variabel independen) adalah x. Persamaan a dan b merupakan persamaan linier karena pangkat tertinggi dari variabel bebas (x) adalah 1 sedangkan persamaan c hingga e merupakan persamaan nonlinier karena mengandung pangkat tertinggi dari variabel x adalah 2 (pada persamaan c), eksponensial pada persamaan d dan logarima natural (ln) pada persamaan e.

2. Penyelesaian Persamaan Matematis


Penyelesaian persamaan matematis, baik linier ataupun nonlinier pada umumnya dapat dilakukan dengan dua cara yaitu dengan cara analitis (diluar lingkup tulisan ini) ataupun dengan cara numeris (pendekatan). Pada Tabel 1 disampaikan secara garis besar perbedaan kedua metode tersebut. Penyelesaian persamaan matematis merupakan mencari nilai variabel bebas yang memberikan suatu fungsi matematis bernilai nol atau secara matematis dapat ditulis : berapa x agar f(x)=0 ? Sebagai contoh, misalnya pada persamaan a diatas f(x)=y=3x+5 maka penyelesaiannya adalah f(x)=0 atau 3x+5=0 x= -5/3 sehingga penyelesaian persamaan tersebut adalah x=-5/3. Penyelesaian persamaan matematis yang lain dapat diselesaikan dengan cara yang sama.
Tabel 1. Perbedaan antara Metode Analitis dan Numeris

Pembeda Hasil penyelesaian

Metode Analitis Eksak, akurasi tinggi

Waktu penyelesaian Kemampuan manipulasi matematis

Kadang memerlukan waktu yang cukup lama Memerlukan penguasaan metode matematis yang tinggi

Metode Numeris Kurang eksak, akurasi tergantung dari tingkat ketelitian yang diinginkan Butuh waktu yang lebih cepat Tidak memerlukan penguasaan manipulasi matematis, tapi memerlukan penguasaan terhadap metode numerik/pendekatan dan bahasa program

Penyelesaian persamaan nonlinier umumnya cukup sulit dan rumit sehingga selanjutnya akan dibahas terkait penyelesaian persamaan nonlinier secara numeris. Secara numeris, terdapat beberapa cara dalam penyelesaian persamaan nonlinier, beberapa metode numeris yang terkenal adalah sebagai berikut : 1. 2. 3. 4. 5. Metode Newton-Raphson Metode Penyetengahan Interval Metode Substitusi Berurut Metode Wegstein Metode Interpolasi Linear

Pada kali ini akan dibahas terkait dengan metode Newton-Raphson.

3. Metode Newton Raphson


Ingin dicari penyelesaiaan suatu persamaan nonlinier f(x) seperti yang digambarkan pada Gambar 2. Dari Gambar 2 dapat dilihat bahwa kurva tersebut berpotongan pada suatu titik di sumbu x.

y=f(x)

Gambar 2. Kurva y=f(x)

misalkan pencarian titik potong tersebut dimulai dari suatu titik x0 (titik coba/titik trial awal) yang letaknya sembarang pada sumbu x maka akan diperoleh nilai y=f(x0) tertentu yang terletak pada kurva. Kemudian dari titik y=f(x0) tersebut diambil suatu garis singgung dengan gradien (kemiringan) garis sebesar f(x0) hingga memotong sumbu x pada titik x1.

y=f(x)

X0 X1 f'(X0) f(X0)

Gambar 3. Penentuan x1 dari x0 dengan metode Newton-Raphson

Dari titik x1 maka nilai y=f(x1) dapat dihitung. Langkah selanjutnya adalah menentukan gradient garis yang akan memotong sumbu x pada titik x2. Demikian seterusnya hingga diperoleh titik x3 yang merupakan pendekatan terhadap titik potong terhadap sumbu x atau penyelesaian f(x)=0 (Gambar 4).

f'(X1) f(X1)

f'(X2)

X0

f(X2) X3 X2 f'(X0)

X1

f(X0)

Gambar 4. Penentuan Penyelesaian Persamaan Nonlinier dengan Metode Newton Raphson

Rumus persamaan gradient/kemiringan garis pada persamaan linier adalah sebagai berikut
f ' x1 y 2 y1 x 2 x1

(1)

dari garis f(x0) pada Gambar 3 dapat diambil dua titik sebagai berikut (x0,y0) dan (x1,y1) dengan y1 bernilai 0 karena memotong sumbu x. apabila y0 dinyatakan sebagai f(x0) dan y1 sebagai f(x1) maka diperoleh sebagai berikut:
f ' x 0 f ' x 0 f x1 f x 0 x1 x 0 0 f x 0 x1 x 0

(2)

dari persamaan diatas diperoleh :


x1 x 0 f x 0 f ' x 0

(3)

persamaan tersebut diturunkan dengan cara yang sama untuk menentukan titik x2, x3 dan selanjutnya sehingga diperoleh persamaan umum untuk metode Newton-Raphson sebagai berikut:
x n 1 x n f x n f ' x n

untuk n=0,1,2,

(4)

Persamaan (4) merupakan persamaan iterasi Newton-Raphson dengan langkah iterasi diakhiri apabila tingkat kesalahan/error telah sesuai dengan criteria yang disyaratkan, misalnya nilai kesalahan perhitungan xn+1 adalah sebesar 0.1% dari nilai xn (x sebelumnya). Berikut contoh penggunaan Metode Newton-Raphson. Contoh 1 Sebuah persamaan nonlinier y=f(x)=x2+x-12 ingin ditentukan penyelesaian persamaan tersebut secara analitis dan numeris menggunakan Newton-Raphson. a. Penyelesaian analitis dari fungsi tersebut dapat dilakukan dengan memfaktorkan persamaan tersebut. x2+x-12=0 (x-3)(x+4)=0

x=3 atau x=-4 dari penyelesaian analitis dapat diketahui bahwa penyelesaian persamaan tersebut adalah x=3 atau x=-4. b. Penyelesaian secara numeris dengan metode Newton-Raphson membutuhkan suatu penentuan nilai awal. misalnya diambil nilai x awal (x0) sebesar 10. Penentuan nilai awal ini sangat mempengaruhi hasil akhir perhitungan, terlebih dari hasil perhitungan secara analitis terlihat bahwa nilai x yang memberikan nilai f(x)=0 ada dua sehinggapenentuan nilai awal pada Newton-Raphson menjadi sangat penting. Kesalahan pada pengambilan nilai awal yang sangat jauh dari nilai sebenarnya dapat menyebabkan tidak selesainya perhitungan sehingga nilai sebenarnya tidak diperoleh. Pada persamaan (4) dapat dilihat bahwa dibutuhkan nilai dari f(x) dan nilai turun an f(x) sehingga dari persoalan diatas dapat ditentukan sebagai berikut: y=f(x)=x2+x-12 y=f(x)=2x+1 (a) (b)

Langkah perhitungannya adalah sebagai berikut: 1. Tentukan nilai batas minimum eror/toleransi kesalahan perhitungan sebesar 0,1% atau 0,001 2. Tentukan nilai awal (tebakan awal) x0=10 3. Hitung nilai f(x) dari persamaan (a) 4. Hitung nilai turunan pertama dari f(x) yaitu persamaan (b) 5. Hitung nilai x baru (x1) dengan persamaan (4) 6. Bandingkan nilai x1 dengan x0, apakah beda antara x1 dengan x0 sudah lebih kecil dari batas toleransi 0,001? a. Jika Tidak, maka ulangi perhitungan pada langkah 2 dengan mengambil nilai x baru sebagai nilai awal b. Jika Ya, maka x baru adalah penyelesaian persamaan 7. Perhitungan selesai. Langkah perhitungan ini apabila dinyatakan dalam bentuk diagram alir maka dapat digambarkan seperti Gambar 5:

Mulai Perhitungan

Tentukan nilai toleransi yang diinginkan dan tebakan awal

Ambil nilai tebakan awal sebagai x lama

Hitung f(x) dan f(x)

Tidak, ambil nilai x baru sebagai nilai tebakan baru (x lama)

Hitung nilai x baru dari persamaan Newton-Raphson

Hitung nilai absolut beda antara x lama dengan x baru

Apakah abs(xlama-xbaru)< nilai toleransi Ya Perhitungan Selesai

Gambar 5. Diagram Alir Contoh 1

Hasil perhitungan ditampilkan pada Tabel 2 dibawah ini.


Tabel 2. Hasil Perhitungan dengan Newton-Raphson

Perhitungan/ nilai absolut dari (x iterasi kex lama f(x lama) f'(x lama) x baru lama-xbaru) 1 10 98 21 5.33333 4.66667 2 5.33333 21.77778 11.66667 3.46667 1.86667 3 3.46667 3.48444 7.93333 3.02745 0.43922 4 3.02745 0.19291 7.05490 3.00011 0.02734 5 3.00011 0.00075 7.00021 3.00000 0.00011

Dari Tabel 2 diatas dapat dilihat bahwa dibutuhkan 5 kali perhitungan berulang hingga beda antara x lama dengan x baru mencapai dibawah nilai toleransi.

Dari perhitungan diatas dapat dilihat bahwa nilai x yang diperoleh sebesar 3 sama dengan salah satu hasil penyelesaian persamaan secara analitis. Namun dari hasil metode analitis terlihat bahwa penyelesaian persamaan yang lain adalah -4, hal ini disebabkan karena nilai tebakan awal yang diberikan lebih dekat kepada 3 daripada -4 sehingga menyebabkan arah penyelesaian Newton-Raphson ke nilai x=3 daripada x=-4. Apabila nilai tebakan yang diambil adalah x=-10, maka hasil perhitungannya secara numeris seperti yang ditampilkan pada Tabel 3.
Tabel 3. Hasil Perhitungan dengan Newton-Raphson dengan Nilai Tebakan Awal yang Berbeda

Perhitungan/ nilai absolut dari (x iterasi kex lama f(x lama) f'(x lama) x baru lama-xbaru) 1 -10 78 -19 -5.89474 4.10526 2 -5.89474 16.85319 -10.78947 -4.33273 1.56200 3 -4.33273 2.43985 -7.66547 -4.01444 0.31829 4 -4.01444 0.10131 -7.02889 -4.00003 0.01441 5 -4.00003 0.00021 -7.00006 -4.00000 0.00003

Dari Tabel 3 dapat dilihat dengan mengubah nilai tebakan awal ke x=-10 akan diperoleh nilai akhir sebesar x=-4 sama seperti pada cara analitis. Dari contoh 1 ini dapat dilihat bahwa metode Newton-Raphson sangat tergantung dari nilai tebakan awal.

4. Pemrograman Newton-Raphson Dengan Matlab


a. Membangun kode sendiri Berikut merupakan contoh pemrograman untuk contoh 1 diatas dengan membangun sendiri metode Newton-Raphson. Logika yang digunakan sama dengan alur pada diagram alir yang ditampilkan pada Gambar 5 hanya saja pada pemrograman Matlab, langkah perhitungan yang berulang kali dapat disingkat dengan menggunakan looping while atau for. Looping while digunakan untuk perhitungan berulang kali dimana syarat perhitungannya berupa logika misalnya lebih besar, lebih kecil, tidak sama dengan, atau sama dengan sedangkan looping for digunakan untuk proses perhitungan yang jumlah hitungan berulangnya sudah diketahui secara pasti. Misalnya suatu persamaan akan diulang sebanyak 100 kali, maka looping for akan lebih cocok digunakan daripada looping while. Kode Matlab
% nilai toleransi tol=0.001; % nilai tebakan awal xlama=10;

% menset nilai iterasi awal iter=0; % memberikan nilai logika agar while dieksekusi delx=10 % untuk penampilan hasil fprintf('iterasi xlama f(x) turunan f(x) xbaru xlama-xbaru \n') % memulai perhitungan dengan newton raphson dengan perhitungan berulang while delx>=tol % menset nilai iterasi iter=iter+1; % hitung nilai f(x) flama=xlama.^2+xlama-12; % hitung nilai turunan f(x) ftlama=2*xlama+1; % hitung x baru xbaru=xlama-flama/ftlama; % hitung beda xlama dengan xbaru delx=abs(xlama-xbaru); % jika nilai delx baru lebih besar dari tol maka perhitungan akan terus % dilakukan maka perlu dilakukan mendefinisikan xbaru sebagai xlama xlama=xbaru; % menuliskan hasil perhitungan hasil=[iter xlama flama ftlama xbaru delx]; fprintf(' %1g %6.5f %9.5f %9.5f %9.5f %9.5f \n',hasil) end

Hasil Penyelesaian Matlab


Hasil Perhitungan iterasi xlama 1 5.33333 2 3.46667 3 3.02745 4 3.00011 5 3.00000 f(x) 98.00000 21.77778 3.48444 0.19291 0.00075 turunan f(x) 21.00000 11.66667 7.93333 7.05490 7.00021 xbaru 5.33333 3.46667 3.02745 3.00011 3.00000 xlama-xbaru 4.66667 1.86667 0.43922 0.02734 0.00011

b. Menggunakan m-file fzero Selain dengan membangun sendiri kode matlab berbasis pengetahuan numeris, Matlab juga menyediakan m-file yang sudah mengandung metode Newton-Raphson dan siap digunakan sesuai dengan aturan yang disyaratkan oleh Matlab. Kode program akan menjadi lebih sederhana dan proses penyusunan programnya menjadi lebih cepat karena tidak perlu lagi berpikir menyusun logika perhitungan secara khusus. Berikut ini merupakan contoh penggunaan m-file fzero yang dirancang untuk mencari nilai nol suatu fungsi. Kode Matlab
function newton_raphson_fzero %tebakan awal x0=10; [x,fval]=fzero(@fungsi,x0); fprintf(' hasil penyelesaian fungsi \n')

fprintf(' x = %9.5f \n',x) function fval=fungsi(x) fval=x^2+x-12;

Hasil Penyelesaian Matlab


hasil penyelesaian fungsi x = 3.00000

Você também pode gostar