You are on page 1of 8

APLIKASI MATLAB UNTUK PENYELESAIAN PERSAMAAN NON LINEAR

MENGGUNAKAN METODE NEWTON RAPHSON


Pengenalan Sci-lab
Scilab adalah bahasa pemprograman tingkat tinggi, sebagian besar kegunaannya
didasarkan pada seputar kemampuan menspesifikasi banyak komputasi dengan sedikit
baris kode. Scilab melakukan hal ini dengan mengabstraksi tipe data primitif kepada
matriks ekuivalen menurut fungsinya.
Scilab memiliki kesamaan fungsionalitas dengan MATLAB, tetapi tersedia untuk
diunduh tanpa biaya lisensi. Program ini memungkinkan pengguna untuk melakukan
komputasi pada cakupan luas operasi-operasi matematika dari operasi yang relatif
sederhana seperti perkalian hingga kepada operasi tingkat tinggi seperti korelasi dan
aritmatika kompleks. Perangkat ini sering dipakai untuk pemprosesan sinyal, analisis
statistika, perbaikan gambar, simulasi dinamika fluida, dan lain-lain.
Scilab telah digunakan secara luas di beberapa industri dan projek penelitian, dan
banyak kontribusi telah dibuat oleh para pengguna. Sintaksnya sama dengan MATLAB,
tetapi yang kedua tidak sepenuhnya kompatibel, meskipun terdapat konverter yang
disertakan di dalam Scilab untuk konversi kode sumber dari MATLAB ke Scilab. Scilab
memiliki lebih sedikit bantuan daripada MATLAB.

Teori Persamaan nonlinier

Dalam matematika, sistem nonlinier adalah sistem yang tidak linier yakni sistem yang
tidak memenuhi prinsip superposisi. Sedikit lebih teknis, sistem nonlinier adalah
sembarang soal dimana peubah yang disolusi tidak dapat ditulis sebagai jumlah linier
komponen-komponen tak gayut. Sistem nonhomogen, yang linier terpisah dari
keberadaan fungsi peubah-peubah tak gayut, adalah nonlinier menurut definisi yang
tegas, namun sistem demikian biasanya dipelajari disamping sistem linier, karena
mereka dapat ditransformasi menuju sistem linier sepanjang solusi khusus diketahui.
Pada umumnya, soal nonlinier adalah rumit (jika mungkin) untuk disolusi dan sangat
sedikit yang dipahami dibanding soal linier. Bahkan jika tak dapat disolusi secara eksak,
hasil dari soal linier dapat diramalkan, sementara hasil soal nonlinier adalah tak
terpisahkan tak dapat diramalkan.
Soal nonlinier menjadi minat fisikawan dan matematikawan karena pada umumnya
sistem fisis di alam adalah tak dapat dipisahkan dari sifat nonlinier. Contoh-contoh fisis
sistem linier adalah tidak sangat umum. Persamaan nonlinier rumit untuk disolusi dan
memunculkan fenomena menarik semisal chaos. Cuaca adalah contoh sistem nonlinier
yang terkenal, dimana perubahan sederhana dalam satu bagian sistem menghasilkan
akibat yang kompleks secara keseluruhan.

APLIKASI MATLAB UNTUK PENYELESAIAN PERSAMAAN NON LINEAR


MENGGUNAKAN METODE NEWTON RAPHSON
A. DASAR TEORI
Metode Newton Raphson biasa digunakan dalam mencari akar dari suatu
persamaan non linier, jika diasumsikan f mempunyai turunan kontinu f.
Metode Newton Raphson sering digunakan karena kesederhanaannya dan mempunyai
konvergensi yang cepat. Karena metode ini merupakan metode Terbuka, maka tetap
diperlukan nilai tebakan awal untuk Xo.
Titik pendekatan ke n+1 dituliskan dengan :
Secara geometri, metode Newton Raphson hampir sama dengan metode regula falsi,
bedanya garis yang dipakai adalah garis singgung. Dengan menggunakan x0 sebagai
tebakan awal, dilanjutkan dengan mencari titik (x0, f(x0)). Kemudian dibuat garis
singgung dari titik (x0, f(x0)), sehingga diperoleh titik potong (x1, 0) antara sumbu-x
dan garis singgung titik (x0, f(x0)). Kemudian dilanjutkan lagi dengan mencari titik (x1,
f(x1)). Dari titik (x1, f(x1)) kemudian dibuat garis singgung, sehingga diperoleh titik
potong (x2, 0) antara sumbu-x dan garis singgung titik (x1, f(x1)).
B.
1.

DESAIN DAN IMPLEMENTASI


Algoritma
Input :

a.

Masukkan persamaan nonlinear f(x) dan f(x).

b.

Masukkan toleransi yang diinginkan dalam persen (%). Toleransi merupakan batas
kesalahan (galat) yang diinginkan, semakin mendekati nilai 0 semakin baik.

c.

Masukkan maksimum iterasi yang diinginkan. Iterasi awal = 0

d.

Masukkan nilai pendekatan awal x0.


Proses :

a.

Hitung x0

1)

Dengan metode Newton Raphson

b.

Nilai iterasi = iterasi +1 atau i=i+1

c.

Hitung nilai x1 dengan kembali ke langkah a

d.

Hitung nilai galat Ea

e.

Jika iter < maksimum iterasi lanjutkan proses, jika tidak proses berhenti.

f.

Jika nilai Ea < Es, lanjutkan ke proses selanjutnya


Jika nilai Ea > Es, kembali ke proses a
Output :

a.

Tampilkan tabel iterasi , x , f(x), f(x) ,galat.

b.

Tampilkan akar persamaan.

c.

Tampilkan grafik.

C. Flow Chart

2.

Implementasi
Pada implementasi, akan digunakan fungsi nonlinear untuk menguji program
apakah berjalan dengan baik atau tidak, contoh 1, fungsi yang digunakan adalah f(x) =
x2+4x-21 , yang secara perhitungan manual dapat dicari diferensialnya f(x) = 2x+4 ,
dan untuk nilai awal x = 0 .
Pada pengujian program didapat :
Isikan persamaan non-linearnya (string) : 'x0.^2+4*x0-21'
Isikan nilai awal
:0
Isikan maksimum iterasinya
: 10
Isikan toleransinya
: 0.00001
======================================================
iter
x
f(x)
df(x)
galat
======================================================
1 5.250000 -21.000000 4.000000 1.000000
2 3.349138 27.562500 14.500000 0.567568
3 3.011394 3.613277 10.698276 0.112155
4 3.000013 0.114071 10.022788 0.003794
======================================================
Akarnya
: 3.00001
dengan toleransi : 0.00001
dan pada iterasi ke :
4

Akarnya adalah 3.00001 karena galat dari nilai x tersebut lebih mendekati angka 0
maka proses iterasi pun dihentikan pada proses iterasi ke -4.
Contoh 2 :
Isikan persamaan non-linearnya (string) : 'x0.^2+4*x0-21'
Isikan nilai awal
:0
Isikan maksimum iterasinya
:2
Isikan toleransinya
: 0.0001
======================================================
iter
x
f(x)
df(x)
galat
======================================================
1 5.250000 -21.000000 4.000000 1.000000
2 3.349138 27.562500 14.500000 0.567568
======================================================
Akarnya
: 3.34914
dengan toleransi : 0.00010
dan pada iterasi ke :
2
Jika maksimum iterasinya diisikan dengan 2 maka proses pun berhenti dan hasilnya
3.349138 ( belum mencapai nilai akhir seperti pada contoh 1).

Untuk contoh yang ke -3 adalah


F(x) = 4x2+7x-31 F(x) = 8x+7
Isikan persamaan non-linearnya (string) : '4*x0.^2+7*x0-31'
Isikan nilai awal
:0
Isikan maksimum iterasinya
: 40
Isikan toleransinya
: 0.00001
======================================================
iter
x
f(x)
df(x)
galat
======================================================
1 4.428571 -31.000000 7.000000 1.000000
2 2.579606 78.448980 42.428571 0.716763
3 2.084806 13.674699 27.636845 0.237336
4 2.043447 0.979306 23.678448 0.020240
5 2.043154 0.006842 23.347580 0.000143
======================================================
Akarnya
: 2.04315
dengan toleransi : 0.00001
dan pada iterasi ke :
5

Akarnya adalah 2.04315 dengan toleransi 0.00001 dan karena galat dari nilai x pada
iterasi ke- 5 sudah memenuhi syarat mendekati ketentuan angka dari toleransi error
maka proses iterasi ke-5 dihentikan.
Contoh 4 :
F(x) = 14x2+5 F(x) = 28x
Isikan persamaan non-linearnya (string) : '14*x0+5'
Isikan nilai awal
:2
Isikan maksimum iterasinya
: 12
Isikan toleransinya
: 0.00001
======================================================
iter
x
f(x)
df(x)
galat
======================================================
1 -0.357143 33.000000 14.000000 6.600000
======================================================
Akarnya
: -0.35714
dengan toleransi : 0.00001
dan pada iterasi ke :
1
Akarnya adalah -0.35714 dengan toleransi 0.00001 dan karena galat dari nilai x pada
iterasi ke- 1 sudah memenuhi syarat mendekati ketentuan angka dari toleransi eror
maka proses iterasi ke-1 dihentikan.

Contoh 5 :
Isikan persamaan non-linearnya (string) : 'x0.^3'
Isikan nilai awal
:2
Isikan maksimum iterasinya
:5
Isikan toleransinya
: 0.00001
======================================================
iter
x
f(x)
df(x)
galat
======================================================
1 1.346939 8.000000 12.250000 0.484848
2 0.917676 2.443676 5.692732 0.467771
3 0.639328 0.772803 2.776390 0.435376
4 0.462309 0.261320 1.476222 0.382902
5 0.351436 0.098809 0.891189 0.315487
======================================================
Akarnya
: 0.35144
dengan toleransi : 0.00001
dan pada iterasi ke :
5

Akarnya adalah -0.35144 dengan toleransi 0.00001 dan karena galat dari nilai x pada
iterasi ke- 5 sudah memenuhi syarat mendekati ketentuan angka dari toleransi eror
maka proses iterasi ke-5 dihentikan.
RUN DIAGRAM

LAMPIRAN
Kode Program :
% -085410203
-- %
% -- PROGRAM METODE NEWTON -- %
clear
clc
format long
fx = input('Isikan persamaan non-linearnya (string) : ');
x0 = input('Isikan nilai awal
: ');
maks = input('Isikan maksimum iterasinya
: ');
tol = input('Isikan toleransinya
: ');
iter=0;
h=0.5;
fprintf('======================================================\
n');
fprintf('iter
x
f(x)
df(x)
galat\n');
fprintf('======================================================\
n');
while iter<maks
f=inline(fx);
fun=f(x0);
fak = (f(x0+h)-f(x0-h))/(2*h);
Es=abs((x0-fun/fak)-x0)/abs(x0-fun/fak);
if fak==0
break
elseif Es<tol
akar=x0-fun/fak;
break
else
x0=x0-fun/fak;
end
fprintf('%3d %3.6f %3.6f %3.6f %3.6f\n',iter+1,x0,fun,fak,Es);

iter=iter+1;
end
akar=x0;
func=f(akar);
%grafik fungsi (x0)
t=-10:10;
z=f(t);
plot(t,z),title('Grafik fungsi (x)');
grid on;
fprintf('======================================================\
n');
fprintf(1,'
Akarnya
: %10.5f \n',akar) ;
fprintf(1,'
dengan toleransi : %10.5f \n',tol) ;
fprintf(1,'
dan pada iterasi ke : %10g \n',iter) ;

You might also like