APLIKASI MATLAB UNTUK PENYELESAIAN PERSAMAAN NON LINEAR MENGGUNAKAN METODE NEWTON RAPHSON DI SUSUN OLEH KELOMPOK 2 IBRAHIM SIREGAR FARIS N IKHSAN MASTURA Dedhi nugroho
….
UNIVERSITAS MALIKUSSALEH FAKULTAS TEKNIK JURUSAN ELEKTRO 2012/2013
APLIKASI MATLAB UNTUK PENYELESAIAN PERSAMAAN NON LINEAR MENGGUNAKAN METODE NEWTON RAPHSON
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. DESAIN DAN IMPLEMENTASI 1. 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 : Dengan metode Newton Raphson a) Hitung x0 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.
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) = x 2+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).
contoh -3 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.
Kode Program : % % % % % % % % % % %
-- kelompok 2 -nama2 -nama2 -nama2 -nama2 -nama2 -nama2 -nama2 -nama2 -nama2 -nama2
-- % -- % -- % -- % -- % -- % -- % -- % -- % -- % -- %
% -- PROGRAM METODE NEWTON -- % clear clc format long fx = input('Isikan x0 = input('Isikan maks = input('Isikan tol = input('Isikan iter=0; h=0.5;
persamaan non-linearnya (string) nilai awal maksimum iterasinya toleransinya
: : : :
'); '); '); ');
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
fprintf(1,' fprintf(1,' fprintf(1,'
Akarnya dengan toleransi dan pada iterasi ke
: : :
%10.5f \n',akar) ; %10.5f \n',tol) ; %10g \n',iter) ;