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)

Tidak ada komentar:

Posting Komentar