Terdapat berbagai algoritma untuk mencari solusi persamaan nonlinear secara numeric. Yang dibahas pada artikel ini adalah metode untuk mencari satu solusi dari persamaan non linear yaitu METODE AKOLADE (BRACKETING METHOD). Sebuah fungsi berdasarkan jenisnya akan berubah tanda di sekitar suatu harga akar. Teknik ini dinamakan metode akolade, karena dibutuhkan 2 tebakan awal untuk akar. Sesuai namanya, tebakan tersebut harus “dalam kurung” atau berada pada kedua sisi nilai. Metode yang termasuk dalam metode akolade antara lain bisection dan Regule false.
Program
Bisection (Bagi Dua ) dengan Matlab
Langkah
penyelesain Metode Bisection :
Langkah 1 :
Pilih taksiran terendah xl dan tertinggi xu untuk akar agar fungsi berubah
tanda sepanjang interval. Ini dapat diperiksa dengan f(xl)f(xu)<0.
Langkah 2 : Taksiran
pertama akar xr ditentukan oleh : xr = (xl + xu)/2
Langkah 3 : Buat
evaluasi untuk menentukan subinterval, di dalam mana akar terletak :
a. Jika
f(xl)f(xr) < 0, akar terletak pada subinterval pertama, maka xu=xr dan
lanjutkan ke langkah 2.
b. Jika
f(xl)f(xr) > 0, akar terletak pada subinterval pertama, maka xl=xr dan
lanjutkan ke langkah 2.
c.
Jika
f(xl)f(xr) = 0, akar = xr, komputasi selesai
Scrip Program Bisection
%program False position dengan
matlab simbolik
clc;
% Input Program
f= input ('Masukkan
fungsi (dalam x) = ');
a= input ('Masukkan
batas bawah (a)= ');
b= input ('Masukan
batas atas (b)= ');
% Menghitung dan menyeleksi harga
f (a) dan f (b)
fa= subs (f,'x',a);
fb= subs (f,'x',b);
if fa*fb>0
error('Syarat f(a)*f(b)<0 tidak terpenuhi, Ulangi !!!')
return
end
n=input('Masukkan
banyak iterasi = ');
exact=input('Masukkan
salah satu solusi eksak= ');
% Membuat Header Table Bisection
disp (' ')
disp (' METODE BAGI DUA ')
disp ('=============================')
disp (' i akar
error ')
disp ('=============================')
% Perulangan pada metode Bisection
for i=1:n
xr=(a+b)/2; % Menghitung akar dengan bisection
fxr=subs
(f,'x',xr); %Menghitung
harga fungsi pada xr
if fxr*fa>0 %
Evaluasi letak xr pada [a,b]
a=xr;
elseif fxr*fa<0
b=xr;
end
eror=abs(exact-xr); %
MEnghitung error absolut
fprintf('%2.0f
%5.5f %2.5f\n',i,xr,eror) %Mencetak
Bentuk Tabel
end
% Membuat tabel footer table
bisection
disp ('==============================')
Program
Regule False dengan Matlab
Asumsi awal yang harus diambil adalah
sama seperti pada Metode Bisection, yaitu: ‘menebak’ interval awal [a,b] dimana f(x) adalah kontinu padanya, demikian pula
interval tersebut harus terletak ‘mengapit’ (secara intuitif) nilai akar a,
sedemikian rupa sehingga: f(a).f(b) ≤ 0 Meskipun pada algoritma berikut masih
mengandung beberapa kelemahan, namun secara umum masih sangat menguntungkan untuk
dipakai.
Scrip Program Regile False
%program False position dengan
matlab simbolik
clc;
%input program
f=input('Masukkan
fungsi (dalam x) =');
a=input('Masukkan
batas bawah (a) =');
b=input('Masukkan
batas atas (b)=');
%Menghitung dan menyeleksi harga
f(a) dan f(b)
fa=subs(f,'x',a);
fb=subs(f,'x',b);
if fa*fb>0
error('syarat f(a)*f(b)<0 tidak terpenuhi, ULANGi!!!')
return
end
n=input('Masukkkan
banyak iterasi = ');
exact=input('Masukkan
salah satu solusi eksak =');
%membuat header table false
disp(' ')
disp(' METODE FALSE POSITION ')
disp('========================')
disp('i akar
error ')
disp('========================')
%perulangan pada false
for i=1:n
xr=a-(((b-a)/(fb-fa))*fa); %Menghitung akar dengan false
fxr=subs(f,'x',xr); %Menghitung
harga fungsi pada xr
if fxr*fa>0 %Evaluasi
letak xr pada [a,b]
a=xr;
elseif fxr*fa<0
b=xr;
end
error=abs(exact-xr);
fprintf('%2.0f
%5.5f %2.5f\n',i,xr,error)
end
%membuat footer table false
disp('=======================')
sekian dulu artikel dari saya moga bermanfaat
--
0 komentar:
Post a Comment