Senin, 07 Maret 2016

GOLDEN SEARCH METHOD

GOLDEN SEARCH METHOD

Mencari Nilai Minimum dr Fungsi berikut :
f(x)=x^2/10-2*sin(x)

Kode Matlab :

%Golden Search Method
syms x
A = (x^2/10)-(2*sin(x)); %fungsi yg dicari nilai maksimum
a = 0; %nilai awal xl
b = pi/2;
e = 0.5;
t = (sqrt(5)-1/2);
x1 = a+t*(b-a);
x2 = b-t*(b-a);
n = 100;
N = [];
for i = 1:n
    fa = subs (A,x,x1);
    fb = subs (A,x,x2);
    if fa>fb
    a = x2;
    x2 = x1;
    x1 = a+t*(b-a);
    else
        b = x1;
        x1 = x2;
        x2 = b-t*(b-a);
    end
    N = [N; i a b x1 x2 fa fb];
    if abs (b-a)<= e
        break
    end
end
N
nilai_x = (b+a)/2
f_minimum = subs (A,x,nilai_x)
plot (N(:,1),N(:,7),'-ro','linewidth',3,...
'MarkerEdgeColor','y',...
'MarkerFaceColor','w',...
'MarkerSize',1.5)
title('Golden Seacrh Method','fontname','algerian')
xlabel('Sumbu Y','fontname','algerian')
ylabel('Sumbu X','fontname','algerian')

grid


INTERVAL EQUATION METHOD

INTERVAL EQUATION METHOD

Mencari Nilai Maksimum dr Fungsi berikut :
f(x)=x^2/10-2*sin(x) 

Kode Matlab :
%interval Method
syms x
A = (x^2/10)-(2*sin(x));
a = 0;
b = pi/2;
e = 0.2;
n = 100;
N = []
for i = i:n
    s = ((a+b)/2+(e/2));
    t = ((a+b)/2-(e/2));
    fs = subs (A,x,s);
    ft = subs (A,x,t);
    if fs>=ft
        a=t;
    else
        b=s;
    end
N = [N; i a b fs ft]
if abs (b-a)<=0.02
    break
end
end
N
nilai_x = (a+b)/2
f_maximum = subs (A,x,nilai_x)
plot (N(:,1),N(:,5),'-ro','linewidth',3,...
'MarkerEdgeColor','y',...
'MarkerFaceColor','w',...
'MarkerSize',1.5)
title('Interval Equation Method','fontname','algerian')
xlabel('Fs','fontname','algerian')
ylabel('Ft','fontname','algerian')
grid


SECHANT METHOD

SECHANT METHOD

4 akar dari Fungsi Persamaan Berikut :
(f = x^4+2*x^3-7*x^2+3)


KOde MAtlab :

%SECANT METOHD
syms x
f = x^4-2*x^3+7*x^2+3;
a =0.1;
b=0.3;
n = 100;
ea = 0.000001;
N = [];
for i = 1:n
    fa = subs (f,x,a);
    fb = subs (f,x,b);
    c = b - (((b-a)/(fb-fa))*fb);
    es = abs((c-a)/c);
    fc= subs(f,x,c);
    d=c-(((c-b)/(fc-fb))*fb);
    es1= abs((d-b)/d);
    if es <= ea;
        break
    end
     a = b;
     b = c;
    N=[N; i a b c d es es1]
end
plot (N(:,1),N(:,7),'--gs','LineWidth',3,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',5)
title ('SECANT METHOD')
xlabel ('Iterasi')
ylabel ('%error')

grid


Newton Raphson METHOD

Newton Raphson METHOD

4 akar dari fungsi persamaan berikut :
(f = x^4+2*x^3-7*x^2+3)

KOde Matlab :

%NEWTON METHOD
syms x
f = x^4+2*x^3-7*x^2+3;
a =0.1;
n = 100;
ea = 0.000001;
N = [];
for i = 1:n;
    fa = subs (f,x,a);
    fb =  diff (f,x);
    fc = subs (fb,x,a);
    b = a - (fa/fc);
    es = abs ((b-a)/b);
    fd= subs (f,x,b);
    fe= subs(fb,x,b);
    c= b-(fd/fe);
    es2 = abs ((c-b)/c);
    ff=subs(f,x,c);
    fg=subs(fb,x,c);
    d= c-(ff/fg);
    es3= abs ((d-c)/d);
    if es <= ea
        break
    end
    a = b;
    N = [N; i a b c d es es2 es3]
end
plot (N(:,1),N(:,8),'--rs','LineWidth',3,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',5)
title ('Newton METHOD')
xlabel ('Iterasi')
ylabel ('%error')
grid

Grafik :





Falsi Method

Falsing Method

         Sekarang kita gunakan metode yang lain yaitu regulas falsi. Fungsi yang digunakan tetap sama hanya saja perhitungannya yang berbeda. 




Kode MATLAB :
%Falsepoint
a=0;
b=1;
n=100;
es= 0.00001;
ea= 1;
syms x
f= x^3-3*x+1;
N= [a b ea];
for i=1:n;
    fa= subs (f,x,a); 
    fb= subs (f,x,b);
    c= ((b*fa)-(a*fb))/(fa-fb);
    fc= subs (f,x,c);
if (fa*fc)<0
    ea= (b-c)^2/b;
    b=c;
else
    ea=(a-c)^2/b;
    a=c;
end
if ea<=es
    break
end
N=[N;a b ea]
end

         Tampak  bahwa hanya rumus perhitungannya saja yang diubah. Jika program dijalankan maka hasilnya seperti berikut:


Hasil :
N =
[ 0,   1,   1]
[ 0, 1/2, 1/4]

N =
[ 0,    1,     1]
[ 0,  1/2,   1/4]
[ 0, 4/11, 9/242]

N =
[ 0,       1,            1]
[ 0,     1/2,          1/4]
[ 0,    4/11,        9/242]
[ 0, 121/347, 3249/5297996]


       Pada iterasi ke-3  perhitungan dihentikan karena nilai absolut dari fx0 lebih  kecil dari nilai toleransi. Berdasarkan  percobaan, tampak bahwa metode regula falsi lebih cepat dalam mendapatkan hasil.

Grafik :


Bisection Method

BISECTION METHOD


Kode MATLAB :

a = 0; %tebakan awal 1 (x1)
b = 1; %tebakan awal 2 (x2)
c = (a+b)/2; %rata-rata (xm)
n = 100; %jumlah iterasi
es = 0.001; %batas eror
ea = 1; %eror sebenarnya
syms x %mendeklarasikan variabel x
f= x^3-3*x+1; %fungsi yang dihitung akarnya
N = [i a b c ea];
for i = 1:n
c = (a+b)/2;
fa = subs (f,x,a);
fb = subs (f,x,b);
fc = subs (f,x,c);

if (fa*fc)<0
    ea = (b-c)^2/b;
    b = c;
else
    ea = (a-c)^2/a;
    a = c;
end

if ea<=es
    break
end

N = [N; i a b c ea]
End
Plot (N(:,1),N(:,5))


Grafik :



Hasil :
N =
   0.0000 + 1.0000i   0.0000 + 0.0000i   1.0000 + 0.0000i   0.5000 + 0.0000i   1.0000 + 0.0000i
   1.0000 + 0.0000i   0.0000 + 0.0000i   0.5000 + 0.0000i   0.5000 + 0.0000i   0.2500 + 0.0000i

N =
   0.0000 + 1.0000i   0.0000 + 0.0000i   1.0000 + 0.0000i   0.5000 + 0.0000i   1.0000 + 0.0000i
   1.0000 + 0.0000i   0.0000 + 0.0000i   0.5000 + 0.0000i   0.5000 + 0.0000i   0.2500 + 0.0000i
   2.0000 + 0.0000i   0.2500 + 0.0000i   0.5000 + 0.0000i   0.2500 + 0.0000i      Inf + 0.0000i

N =
   0.0000 + 1.0000i   0.0000 + 0.0000i   1.0000 + 0.0000i   0.5000 + 0.0000i   1.0000 + 0.0000i
   1.0000 + 0.0000i   0.0000 + 0.0000i   0.5000 + 0.0000i   0.5000 + 0.0000i   0.2500 + 0.0000i
   2.0000 + 0.0000i   0.2500 + 0.0000i   0.5000 + 0.0000i   0.2500 + 0.0000i      Inf + 0.0000i
   3.0000 + 0.0000i   0.2500 + 0.0000i   0.3750 + 0.0000i   0.3750 + 0.0000i   0.0313 + 0.0000i

N =
   0.0000 + 1.0000i   0.0000 + 0.0000i   1.0000 + 0.0000i   0.5000 + 0.0000i   1.0000 + 0.0000i
   1.0000 + 0.0000i   0.0000 + 0.0000i   0.5000 + 0.0000i   0.5000 + 0.0000i   0.2500 + 0.0000i
   2.0000 + 0.0000i   0.2500 + 0.0000i   0.5000 + 0.0000i   0.2500 + 0.0000i      Inf + 0.0000i
   3.0000 + 0.0000i   0.2500 + 0.0000i   0.3750 + 0.0000i   0.3750 + 0.0000i   0.0313 + 0.0000i
   4.0000 + 0.0000i   0.3125 + 0.0000i   0.3750 + 0.0000i   0.3125 + 0.0000i   0.0156 + 0.0000i

N =
   0.0000 + 1.0000i   0.0000 + 0.0000i   1.0000 + 0.0000i   0.5000 + 0.0000i   1.0000 + 0.0000i
   1.0000 + 0.0000i   0.0000 + 0.0000i   0.5000 + 0.0000i   0.5000 + 0.0000i   0.2500 + 0.0000i
   2.0000 + 0.0000i   0.2500 + 0.0000i   0.5000 + 0.0000i   0.2500 + 0.0000i      Inf + 0.0000i
   3.0000 + 0.0000i   0.2500 + 0.0000i   0.3750 + 0.0000i   0.3750 + 0.0000i   0.0313 + 0.0000i
   4.0000 + 0.0000i   0.3125 + 0.0000i   0.3750 + 0.0000i   0.3125 + 0.0000i   0.0156 + 0.0000i
   5.0000 + 0.0000i   0.3438 + 0.0000i   0.3750 + 0.0000i   0.3438 + 0.0000i   0.0031 + 0.0000i


      Dalam program kita menentukan toleransi sebesar 0.00001 sehingga ketika fx0 lebih kecil dari nilai toleransi yang telah ditentukan program akan berhenti menghitung. Untuk  metode biseksi ini kita program melakukan 6 kali perhitungan untuk memenuhi persyaratan yang telah ditentukan.
 

Blogger news

About