Oke guys, sekarang gw mau share program aplikasi matlab.
Bagi yang punya tugas disuruh buat program metode numerik, inilah obatnya gan.,. hhehe.
Cek it dot. (klo ada yang bingung bisa langsung coment dibawah yah) hhehe. Oiya,, jangan lupa diinstal dulu MATLAB nya..
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
:
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.
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 :
% --
Muhamad Ferdy Arista -- %
% -- 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) ;
pelit de
BalasHapusBetting in your city - Sporting 100
BalasHapusBetting 사설 토토 사이트 in 온카지노 your 메리트 카지노 쿠폰 city - 바카라 사이트 Sporting 더킹카지노 회원가입 100