Senin, 02 November 2015

Source Code Program (MATLAB) Adaptif Kuadratur Simpson

function [I,err,iflg]=adpsim(a,b,tol,fun)
% implementasi adaptif kuadratur Simpson
% Masukkan integrand,fun.
% a,b :Batas integrasi,tol:toleransi eror absolute
% errest: estimasi error
% iflg: Modus pengembalian , memberikan jumlah subinterval di mana
% jumlah maksimum ( levmax = 10 ) dari terbagi dua diperlukan dan
% nilai diterima secara default. Semakin besar iflg, kepercayaan semakin
% berkurang
% harus memiliki nilai yang dihitung, y.
% nofun: jumlah fungsi yang dievaluasi
% inisialisasi
I=0;iflg=0;jflg=0;err=0;levmax=20;
fsave=zeros(levmax,3);xsave=zeros(levmax,3);simp=zeros(levmax);
a=input('a=');
b=input('b=');
tol=input('toleransi awal=');
%fun=@(x)sqrt(x); %integrand
fun=@(x)(sin(x))^2; %integrand
tol2=tol+10*eps;
tol1=tol2*15/(b-a);

x=a:(b-a)/4:b;
for j=1:5
    f(j)=feval(fun,x(j));
end
level=1;
%level=0 berarti seluruh interval tertutup , maka selesai
while level>0
for k=1:3
    fsave(level,k)=f(k+2);
    xsave(level,k)=x(k+2);
end
h=(x(5)-x(1))/4;
simp(level)=(h/3)*(f(3)+4*f(4)+f(5));
if jflg<=0
    s1=2*(h/3)*(f(1)+4*f(3)+f(5));
end
sl=(h/3)*(f(1)+4*f(2)+f(3));
s2=sl+simp(level);
d=abs(s1-s2);
if d<=tol1*4*h
    level=level-1;
    jflg=0;
    I=I+s2;
    err=err+d/15;
    if level<=0
        fprintf('nilai integral=  %.10f \n',I)
        return
    end
    for j=1:3
        jj=2*j-1;
        f(jj)=fsave(level,j);
        x(jj)=xsave(level,j);
    end
   
else
    level=level+1;
    s1=sl;
    if level <= levmax
        jflg=1;
        f(5)=f(3);f(3)=f(2);
        x(5)=x(3);x(3)=x(2);
    else
        iflg=iflg+1;
        level=level-1;
        jflg=0;
        I=I+s2;
        err=err+d/15;
    end
end
    for k=1:2
        kk=2*k;
        x(kk)=.5*(x(kk+1)+x(kk-1));
        f(kk)=feval(fun,x(kk));
    end

end

Mengubah File XPS menjadi PDF

Baru-baru ini saya dibingungkan karena tidak bisa membuka file .xps di rental komputer. Akhirnya setelah searching di google ternyata gampang kok mengubah file XPS jadi PDF, yang pastinya lebih familiar. Yaitu dengan convert online di https://xps2pdf.co.uk/. Selamat mencoba.

Source code MATLAB untuk Menyelesaikan Sistem dengan 3 Persamaan (Metode Adam-Bashforth-Moulton)

%Metode Adam-Bashforth-Moulton
clc;
clear all;
h=0.01;%lebar sub interval
t=0:h:2000;%batas interval
N=length(t)-1;
S=zeros(N+1,1);
I=zeros(N+1,1);
P=zeros(N+1,1);
%nilai awal
S(1)=50;
I(1)=20;
P(1)=30;
for i=1:3
    % Runge Kutta order 4 untuk mencari titik 1 sampai 3
    k1t=f1(t(i),S(i),I(i),P(i));
    l1t=f2(t(i),S(i),I(i),P(i));
    m1t=f3(t(i),S(i),I(i),P(i));
   
    k2t=f1(t(i)+h/2,S(i)+k1t*h/2,I(i)+l1t*h/2,P(i)+m1t*h/2);
    l2t=f2(t(i)+h/2,S(i)+k1t*h/2,I(i)+l1t*h/2,P(i)+m1t*h/2);
    m2t=f3(t(i)+h/2,S(i)+k1t*h/2,I(i)+l1t*h/2,P(i)+m1t*h/2);
   
    k3t=f1(t(i)+h/2,S(i)+k2t*h/2,I(i)+l2t*h/2,P(i)+m2t*h/2);
    l3t=f2(t(i)+h/2,S(i)+k2t*h/2,I(i)+l2t*h/2,P(i)+m2t*h/2);
    m3t=f3(t(i)+h/2,S(i)+k2t*h/2,I(i)+l2t*h/2,P(i)+m2t*h/2);
   
    k4t=f1(t(i)+h,S(i)+k3t*h,I(i)+l3t*h,P(i)+m3t*h);
    l4t=f2(t(i)+h,S(i)+k3t*h,I(i)+l3t*h,P(i)+m3t*h);
    m4t=f3(t(i)+h,S(i)+k3t*h,I(i)+l3t*h,P(i)+m3t*h);
   
    S(i+1)=S(i)+(k1t+2*k2t+2*k3t+k4t)*(h/6);
    I(i+1)=I(i)+(l1t+2*l2t+2*l3t+l4t)*(h/6);
    P(i+1)=P(i)+(m1t+2*m2t+2*m3t+m4t)*(h/6);
end
for i=4:N
%   Adam-Bashforth-Moulton
%   Prediktor
    S(i+1)=S(i)+(h/24)*(55*f1(t(i),S(i),I(i),P(i))-59*f1(t(i-1),S(i-1),I(i-1),P(i-1))...
        +37*f1(t(i-2),S(i-2),I(i-2),P(i-2))-9*f1(t(i-3),S(i-3),I(i-3),P(i-3)));
    I(i+1)=I(i)+(h/24)*(55*f2(t(i),S(i),I(i),P(i))-59*f2(t(i-1),S(i-1),I(i-1),P(i-1))...
        +37*f2(t(i-2),S(i-2),I(i-2),P(i-2))-9*f2(t(i-3),S(i-3),I(i-3),P(i-3)));
    P(i+1)=P(i)+(h/24)*(55*f3(t(i),S(i),I(i),P(i))-59*f3(t(i-1),S(i-1),I(i-1),P(i-1))...
        +37*f3(t(i-2),S(i-2),I(i-2),P(i-2))-9*f3(t(i-3),S(i-3),I(i-3),P(i-3)));
%   Korektor
    S(i+1)=S(i)+(h/24)*(9*f1(t(i+1),S(i+1),I(i+1),P(i+1))+19*f1(t(i),S(i),I(i),P(i))...
        -5*f1(t(i-1),S(i-1),I(i-1),P(i-1))+f1(t(i-2),S(i-2),I(i-2),P(i-2)));
    I(i+1)=I(i)+(h/24)*(9*f2(t(i+1),S(i+1),I(i+1),P(i+1))+19*f2(t(i),S(i),I(i),P(i))...
        -5*f2(t(i-1),S(i-1),I(i-1),P(i-1))+f2(t(i-2),S(i-2),I(i-2),P(i-2)));
    P(i+1)=P(i)+(h/24)*(9*f3(t(i+1),S(i+1),I(i+1),P(i+1))+19*f3(t(i),S(i),I(i),P(i))...
        -5*f3(t(i-1),S(i-1),I(i-1),P(i-1))+f3(t(i-2),S(i-2),I(i-2),P(i-2)));
end

tn=t(1:N+1);
Sn=S(1:N+1)';
In=I(1:N+1)';
Pn=P(1:N+1)';
%Menampilkan hasil iterasi
fprintf('%6.3f %12.6f %18.6f %23.6f\n',[tn; Sn; In; Pn]);
%Menampilkan grafik hasil iterasi
figure(3)
plot(t,S,'r',t,I,'b',t,P,'k');
legend('S','I','P')
title('Metode Adam Bashforth Moulton Orde 4');

grid on

Senin, 19 Oktober 2015

Source Code MATLAB Metode Adam Bashforth Moulton

clc;
clear all;
%fungsi yang akan dicari penyelesaiannya
fu1=inline('9*u1+24*u2+5*cos(t)-(1/3)*sin(t)','t','u1','u2');
fu2=inline('-24*u1-51*u2-9*cos(t)+(1/3)*sin(t)','t','u1','u2');
%fungsi penyelesaian secara eksak
fu1_eks=inline('2*exp(-3*t)-exp(-39*t)+(1/3)*cos(t)','t');
fu2_eks=inline('-exp(-3*t)+2*exp(-39*t)-(1/3)*cos(t)','t');
h=0.01;%lebar sub interval
t=0:h:10;%batas interval
N=length(t)-1;
u1=zeros(N+1,1);
u2=zeros(N+1,1);
u1_eks=zeros(N+1,1);
u2_eks=zeros(N+1,1);
%nilai awal
u1(1)=4/3;
u2(1)=2/3;
u1_eks(1)=4/3;
u2_eks(1)=2/3;
error1(1)=0;
error2(1)=0;
for i=1:N
    % Runge Kutta
    k1t=fu1(t(i),u1(i),u2(i));
    l1t=fu2(t(i),u1(i),u2(i));
    k2t=fu1(t(i)+h/2,u1(i)+k1t*h/2,u2(i)+l1t*h/2);
    l2t=fu2(t(i)+h/2,u1(i)+k1t*h/2,u2(i)+l1t*h/2);
    k3t=fu1(t(i)+h/2,u1(i)+k2t*h/2,u2(i)+l2t*h/2);
    l3t=fu2(t(i)+h/2,u1(i)+k2t*h/2,u2(i)+l2t*h/2);
    k4t=fu1(t(i)+h,u1(i)+k3t*h,u2(i)+l3t*h);
    l4t=fu2(t(i)+h,u1(i)+k3t*h,u2(i)+l3t*h);
 
    u1(i+1)=u1(i)+(k1t+2*k2t+2*k3t+k4t)*(h/6);
    u2(i+1)=u2(i)+(l1t+2*l2t+2*l3t+l4t)*(h/6);
end
for i=4:N
    % Adams-Bashforth -- *predictor*
    u1(i+1) = u1(i) + h/24*(55*fu1(t(i), u1(i),u2(i)) - 59*fu1(t(i-1),...
        u1(i-1),u2(i-1))+37*fu1(t(i-2),u1(i-2),u2(i-2)) - 9*fu1(t(i-3),...
        u1(i-3),u2(i-3)));
    u2(i+1) = u2(i) + h/24*(55*fu2(t(i), u1(i),u2(i)) - 59*fu2(t(i-1),...
        u1(i-1),u2(i-1))+37*fu2(t(i-2),u1(i-2),u2(i-2)) - 9*fu2(t(i-3),...
        u1(i-3),u2(i-3)));
t(i+1) = t(i) + h;
% Adams-Moulton -- *corrector*
u1(i+1) = u1(i) + h/24*(9*fu1(t(i+1),u1(i+1),u2(i+1)) + 19*fu1(t(i),...
        u1(i),u2(i))-5*fu1(t(i-1),u1(i-1),u2(i-1)) + fu1(t(i-2),u1(i-2),...
        u2(i-2)));
    u2(i+1) = u2(i) + h/24*(9*fu2(t(i+1),u1(i+1),u2(i+1)) + 19*fu2(t(i),...
        u1(i),u2(i))-5*fu2(t(i-1),u1(i-1),u2(i-1)) + fu2(t(i-2),u1(i-2),...
        u2(i-2)));
    %solusi eksak
    u1_eks(i+1)=fu1_eks(t(i+1));
    u2_eks(i+1)=fu2_eks(t(i+1));
    %error
    error1(i+1)=abs(u1(i+1)-u1_eks(i+1));
    error2(i+1)=abs(u2(i+1)-u2_eks(i+1));
end
%menampilkan error iterasi terakhir untuk masing-masing persamaan
fprintf('nilai u1 terakhirnya %d\n',u1(N));
fprintf('nilai u2 terakhirnya %d\n',u2(N));
fprintf('Error hasil iterasi terakhir u1 adalah %d\n',error1(N));
fprintf('Error hasil iterasi terakhir u2 adalah %d\n',error2(N));
figure(1)
plot(t,u1_eks,'ko',t,u1,'y--');
legend('u1 eksak','u1');
title('Metode ABM untuk u1');xlabel('t');ylabel('u1');
figure(2)
plot(t,u2_eks,'ro',t,u2,'k--');
legend('u2 eksak','u2');
title('Metode ABM untuk u2');xlabel('t');ylabel('u2');
figure(3)
plot(t,error1,'go',t,error2,'k*');
xlabel('t');ylabel('galat u1');
legend('Galat u1','Galat u2');

Senin, 12 Oktober 2015

Source code MATLAB metode Euler Eksplisit

%Metode Euler Eksplisit
%dy/dt=f(t,y)
%f(t,y)=-(y+1)*(y+3);
clear all;
dt=0.01;
t=0:dt:2;
N=length(t)-1;
y=zeros(N+1,1);

y(1)=-2;
y_eks(1)=-2;
err(1)=0;
for n=1:N
    y(n+1)=y(n)+dt*(-(y(n)+1)*(y(n)+3));%solusi Euler eksplisit
    y_eks(n+1)=-3+2/(1+exp(-2*t(n+1)));%solusi eksak
    err(n+1)=abs(y(n+1)-y_eks(n+1));%kesalahan mutlak
end;
figure(1)
plot(t,y,'ko',t,y_eks,'r');
figure(2);%hold on
plot(t,err);

Source Code MATLAB metode Runge-Kutta Order 2 dan 4

clc;
clear all;
%fungsi yang akan dicari penyelesaiannya
fu1=inline('9*u1+24*u2+5*cos(t)-(1/3)*sin(t)','t','u1','u2');
fu2=inline('-24*u1-51*u2-9*cos(t)+(1/3)*sin(t)','t','u1','u2');
%penyelesaian secara eksak
fu1_eks=inline('2*exp(-3*t)-exp(-39*t)+(1/3)*cos(t)','t');
fu2_eks=inline('-exp(-3*t)+2*exp(-39*t)-(1/3)*cos(t)','t');
h=0.01;%lebar sub interval
t=0:h:20;%batas interval
N=length(t)-1;
u1=zeros(N+1,1);
u2=zeros(N+1,1);
u3=zeros(N+1,1);
u4=zeros(N+1,1);
u1_eks=zeros(N+1,1);
u2_eks=zeros(N+1,1);
%nilai awal
u1(1)=4/3;
u2(1)=2/3;
u3(1)=4/3;
u4(1)=2/3;
u1_eks(1)=4/3;
u2_eks(1)=2/3;
u3_eks(1)=4/3;
u4_eks(1)=2/3;
error1(1)=0;
error2(1)=0;
for i=1:N
    %Metode Runge Kutta Order 2
    k1=h*fu1(t(i),u1(i),u2(i));
    l1=h*fu2(t(i),u1(i),u2(i));
    k2=h*fu1(t(i)+h,u1(i)+k1,u2(i)+l1);
    l2=h*fu2(t(i)+h,u1(i)+k1,u2(i)+l1);
    %solusi numerik
    u1(i+1)=u1(i)+(k1+k2)/2;
    u2(i+1)=u2(i)+(l1+l2)/2;
    %solusi eksak
    u1_eks(i+1)=fu1_eks(t(i+1));
    u2_eks(i+1)=fu2_eks(t(i+1));
    %error
    error1(i+1)=abs(u1(i+1)-u1_eks(i+1));
    error2(i+1)=abs(u2(i+1)-u2_eks(i+1));
    %Metode Runge Kutta Order 4
    k1t=fu1(t(i),u3(i),u4(i));
    l1t=fu2(t(i),u3(i),u4(i));
    k2t=fu1(t(i)+h/2,u3(i)+k1t*h/2,u4(i)+l1t*h/2);
    l2t=fu2(t(i)+h/2,u3(i)+k1t*h/2,u4(i)+l1t*h/2);
    k3t=fu1(t(i)+h/2,u3(i)+k2t*h/2,u4(i)+l2t*h/2);
    l3t=fu2(t(i)+h/2,u3(i)+k2t*h/2,u4(i)+l2t*h/2);
    k4t=fu1(t(i)+h,u3(i)+k3t*h,u4(i)+l3t*h);
    l4t=fu2(t(i)+h,u3(i)+k3t*h,u4(i)+l3t*h);
    %solusi numerik
    u3(i+1)=u3(i)+(k1t+2*k2t+2*k3t+k4t)*(h/6);
    u4(i+1)=u4(i)+(l1t+2*l2t+2*l3t+l4t)*(h/6);
    %solusi eksak
    u3_eks(i+1)=fu1_eks(t(i+1));
    u4_eks(i+1)=fu2_eks(t(i+1));
    %error
    error3(i+1)=abs(u3(i+1)-u3_eks(i+1));
    error4(i+1)=abs(u4(i+1)-u4_eks(i+1));
end
%menampilkan error iterasi terakhir untuk masing-masing persamaan
fprintf('Error hasil iterasi terakhir u1 metode RK2 adalah %d\n',error1(N));
fprintf('Error hasil iterasi terakhir u1 metode RK4 adalah %d\n',error3(N));
fprintf('Error hasil iterasi terakhir u2 metode RK2 adalah %d\n',error2(N));
fprintf('Error hasil iterasi terakhir u2 metode RK2 adalah %d\n',error4(N));
figure(1)
plot(t,u1_eks,'ko',t,u1,'b*',t,u3,'g--');
legend('u1 eksak','u1 metode RK2','u1 metode RK4');
title('Metode Runge-Kutta untuk u1');xlabel('t');ylabel('u1');
figure(2)
plot(t,u2_eks,'ro',t,u2,'k*',t,u4,'y--');
legend('u2 eksak','u2 metode RK2','u2 metode RK4');
title('Metode Runga-Kutta untuk u2');xlabel('t');ylabel('u2');
figure(3)
plot(t,error1,'go',t,error3,'k*');
xlabel('t');ylabel('galat u1');
legend('Galat u1 metode RK2','Galat u1 metode RK4');
figure(4)
plot(t,error2,'ro',t,error4,'b*');
xlabel('t');ylabel(' galat u2');
legend('Galat u2 metode RK2','Galat u2 metode RK4');

Senin, 15 Juni 2015

Daftar Search Engine Terpopuler

Web search engine atau mesin pencari web adalah program komputer yang dirancang untuk melakukan pencarian berkas-berkas yang tersimpan dalam suatu jaringan. Search engine berfungsi untumecari dokumen-dokumen yang tersedia dalam suatu jaringan dengan mengetikkan keyword atau kata kunci. Hasil pencarian dari search engine berurutan berdasarkan tingkat akurasi atau rasio pengunjung berkas tersebut. Informasi yang menjaid target pencarian bisa bermacam-macam, mulai dari halaman website, gambar, file maupun jenis-jenis berkas lainnya. Beberapa mesin pencari atau search engine yang populer diantaranya adalah sebagai berikut
  1. Google
    google logo
    Google merupakan mesin pencari paling populer saat ini. Muncul pertama kali pada tahun 1997, Google memasuki pasar yang telah diisi oleh para pesaing lain dalam menyediakan layanan mesin pencari. User interface yang sederhana ternyata sangat disukai oleh pengguna, sehingga Google mampu bersaing dengan para pendahulunya. Hingga akhirnya Google menjadi salah satu mesin pencari paling populer saat ini sampai ada istilah Googling yang mengarah pada kegiatan mencari informasi di internet.
  2. Yahoo! Search
    yahoo
    Yahoo! Search merupakan mesin pencari milik Yahoo.Inc. yang didirikan oleh Jerry Yang dan David Filo pada tahun 1994. Pada sekitar tahun 2000 Yahoo merupakan mesin pencari paling populer di dunia. Banyaknya fitur dan fasilitas yang disediakan oleh Yahoo menjadikan pengguna tertarik untuk menggunakannya. Mode pencarian Yaho meliputi Yahoo! Image, Yahoo! Video, Yahoo! Local, Yahoo!News dan Yahoo! Shopping Search.
  3. Bing
    Bing_logo-old
    Bing atau sebelumnya bernama livesearch, windows livesearch dan MSN search adalah mesin pencari besutan microsoft. Mesin pencari ini merupakan pesaing utama Google selain Yahoo. Bing dibuat dengan teknologi yang disebut Power Set yang memungkinkan pengguna mendapatkan hasil pencarian yang akurat. Pencarian dengan menggunakan Bing dikelompokkan menjadi 4 kategori, yaitu web untuk mencari halaman situs atau website, Images untuk pencarian gambar, News untuk pencarian berita, dan xRank untuk mencari siapa dan apa yang paling banyak dicari oleh pengguna Bing.
  4. Ask
    Ask-LogoWalaupun kalah pamor dengan Google ataupun Yahoo, mesin pencari Ask patut dipertimbangkan dalam hal kemampuan dan hasil pencariannya. Awalnya nama resminya Ask Jeeves kemudian berganti menjadi Ask pada tahun 2006. Tampilan hasil pencarian Ask hampir sama dengan mesin pencari lain seperti pengkategorian Image, News atau Video. Hasil pencariannya pun cukup baik, meskipun masih kalah dengan mesin pencari yang lebih populer seperti Google dan Yahoo.
  5. Aol
    aol logoAol dulunya merupakan perusahaan Amerika yang bernaman American Online. Inc.yang didirikan pada tahun1983 dan berpusat di New York. Mesin pencari ini memiliki pengguna sekitar 0.22% pengguna mesin pencari di dunia.
  6. DuckduckGo
    DuckDuckGo_Logo
    Mesin pencarian yang ini sangat memperhatikan privasi penggunanya, yaitu mereka tidak melacak apa yang anda cari. DuckDuckGo didirikan oleh Gabriel Weinberg dan awalnya didanai sendiri olehnya sebelum diakuisisi oleh American Online pada tahun 2006 sebesar $10 juta. Bebebrapa kode DuckDuckGo adalah perangkat lunak bebas dan didistribusikan oleh GitHub dibawah lisensi Perl.
  7. Infospace
    infospace logoInfospace merupakan search engine milik Infospace Inc. Hasil pencarian dari infospace adalah web, image, news, video dan lain sebagaianya. Mesin pencari ini dapat menampilkan web yang sudah terindikasi oleh Google, Yahoo, maupun Bing.
Demikianlah beberapa search engine yang populer dan paling banyak digunakan. Tentu saja masih banyak search engine atau mesin pencari selain mesin pencari di atas yang memiliki kualitas yang bagus.