Jumat, 14 Agustus 2015

Modul praktikum analisi numerik dengan menggunakan matlab Penyelesaian Sistem Persamaan Linier



1.    Penyelesaian Sistem Persamaan Linier
A.    Jacobi
clc,clear
A=input('masukkan matriks berordo 3x3 = ')
B=input('masukkan matriks berordo 3x1 = ')
[a b]=size(B)

if a==1
    B=B'
else
    B
end

exp=0.00001
x0=input('masukkan nilai awal pencarian dalam matriks 3x1 = ')

x(1,1)=x0(1); x(1,2)=x0(2);x(1,3)=x0(3); nr(1)=norm(A*x'-B);
i=1;

while nr(i)>exp
    i=i+1
    x(i,1)=(B(1)-A(1,2)*x(i-1,2)-A(1,3)*x(i-1,3))/A(1,1)
    x(i,2)=(B(2)-A(2,1)*x(i-1,1)-A(2,3)*x(i-1,3))/A(2,2)
    x(i,3)=(B(3)-A(3,1)*x(i-1,1)-A(3,2)*x(i-1,2))/A(3,3)
    nr(i)=norm(A*x(i,:)'-B)
end

disp('Hasil komputasi :')
disp('iterasi   x    y    z    Norm Residu')
disp([[1:i]'  x    nr'])

disp('dengan residu B-Ax = '); disp(B-A*x(i,:)')
disp(['norm residu ||B-Ax||=', num2str(nr(i))])
disp('subtitusi solusi Ax='); disp(A*x(i,:)')

%a=[3 1 -1;4 7 -3;2 -2 5]
%b=[5 20 10]
%nilai_awal=[0 0 0]
2.    Interpolasi
A.    Lagrange
clc,clear
n=input('banyak data = ');
dcr=input('data yang dicari = ');
disp ==============================================
for i=1:n
    data=i;data
    x(i)=input('masukkan nilai Xn,          Xn= ');
    y(i)=input('masukkan nilai f(Xn),   f(Xn)= ');
    disp ==============================================
end
L=0;
for i=1:n
    pii=1;
    for j=1:n
        if i ~= j
            pii=pii*((dcr-x(j))/(x(i)-x(j)));
        end
    end
    L=L+y(i)*pii;
end
Dengan_interpolasi_Lagrange_didaatkan_Y=L; Dengan_interpolasi_Lagrange_didaatkan_Y
3.    Integral
A.    Integral Traesium
clc,clear
f=inline('3','x')
xa=1;  xb=4;
banyak_x=6; %harus ganjil kelipatan 3
x=linspace(xa,xb,banyak_x);
h=x(2)-x(1)

L=0;
for i=1:banyak_x-1
    L=L+((h/2)*(f(x(i))+f(x(i+1))))
end
B.     Integral Simson
clc,clear
f=inline('3','x')
xa=0; xb=3;
banyak_x=9            % Harus Ganjil > 1
x=linspace(xa,xb,banyak_x);

h=x(2)-x(1)
L=0;
for i=1:2:banyak_x-2
    L=L+((h/3)*(f(x(i))+4*f(x(i+1))+f(x(i+2))))
end
C.     Integral Simson
clc,clear
f=inline('3','x')
xa=0;  xb=3;

banyak_x=900            % Harus Ganjil kelipatan 3
x=linspace(xa,xb,banyak_x);

h=x(2)-x(1)
L=0;
for i=1:3:banyak_x-3
    L=L+((3*h/8)*(f(x(i))+3*(f(x(i+1))+f(x(i+2)))+f(x(i+3))))
end
4.    Persamaan Differensial Biasa
A.    Metode Euler
clc, clear
f=inline('2*x^2','x')   %dalam interval [0,3] jarak = 0.1
format long
x0=0;xn=3;h=0.1;

x=x0:h:xn;
size=size(x);
size=size(1,2);

x(1)=0;y(1)=1;

for i=1:size-1
    y(i+1)=y(i)+ h*f(x(i));
end
plot(x,y)
B.     Metode Runge Kutta Orde-4
clc,clear
f=inline('sin(x*y)+cos(x+y)','x','y')           %dalam interval [0,3], h=0.1
format  long
x0=0;xn=3;
h=0.01;

x=x0:h:xn;size=size(x);size=size(1,2);

x(1)=0;
y(1)=1;

for i=1:size-1
    k1=h*f(x(i),y(i));          
    k2=h*f(x(i)+h/2,y(i)+k1/2); 
    k3=h*f(x(i)+h/2,y(i)+k2/2); 
    k4=h*f(x(i)+h,y(i)+k3);     
   
    y(i+1)=y(i)+(k1+2*(k2+k3)+k4)/6
end

plot(x,y)

Modul praktikum analisi numerik dengan menggunakan matlab Penyelesaian persamaan linier/tak linier



DAFTAR ISI

1.        Penyelesaian persamaan linier/tak linier 
A.    Metode Biseksi (Bagi Dua) ..................................................  1
B.     Metode Regula Falsi ............................................................  1
C.    Metode Newton Rhapson ....................................................  2
D.    Metode Secant .......................................................................  3
2.        Penyelesaian Sistem Persamaan Linier
A.    Jacobi .......................................................................................  3
3.        Interpolasi
A.  Lagrange .................................................................................  4
4.        Integral
A.  Integral Trapesium ...............................................................  5
B.   Integral Simson  ...............................................................  5
C.  Integral Simson  ...............................................................  6
5.        Persamaan Differensial Biasa
A.    Meode Euler ..........................................................................  6
B.     Metode Runge Kutta Orde IV ............................................  6
6.        Lampiran (Dasar-dasar Matlab)............................................... 8
 


MODUL PRAKTIKUM METODE NUMERIK
1.    Penyelesaian Persamaan Linier/Tak Linier
A.    Metode Biseksi (Bagi Dua)
clc, clear
e1=1/100000000000;
x1=-4;x2=3;xt=(x1+x2)/2;
iterasi=100;
y=inline('x^3','x')
ezplot(y)
axis ([-5 5 -5 5])
grid on
for i=1:iterasi
    if abs(y(x1))<e1
        Pada_iterasi_ke=i;Pada_iterasi_ke, nilaiX=x1; nilaiX,         break
    elseif abs(y(x2))<e1
        Pada_iterasi_ke=i;Pada_iterasi_ke, nilaiX=x2; nilaiX,         break
    elseif abs(y(xt))<e1
        Pada_iterasi_ke=i;Pada_iterasi_ke, nilaiX=xt; nilaiX,         break
    elseif y(x1)*y(x2)<0
        xt=(x1+x2)/2;
        if y(x1)*y(xt)<0
            x1=x1;            x2=xt;
        elseif y(x2)*y(xt)<0
            x1=xt;            x2=x2;
        end
    else
        disp 'tidak ada akar dalam rentang ini',         break
    end
end
B.     Metode Regula Falsi
clc, clear
e1=0.001;

x1=-2;x2=3;
iterasi=100;

y=inline('x^3','x')
ezplot(y)
axis ([-5 5 -5 5]);grid on

for i=1:iterasi
    xc=x2-((y(x2)*(x2-x1))/(y(x2)-y(x1)))
    if abs(y(x1))<e1
        Pada_iterasi_ke=i;Pada_iterasi_ke, nilaiX=x1; nilaiX,         break
    elseif abs(y(x2))<e1
        Pada_iterasi_ke=i;Pada_iterasi_ke, nilaiX=x2; nilaiX,         break
    elseif abs(y(xc))<e1
        Pada_iterasi_ke=i;Pada_iterasi_ke, nilaiX=xc; nilaiX,         break
    elseif y(x1)*y(x2)<0
        if y(x1)*y(xc)<0
            x1=x1;            x2=xc;
        elseif y(x2)*y(xc)<0
            x1=xc;            x2=x2;
        end
    else
        disp 'tidak ada akar dalam rentang ini'
        break
    end
end
C.     Metode Newton Rhapson
clc, clear
e1=0.00000000000000001;
x=3;
iterasi=100
y=inline('x^3','x')
dy=diff('x^3','x');
dy=inline(dy)
ezplot(y)
axis ([-5 5 -5 5])
grid on

for i=1:iterasi
    x=x-y(x)/dy(x)
    if abs(y(x))<e1
        Pada_iterasi_ke=i;Pada_iterasi_ke, nilaiX=x; nilaiX,         break
    end
end
D.    Metode Secant
clc, clear
e1=0.001;
x1=3; x2=2;
iterasi=100
y=inline('x^3','x')
ezplot(y)
axis ([-5 5 -5 5]); grid on

for i=1:iterasi
    x3=x2-(y(x2)*((x2-x1)/(y(x2)-y(x1))))
    if abs(x3-x2)<e1
        Pada_iterasi_ke=i;Pada_iterasi_ke, nilaiX=x3; nilaiX,        break
    end
    x1=x2;    x2=x3;
end