Contoh Jadwal Metode Bagi Dua Dalam Matlab
Metoda bagi dua atau dikenal dengan bisection method yaitu 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 yaitu :
Keuntungan memakai metode bagi dua (bisection method) ini yaitu alasannya yaitu kesederhanaannya. Kemudian ini termasuk konvergen (selalu). Sayangnya dikala memakai ini agak lama, alasannya yaitu 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 isyarat 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 simpulan 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 jikalau 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 yaitu :
- Menentukan 2 titik, misalkan a dan b pada sumbu x. Syaratnya a < b.
- nilai untuk r = c, berada diantara a dan b. Sehingga alasannya yaitu berada di antara adan b berlaku hubungan 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 yaitu alasannya yaitu kesederhanaannya. Kemudian ini termasuk konvergen (selalu). Sayangnya dikala memakai ini agak lama, alasannya yaitu 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 isyarat 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 simpulan 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 jikalau 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 yaitu data permasalahan. Anda niscaya sanggup menganalisa bagia bab tersebut.
Sumber http://www.marthamatika.com/
0 Response to "Contoh Jadwal Metode Bagi Dua Dalam Matlab"
Posting Komentar