ALGORITMA NUMERIK

Bookmark and Share
==================================================
BISEKSI
function[akar]=biseksi(a,b,eps)
a=1;
b=4;
while(b-a)>eps
   t=(a+b)/2;
   if(fx(a)*fx(b))<0
      b=t;
   else
      a=t;
   end
end
akar=t
==============================================
%Program Utama
function[akar]=biseksin1(a,b,epsilon);
while(b-a)>epsilon
   t=(a+b)/2;
   if (fungsinya1(a)*fungsinya1(t))< 0
      b=t;
   else
      a=t;
   end
end
akar=t;
==============================================
function B:Bagidua(a,b,eps)
while (abs(b-a)>eps)
   t=(a+b)/2
   if fungsi(a)*fungsi(t)<0
      b=t;
   else a=t;
   end;
end;
B=t
==============================================
function b=bisection
epsilon=0.00001
a=input('tebakan ke1=')
b=input('tebakan ke2=')
while abs((b-a)/2)>=epsilon
T=(a+b)/2
if  f1(a)*f1(T)<0
     b=T
else a=T
end
end
akar=T
disp(['akarnya=',num2str(akar)])
=========================================
function b = bisection (a,b,epsilon);
a = input ('batas kiri interval : ')
b = input ('batas kanan interval: ')
epsilon = input ('nilai ketelitian : ')
while (abs(a-b)) > epsilon
        t = (a + b)/2;
    if (f(a)*f(t)) <= 0
    b = t ;
   else
        a = t;
   end
end
function fn = f(x);
fn = x^2 - 1
==============================================
function bisection ;
disp('METODE BISECTION');
disp('  ================')
a = input('Masukkan batas kiri interval : ');
b = input('Masukkan batas kanan interval : ');
eps = input ('Masukkan epsilon / nilai ketelitian   : ');
itemax = input ('Masukkan jumlah iterasi maksimum   : ');
alfa = a;
disp ('    ');
disp ('Memulai proses iterasi');
disp ('======================');
tic
for i = 1:1:itemax
   t = (a + b)/2;
   if (fn(a,alfa)*fn(t,alfa) <= 0)
    b = t ;
    else
      a = t;
   end
   disp ([' Iterasi ke ',num2str(i),',',' akarnya : ',num2str(t)])
   if (abs(a-b)) <= eps
      break
   end
end
waktu = toc;
disp ('   ')
disp (['Akarnya adalah       : ',num2str(t)])
disp (['Jumlah iterasi     : ',num2str(i)])
disp (['Selang waktu konvergensi: ',num2str(waktu)])
function f = fn(x,alfa);
f = log (2-exp(-x))- x + alfa;
==============================================
function i=input()
a=input('nilai tebakan1=');
b=input('nilai tebakan2=');
e=input('nilai epsilon=');
akar=Bisection(a,b,e)
disp(['akar persamaan=',num2str(akar)])
==================================================
BEDA PUSAT
function beda_pusat();
x=input('Masukkan Orde Polinomial: ');
epsilon=input('Nilai Epsilon: ');
h=1;
zz=0;
delta=10;
while abs(delta) >= epsilon
   x1=x+h;
   x2=x-h;
   z1=fungsi(x1);
   z2=fungsi(x2);
   dx=(z1-z2)/(2*h);
   delta=zz-dx;
   zz=dx;
   h=h/10;
   disp(['f'(x) dari f(X): ',(num2str (dx))]);
   end;
   function y=fungsi(x);
   y=x^3+2*x
==============================================
function beda_pusat();
x=input('Masukkan Orde Polinomial: ');
epsilon=input('Nilai Epsilon: ');
h=1;
zz=0;
delta=10;
while abs(delta) >= epsilon
   x1=x+h;
   x2=x-h;
   z1=fungsi(x1);
   z2=fungsi(x2);
   dx=(z1-z2)/(2*h);
   delta=zz-dx;
   zz=dx;
   h=h/10;
   disp(['f(x) dari f(X): ',(num2str (dx))]);
   end;
   function y=fungsi(x);
   y=x^3+2*x
==============================================
function dx = bedapusat;
x1=input('Masukkan nilai x1:');
h=1;
n=0;
zz=0;
delta=10;
epsilon=1e-5;
while abs(delta)>= epsilon,
    n=n+1;
    for i=1:2
        switch i
        case 1
            x=x1+h;
        case 2
            x=x1-h;
        end
        z(i)=fq(x);
    end;
    dx=(z(1)-z(2))/(2*h);
delta=zz-dx;
zz=dx;
h=h/10;
end;
disp([' ','Turunan pertama dari f(x1):',num2str(dx)]);
==============================================
function beda_pusat();

x=input('Masukkan Orde Polinomial: ');
epsilon=input('Nilai Epsilon: ');
h=1;
zz=0;
delta=10;
while abs(delta) >= epsilon
   x1=x+h;
   x2=x-h;
   z1=fungsi(x1);
   z2=fungsi(x2);
   dx=(z1-z2)/(2*h);
   delta=zz-dx;
   zz=dx;
   h=h/10;
 
   disp(['f(x) dari f(X): ',(num2str (dx))]);
   end;
   function y=fungsi(x);
   y=x^3+2*x  
==============================================
function out = bedapusat(x1)
%x1 = input('Masukkan Nilai X1');
epsilon = 0.00001;
h=1;
n=0;
zz=0;
delta=10;
while abs(delta) >= epsilon
   n=n+1;
   for i= 1:2
      switch(i)
      case{1}
         x=x1+h;
      case{2}
         x=x1-h;
      end
      z(i)=f(x);
   end
   dx=(z(1)-z(2))/(2*h);
   delta=zz-dx;
   zz=dx;
   h=h/10;
end
out = dx;
%disp(['Turunan Pertama Dari f(',num2str(x1),') :',num2str(dx)]);
function hasil = f(x)
%hasil = x^3-2*x^2+3*x+1;
hasil = x^2-4*x+3;
==============================================
function go
eps = 3;
%eps = 10
x=-10;
dx = bedapusat(x);
zz=dx-eps;
while abs(zz)> 10^-5
   x=x+0.001;
   dx=bedapusat(x);
   zz=dx-eps;
end
fx = x^2-4*x+3;
disp(['x: ', num2str(x), ' f(x): ', num2str(fx) ]);
disp([dx]);
==================================================
INTERPOLASI NEWTON
function newton();
n=input('jumlah titik= ');
x=zeros(1,n);
F=zeros(1,n);
for i=1:1:n+1
   x(1,i)=input(['x(',num2str(i),')=']);
   F(1,i)=input(['F(',num2str(i),')=']);
end;
z=input('x akan diinterpolasi= ');
eps=input('epsilon= ');
b(1,1)=F(1,1);
tic
pbagi=b(1,1);
factor=1;
for i=2:1:n
b(1,i)=F(1,i);
 for j=i-1:-1:1
  b(1,j)=(b(1,j+1)-b(1,j))/(x(1,i)-x(1,j));
 end;
factor=factor*(z-x(1,i-1));
suku=b(1,1)*factor;
pbagi=pbagi+suku;
if (abs(suku) <= eps)
   break;
 end;
end;
waktu=toc;
disp(['waktu= ',num2str(waktu)]);
interpolasi=pbagi
======================================
function interpolasinewton();
n=input('jumlah titik (n) = ');
x=zeros(0,n);
F=zeros(0,n);
for i=0:1:n
   x(0,i)=input(['x(',num2str(i),')=']);
   F(0,i)=input(['F(',num2str(i),')=']);
end;
z=input('x akan diinterpolasi= ');
eps=input('epsilon= ');
b(1,0)=F(1,0);
tic
pbagi=b(1,0);
factor=1;
for i=2:1:n
b(1,i)=F(1,i);
 for j=i-1:-1:0
  b(1,j)=(b(1,j+1)-b(1,j))/(x(1,i)-x(1,j));
 end;
factor=factor*(z-x(1,i-1));
suku=b(1,0)*factor;
pbagi=pbagi+suku;
if (abs(suku) <= eps)
   break;
 end;
end;
waktu=toc;
disp(['hasil= ',num2str(pbagi)]);
interpolasi=pbagi    
==================================================
NEWTON RAPHSON
function newton_raphson ;
disp('METODE NEWTON RAPHSON');
disp('  =====================');
x = input('Masukkan tebakan awal : ');
eps = input ('Masukkan epsilon / nilai ketelitian : ');
itemax = input ('Masukkan jumlah iterasi maksimum : ');
alfa = x;
disp ('     ');
disp ('Memulai proses iterasi')
disp ('======================')
xlama = x;
tic
for i = 1:1:itemax
   if ft(xlama) == 0
      break;
   else
      xbaru = xlama - (fn(xlama,alfa)/ft(xlama));
   end
   disp ([' Iterasi ke ',num2str(i),',',' akarnya : ',num2str(xbaru)])
   if abs((xbaru-xlama)/xbaru) <= eps
      break;
   end
   xlama = xbaru; 
end
waktu = toc;
disp ('  ')
disp (['Akarnya adalah       : ',num2str(xbaru)])
disp (['Jumlah iterasi     : ',num2str(i)])
disp (['Selang waktu konvergensi : ',num2str(waktu)])
function f = fn(x,alfa);
f = log (2-exp(-x))- x + alfa;
function f = ft(x);
f = (exp(-x)/(2-exp(-x)))-1;
==============================================
function newtonraphson()
maks=input('masukkan nilai maksimum perulangan: ');
tebakan=input('masukkan taksiran awal: ');
eps=input('masukkan nilai epsilon: ');
xlama=tebakan;
for i=1:maks
    if (df(xlama)==0)
        break;
    else
        xbaru=xlama-(f(xlama)/df(xlama))
    end;
    disp(['iterasi ke', num2str(i), ', nilai x= ',num2str(xbaru)]);
    if (abs((xbaru-xlama)/xbaru)<=eps)
        break;
    end;
    xlama=xbaru;
end;
hasil=xbaru

function y=f(x)
y=3.*x^2-4.*x-25;
function y=df(x)
y=6.*x-4;
======================================
function newton_raphson ();
x = input ('masukkan nilai x tebakan awal : ')
eps = input ('masukkan nilai epsilon : ')
ite = input ('masukkan jumlah iterasi maksimum : ')
xlama = x;
for i = 1:1:ite
   a = i;
   if ft(xlama) == 0
      break;
   else
      xbaru = xlama - (fn(xlama)/ft(xlama))
   end
   if abs((xbaru-xlama)/xbaru) <= eps
      break;
   end
   xlama = xbaru
end
disp (['akarnya adalah : ',num2str(xlama)])
disp (['jumlah iterasi : ',num2str(a)])

function f = fn(x);
f = x^6 - x - 1;
%f = x^2-1;
function f = ft(x);
f = 6*x^5 - 1;
%f = 2*x;
======================================
function newton_raphson ;
disp('METODE NEWTON RAPHSON');
disp('  =====================');
x = input('Masukkan tebakan awal : ');
eps = input ('Masukkan epsilon / nilai ketelitian : ');
itemax = input ('Masukkan jumlah iterasi maksimum : ');
alfa = x;
disp ('     ');
disp ('Memulai proses iterasi')
disp ('======================')
xlama = x;
tic
for i = 1:1:itemax
   if ft(xlama) == 0
      break;
   else
      xbaru = xlama - (fn(xlama,alfa)/ft(xlama));
   end
   disp ([' Iterasi ke ',num2str(i),',',' akarnya : ',num2str(xbaru)])
   if abs((xbaru-xlama)/xbaru) <= eps
      break;
   end
   xlama = xbaru; 
end
waktu = toc;
disp ('  ')
disp (['Akarnya adalah       : ',num2str(xbaru)])
disp (['Jumlah iterasi     : ',num2str(i)])
disp (['Selang waktu konvergensi : ',num2str(waktu)])
======================================


INTERPOLASI LAGRANGE
function interpollagrange;
n = input('masukkan nilai n:');
x = zeros(1,n);
f = zeros(1,n);
for i=1:n
   x(1,i) = input(['x(',num2str(i),') : ']);
   f(1,i) = input(['f(',num2str(i),') : ']);
end
ln = input('Ln(x) : ');
plag = 0;
for i=1:n
   faktor = 1;
   for j=1:n
      if (j~=i);
         faktor = faktor * (ln-x(1,j)) / (x(1,i)-x(1,j));
      end
      end
         plag = plag + faktor * f(1,i);
end
      disp(['Hasil Ln',num2str(ln),':',num2str(plag)]);
==============================================
function lagrange;
disp(['1=senin'])
disp(['2=selasa'])
disp(['3=rabu'])
disp(['4=kamis'])
disp(['5=jumat'])
disp(['6=sabtu'])
disp(['7=minggu'])
n = input('masukkan nilai n:');
x = zeros(1,n);
f = zeros(1,n);
for i=1:n
   x(1,i) = input(['x(',num2str(i),') : ']);
   f(1,i) = input(['f(',num2str(i),') : ']);
end
ln = input('Ln(x) : ');
plag = 0;
for i=1:n
   faktor = 1;
   for j=1:n
      if (j~=i);      
         faktor = faktor * (ln-x(1,j)) / (x(1,i)-x(1,j));
      end
   end
plag = plag + faktor * f(1,i);
end
disp(['Lebar luka pada hari selasa (',num2str(ln),'):',num2str(plag)]);
==============================================
function Nilagrange;
n = input('masukkan nilai n:');
x = zeros(1,n);
f = zeros(1,n);
for i=1:n
   x(1,i) = input(['waktu(',num2str(i),') : ']);
   f(1,i) = input(['Ni Terlarut(',num2str(i),') : ']);
end
ln = input('Ln(x) : ');
plag = 0;
for i=1:n
   faktor = 1;
   for j=1:n
      if (j~=i);      
         faktor = faktor * (ln-x(1,j)) / (x(1,i)-x(1,j));
      end
   end
plag = plag + faktor * f(1,i);
end
disp(['Ni Terlarut (%) selama waktu ',num2str(ln),'jam :',num2str(plag)]);
==============================================
function ILagrange();
    n=input('Jumlah Titik = ');
   x = zeros(1,n);
   f = zeros(1,n);
   for i=1:1:n
      x(1,i)=input(['x(', num2str(i),')= ']);
      f(1,i)=input(['f(', num2str(i),')= ']);
    end;
X=input('x yang akan diinterpolasi=');
L=0;
for i=1:1:n
   faktor=1;
   for j=1:1:n
      if (j~=i)
         faktor=faktor*((X-x(j))/(x(i)-x(j)));
      end;
   end;
   L=L + faktor*f(i);
end;
ILagrange=L
plot(x,f,'o',X,L,'x');
=========================================
SECANT / TALI BUSUR

function akar=secant
x1=input('x1:')
x0=input('x0:')
imaks=input('imaks:')
epsilon=input('epsilon:')
for i=2 : imaks
   Nn=f(x1)*(x1-x0)
   Dn=f(x1)-f(x0)
   if fbedahingga(x)==0
      break
   else x2=x1-(Nn/Dn)
      disp(['Iterasi ke-',num2str(i),':',num2str(x2)])
      if abs((x2-x1)/x2)<=epsilon
         break
         x1=x2
      end
   end
 end
 disp(['akarnya=',num2str(x2)])
 ==============================================
function secant ;
disp('METODE SECANT');
disp('  =============')
a = input ('Masukkan nilai awal pertama : ');
b = input ('Masukkan nilai awal kedua : ');
eps = input('Masukkan epsilon / nilai ketelitian : ');
itemax = input('Masukkan jumlah iterasi maksimum : ');
alfa=a;
disp ('     ');
disp ('Memulai proses iterasi')
disp ('======================')
xlama1 = a;
xlama2 = b;
tic
for i = 1:1:itemax
   P = fn(xlama2,alfa) * (xlama2 - xlama1);
   Q = fn(xlama2,alfa) - fn(xlama1,alfa);
   if ((fn(xlama2,alfa) - fn(xlama1,alfa)) / (xlama2 - xlama1)) == 0
      break;
   else
      xbaru = xlama2 - (P / Q);
      disp ([' Iterasi ke ',num2str(i),',',' akarnya : ',num2str(xbaru)])
   end
   if abs ((xbaru - xlama2)/xlama2) <= eps
      xakar = xbaru;
      break;
   end
   xlama1 = xlama2;
   xlama2 = xbaru; 
end
waktu = toc;
disp ('  ')
disp (['Akarnya adalah       : ',num2str(xakar)])
disp (['Jumlah iterasi     : ',num2str(i)])
disp (['Selang waktu konvergensi : ',num2str(waktu)])

function f = fn(x,alfa);
f = x*x*x*x*x*x-x-1
==============================================
function secant
imaks=input('iterasi maksimum: ')
epsilon=input('epsilon: ')
x1=input('tebakan xn: ')
x2=input('tebakan xn-1: ')
for i=2; imaks
   if Fbedahingga==(F(xlama)-F(xlama2))/(xlama-xlama2);
      exit
   else
      xbaru=xlama-(Nn/Dn);
   end
      if abs((xbaru-xlama)/xbaru) <= epsilon
         break
         xlama:=xbaru;
      end
      disp(['iterasi', num2str(xbaru)]
   end
   function y= F(x)
   y=x^6-x-1
   
==============================================
TRAPESIUM
function t=trapesium
a=input('masukkan nilai a:');
b=input('masukkan nilai b:');
n=input('masukkan nilai n:');
h=(b-a)/n
jumlah =0
for k=1 :n-1
    x=a+h*k
   jumlah=jumlah+ft(x)
end
luas=h*(ft(a)+ft(b)+2*jumlah)/2
disp(['luas:',num2str(luas)])
======================================
function trapes;
disp('FUNGSI TRAPESIUM');
a=input('Masukkan Batas Bawah:');
b=input('Masukkan Batas Atas:');
n=input('Banyaknya Bagian:');
fprintf('Nilai integral= %10.7e',Trapezoid (a,b,n));

function T = Trapezoid (a,b,n);
h=(b-a)/n;
jumlah=0;
for i=1:1:n-1;
   x=a+h*i;
   jumlah=jumlah + F(x);
end;
T=(h/2)*(F(a)+F(b)+2*jumlah);

function Fx = F(x); 
Fx=x^2+x-2
==============================================
function trapesium

a = input ('Masukkan Nilai A :');
b = input ('Masukkan Nilai B :');
c = input ('Masukkan Jumlah Selang :');
h =(b-a)/c;

jum=0;
for  k =1:c-1
   [x]=a+h*k;
   jum=jum+f(x);
end
jum = h * (f(a)+f(b)+2*jum)/2;
disp (['Hasil Luas ',num2str(jum)]);
function [y]= f(x)
[y]=-1*x*x*-x+6;
%[y]=x*x*x*;
 ==============================================
function trapezoid;
disp('FUNGSI TRAPEZOID');
a=input('Masukkan batas interval kiri:');
b=input('Masukkan batas interval kanan:');
n=input('Jumlah pembagian:');
fprintf('Nilai integral= %10.7e',Trapezoid (a,b,n));

function T = Trapezoid (a,b,n);
h=(b-a)/n;
jumlah=0;
for i=1:1:n-1;
   x=a+h*i;
   jumlah=jumlah + F(x);
end;
T=(h/2)*(F(a)+F(b)+2*jumlah);

function Fx = F(x); 
Fx=x^2+x-2
==============================================
INTERPOLASI NEWTON
function s=interpolnewton;
epsilon=0.0001;
n = input('Masukkan nilai n : ');
z = input('Masukkan nilai Pz : ');

x = zeros(1,n);
f = zeros(1,n);
b = zeros(1,n);
for i=1:n
   x(1,i) = input(['x(',num2str(i),') : ']);
   f(1,i) = input(['f(',num2str(i),') : ']);
end
b(1,1) = f(1,1);
faktor = 1;
pbagi = b(1,1);
for i=2:n
   b(1,i) = f(1,i);
   for j=i-1:-1:1
      b(1,j) = (b(1,j+1) - b(1,j)) / (x(1,i) - x(1,j)); 
   end
   faktor = faktor * (z - x(1,i-1));
   suku = b(1)* faktor;
   pbagi = pbagi + suku;
   if (abs(suku) <= eps)
      break;
      end
   end
   disp(['Hasil f(',num2str(z),'):',num2str(pbagi)]);
   ==============================================
function n=newton
imax=input('imax:')
epsilon=input('epsilon:')
xlama=input('Tebakan Awal:')
for i=1 : imax 
   if fturun(xlama)==0
      break
   else xbaru=xlama-f(xlama)/fturun(xlama)
      disp(['Iterasi ke-',num2str(i),':',num2str(xbaru)])
   end
      if abs((xbaru-xlama)/xbaru)<=epsilon
         break
      else
         xlama=xbaru
      end
   end
==============================================
INTEGRAL
function Integral;
a=input('a=');
b=input('b=');
n=input('n=');
eps=input('epsilon=')
i = 10;
while (abs(Tr(a,b,i+10) - Tr(a,b,i))>=eps)
   fprintf('Nilai integral dengan partisi %4.0f adalah = %12.7f\n', i, Tr(a,b,i));
   i = i + 10;
end
function T = Tr(a,b,n);
h=(b-a)/n;
jumlah=0;
for i=1:1:n-1
   x=a + h*i;
   jumlah=jumlah + F(x);
end;
T=(h/2)*(F(a) + F(b) + 2*jumlah);
function F=F(x);
F= -x^2 -x + 6;
==============================================
SIMPSON
function simpson();
a = input('batas bawah = ');
b = input('batas atas = ');
n = input('jumlah partisi = ');
fprintf('nilai integral dengan partisi %3.0f = %12.7f\n',n,Simpson(a,b,n));

function S= Simpson(a,b,n);
if (mod(n,2)~=0)
   break
end;
h = (b - a)/n
x = a : h : b
y = F(x);
v = 2*ones(n+1,1);
v(2:2:n) = v(2:2:n) + 2;
v(1) = 1;
v(n+1) = 1
S = y *v;
S = S * h/3;
function f = F(x);
f = (x.*(1-x).^4)./(1+x.^2);
==============================================
function simpson();
a = input('masukkan batas bawah = ');
b = input('masukkan batas atas = ');
n = input('masukkan jumlah selang = ');
fprintf('nilai integral dengan partisi %3.0f = %12.7f\n',n,Simpson(a,b,n));
h = (b - a)/n
x = a : h : b
y = F(x);
v = 2*ones(n+1,1);
v(2:2:n) = v(2:2:n) + 2;
v(1) = 1;
v(n+1) = 1
S = y *v;
S = S * h/3;
function f = F(x);
f = (x.*(1-x).^4)./(1+x.^2);
     
Comments
0 Comments

No response to “ALGORITMA NUMERIK”

Leave a Reply

Tinggalkan komentar dengan sopan santun