Contoh Aktivitas Metode Bagi Dua Dalam Matlab
Metoda bagi dua atau dikenal dengan bisection method ialah metoda tertutup, maksudnya metoda ini dipakai untuk memilih akar sebuah fungsi yang berada di antara dua titik pada sumbu hoizontal (sumbu x). Contohnya, diketahui r = akar yang belum diketahui dari sebuah fungsi f(x) dimana f(x) kontinu.
Adapun langkah yang harus dilakukan ialah :
Keuntungan memakai metode bagi dua (bisection method) ini ialah alasannya ialah kesederhanaannya. Kemudian ini termasuk konvergen (selalu). Sayangnya dikala memakai ini agak lama, alasannya ialah harus menebak dua titik dan dilakukan perulangan. Dengan perulangan tersebut pastinya untuk menemukan keknvergenan terolong lambat. Kemudian, bila dalam interval terdapat akar yang sama metoda ini dirasa kurang akurat. Untuk lebih memahami secara manual sanggup di baca : Contoh Soal dan Pembahasan Metode bagi Dua (Metode Numerik)
Untuk mempermudah pencarian ini sanggup dipakai kegiatan matlab. Adapun penulisan arahan tersebut menyerupai berikut.
function fsposisisalah(f,a,b,n,toll)
% ----------- Bisection Method----------
% variabel f :fungsi,
% a :batasan titik awal yang mengafit akar c
% b :batasan titik tamat yang mengafit akar c
% n :banyaknaya iterasi
% toll: nilai toleransi (epsiolon) yang membatasi iterasi
syms x;
N=[];
disp('----------------------------------------------------------------');
fprintf('\t interval \t a\t\t c \t\t b \t\t fa \t\t fc \t fb\t\n');
disp('----------------------------------------------------------------');
for i=1:n, % i bergerak dari i hingga n
fa=subs(f,x,a); % fa = f(a)
fb=subs(f,x,b); % fb = f(b)
c=b-(fb*(b-a)/(fb-fa));
fc=subs(f,x,c); % fc = f(c)
N=[N;i a c b fa fc fb];
if fa*fc<0 % f(a).f(c) < 0 maka
b=c; % interval akar ada di [a,c]
else % sebaliknay bila f(b).f(c) < 0 maka
a=c; % interval akar ada di [c,b]
end
if abs(b-a)<toll % iterasi berenti dikala |b-a|< epsilon
break; % epsilon=toll --> didef. diawal
end
end
N
% -------------------------------------------------------------------------
% Untuk memanggil di Command Window
% Pilih interval [a,b]=[2,3] dan n=25 dan toll=10^(-6)
% >> syms x;
% >> f=x^3-3*x-5
% fsbisection(f,2,3,25,1e-6)
Adapun langkah yang harus dilakukan ialah :
- Menentukan 2 titik, misalkan a dan b pada sumbu x. Syaratnya a < b.
- nilai untuk r = c, berada diantara a dan b. Sehingga alasannya ialah berada di antara adan b berlaku kekerabatan c = (a+b)/2.
- Bila f(a) * f(b) > 0, maka pencarian akar gagal.
- Bila f(a)*f(b)< 0, dilanjutkan dengan b=c atau a=c
- Proses ini dilanjutkan hingga nilai |b-a| < dari toleransi yang telah diberikan di awal.
Keuntungan memakai metode bagi dua (bisection method) ini ialah alasannya ialah kesederhanaannya. Kemudian ini termasuk konvergen (selalu). Sayangnya dikala memakai ini agak lama, alasannya ialah harus menebak dua titik dan dilakukan perulangan. Dengan perulangan tersebut pastinya untuk menemukan keknvergenan terolong lambat. Kemudian, bila dalam interval terdapat akar yang sama metoda ini dirasa kurang akurat. Untuk lebih memahami secara manual sanggup di baca : Contoh Soal dan Pembahasan Metode bagi Dua (Metode Numerik)
Untuk mempermudah pencarian ini sanggup dipakai kegiatan matlab. Adapun penulisan arahan tersebut menyerupai berikut.
function fsposisisalah(f,a,b,n,toll)
% ----------- Bisection Method----------
% variabel f :fungsi,
% a :batasan titik awal yang mengafit akar c
% b :batasan titik tamat yang mengafit akar c
% n :banyaknaya iterasi
% toll: nilai toleransi (epsiolon) yang membatasi iterasi
syms x;
N=[];
disp('----------------------------------------------------------------');
fprintf('\t interval \t a\t\t c \t\t b \t\t fa \t\t fc \t fb\t\n');
disp('----------------------------------------------------------------');
for i=1:n, % i bergerak dari i hingga n
fa=subs(f,x,a); % fa = f(a)
fb=subs(f,x,b); % fb = f(b)
c=b-(fb*(b-a)/(fb-fa));
fc=subs(f,x,c); % fc = f(c)
N=[N;i a c b fa fc fb];
if fa*fc<0 % f(a).f(c) < 0 maka
b=c; % interval akar ada di [a,c]
else % sebaliknay bila f(b).f(c) < 0 maka
a=c; % interval akar ada di [c,b]
end
if abs(b-a)<toll % iterasi berenti dikala |b-a|< epsilon
break; % epsilon=toll --> didef. diawal
end
end
N
% -------------------------------------------------------------------------
% Untuk memanggil di Command Window
% Pilih interval [a,b]=[2,3] dan n=25 dan toll=10^(-6)
% >> syms x;
% >> f=x^3-3*x-5
% fsbisection(f,2,3,25,1e-6)
Akan didapat hasil menyerupai gambar di atas. Dari pola tersebut kita mencari akar persamaan dari f(x) =x3-3x-5 dalam interval [2,3]. Nilai yang didapat dari iterasi dengan toleransi 10-6 ada pada perhitungan ke 20. Jika diperhatikan, bab yang saya warnai biru ialah data permasalahan. Anda niscaya sanggup menganalisa bagia bab tersebut.
Sumber http://www.marthamatika.com/
Post a Comment for "Contoh Aktivitas Metode Bagi Dua Dalam Matlab"