Kamis, 21 November 2013

PROGRAM MATHLAB

Diposting oleh Unknown di 18.35
CODING FUNCTION BISECTION


function bisection
clc
fprintf('<< Program mencari Akar Persamaan dengan Metode Bisection >>\n');
fprintf('********************************************************\n\n');
%proses input
fx  =input ('Masukkan f(x)      =','s');
b   =input ('Masukkan nilai batas bawah (b)  =');
a  =input ('Masukkan nilai batas atas (a)  =');
Es = input('Masukkan nilai Es    =');
i_max = input ('Masukkan iterasi maksimal = ');

%inisialisasi
c_sbl = 0;
Era = 1;
iterasi = 1;

%proses perhitungan
while (Era > Es | iterasi > i_max)
    fprintf ('Iterasi ke -%d\n', iterasi);
    fprintf ('**************\n');
   
    %cari nilai c
    c = (a+b)/2;
    fprintf (' c = (a+b) / 2\n');
    fprintf (' c = (%.2f + %.2f) / 2 \n', a,b);
    fprintf (' c = %.4f\n\n',c);
   
    %evaluasi nilai f(b).f(c)
    fprintf('Evaluasi nilai f(b).f(c) \n');
    [fb x] = feval ('fx_turunan1', fx,b,1);
    [fc x] = feval ('fx_turunan1', fx,c,1);
    fprintf ('f(x) = %s\n', fx);
    fprintf ('f(b) = %.5f\n', fb);
    fprintf ('f(c) = %.5f\n', fc);
    fbfc = fb * fc;
    fprintf ('f(b).f(c) = %.5f x %.5f \n', fb, fc);
    fprintf ('          = %.6f \n\n', fbfc);
   
    %seleksi fbfc
    if (fbfc < 0)
        a = c;
        fprintf (' karena f(b).f(c) < 0 maka a=c \n');
        fprintf (' maka b = %.4f dan a = %.4f \n',b,a);
    elseif (fbfc > 0)
        b=c;
        fprintf (' karena f(b).f(c) > 0 maka b = c \n');
        fprintf (' maka b = %.4f dan a = %.4f \n',b,a);
    else
        fprintf (' karena f(b).f(c) = 0 maka akar = c \n');
        fprintf (' maka akar persamaan adalah %.4f \n',c);
        break;
    end
   
    %hitung nilai Era
    Era = abs((c-c_sbl)/c);
    fprintf (' Hitung nilai Era \n');
    fprintf (' Era = (c baru - c lama) / c baru \n');
    fprintf ('     = (%.4f - %.4f) / %.4f \n',c,c_sbl,c);
    fprintf ('     = %.6f\n\n', Era);
   
    if (Era > Es)
        fprintf (' Karena Era > Es maka komputasi dilanjutkan..\n\n');
        iterasi = iterasi + 1;
        c_sbl = c;
    else
        fprintf (' Karena Era < Es maka komputasi dihentikan..\n');
        fprintf (' Akar persamaan = %.6f \n\n',c);
        break;
    end
end

semoga bermanfaat ya agan",,

0 komentar:

Posting Komentar

 

Siti Dinata Blog Copyright © 2012 Design by Antonia Sundrani Vinte e poucos