16 0 355 KB
LABORATORIUM TEKNIK KIMIA FAKULTAS TEKNIK UPN “VETERAN” JAWA TIMUR Praktikum : Matematika Teknik Percobaan : Metode Gauss Siedel dan Jacobi Tanggal : 11 Maret 2020 Pembimbing : Nove Kartika Erliyanti, ST, MT Dosen Pembimbing
Nama NPM/Semester Sesi Paralel
: Ferinka Desty Rachmdhani : 18031010060/IV : B-1 :B
LAPORAN SEMENTARA Asisten Laboratorium
Tanggal : _____________________________
Tanggal : ____________________
(NOVE KARTIKA ERLIYANTI, ST, MT) NPT. 172 19861123 057
( NATASHA WIDYA S.) NPM. 17031010138
Soal: 1. Jelaskan perbedaan dari metode gauss seidel dan jacobi ! 2. Metode mana yang lebih dipilih untuk digunakan, jelaskan ! 3. Buatlah contoh soal untuk masing-masing metode ! 4. Kerjakan soal tersebut meggunakan Matlab !
Laporan Resmi Tanggal : _____________
1. Perbedaan dari metode jacobi dan gauss siedel adalah: a.
Metode Jacobi Pada metode Jacobi, hampiran
dikoreksi
Metode Gauss Siedel nilai a. Pada metode Gauss-Seidel, nilai secara
hampiran dihitung berdasarkan
serentak. Artinya nilai hampiran
nilai
hampiran
mengacu pada nilai hampiran
terakhir.
terbaru
atau
sebelumnya. b. Misalnya, permisalan x,y,z=0 b. Misalnya, permisalan x,y,z=0 digunakan
untuk
menghitung
hanya berlaku untuk variabel y
nilai hampiran secara serentak
dan z saja pada iterasi pertama.
pada iterasi pertama. Kemudian
Karena pada iterasi pertama ini
pada iterasi selanjutnya nilai x,y,z
sudah bisa didapatkan nilai x
yang disubstitusi merupakan nilai
yang kemudian digunakan untuk
dari hampiran pada iterasi yang
menghitung
pertama
berikutnya.
dan
perhitungan
nilai
hampiran
dilakukan secara serentak juga.
2. Metode yang lebih dipilih untuk digunakan adalah metode jacobi karena substitusi nilai x,y,z yang dilakukan jelas dan tidak membingungkan. Sehingga didapatkan data yang jelas untuk perhitungan secara manual.
4. Program dari Pengerjaan Manual a. Pada Metode Eliminasi Gauss clear all; clc; disp('********************************************************* *******'); disp('
METODE JACOBI
');
disp('********************************************************* *******'); a=input('Masukkan persamaan 1 = '); b=input('Masukkan persamaan 2 = '); c=input('Masukkan persamaan 3 = '); e=input('(%) Kesalahan
= ');
x=0; y=0; z=0; xx=(a(1,4)-a(1,2)*y-a(1,3)*z)/a(1,1); yy=(b(1,4)-b(1,1)*x-b(1,3)*z)/b(1,2); zz=(c(1,4)-c(1,1)*x-c(1,2)*y)/c(1,3); no=1; ex=100; disp('----------------------------------------------------------------'); fprintf('%2s%8s%10s%10s%18s\n','Iterasi','X','Y','Z','(%)Kesalahan'); disp('----------------------------------------------------------------'); fprintf('%4.0f%13.4f%10.4f%10.4f%14.4f\n',no,xx,yy,zz,ex); while ex>=e
x=xx; y=yy; z=zz; xx=(a(1,4)-a(1,2)*y-a(1,3)*z)/a(1,1); yy=(b(1,4)-b(1,1)*x-b(1,3)*z)/b(1,2); zz=(c(1,4)-c(1,1)*x-c(1,2)*y)/c(1,3); ex=abs((xx-x)/xx)*100; no=no+1; fprintf('%4.0f%13.4f%10.4f%10.4f%14.4f\n',no,xx,yy,zz,ex); end disp('----------------------------------------------------------------'); disp('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^'); disp(['(%)Kesalahan = ',num2str(ex)]); disp(['Nilai x
= ',num2str(xx)]);
disp(['Nilai y
= ',num2str(yy)]);
disp(['Nilai z
= ',num2str(zz)]);
disp(['Banyak Iterasi = ',num2str(no)]);
b. Metode Gauss Siedel clear all; clc; disp('********************************************************* *************************************************'); disp(' ');
METODE GAUSS SIEDEL
disp('********************************************************* *************************************************'); a=input('Masukkan persamaan 1 = ');
b=input('Masukkan persamaan 2 = '); c=input('Masukkan persamaan 3 = '); e=input('(%) Kesalahan
= ');
y=0; z=0; xx=(a(1,4)-a(1,2)*y-a(1,3)*z)/a(1,1); yy=(b(1,4)-b(1,1)*xx-b(1,3)*z)/b(1,2); zz=(c(1,4)-c(1,1)*xx-c(1,2)*yy)/c(1,3); ex=100; ey=100; ez=100; no=1; disp('---------------------------------------------------------------------------------------------------------'); fprintf('%2s%8s%10s%10s%18s%18s %18s\n','Iterasi','X','Y','Z','(%)Kesalahan x','(%)Kesalahan y','(%)Kesalahan z'); disp('---------------------------------------------------------------------------------------------------------'); fprintf('%4.0f%13.4f%10.4f%10.4f%13.4f%16.4f %18.4f\n',no,xx,yy,zz,ex,ey,ez); while ex>e || ey>e || ez>e x=xx; y=yy; z=zz; xx=(a(1,4)-a(1,2)*y-a(1,3)*z)/a(1,1); yy=(b(1,4)-b(1,1)*xx-b(1,3)*z)/b(1,2);
zz=(c(1,4)-c(1,1)*xx-c(1,2)*yy)/c(1,3); ex=abs((xx-x)/xx)*100; ey=abs((yy-y)/yy)*100; ez=abs((zz-z)/zz)*100; no=no+1; fprintf('%4.0f%13.4f%10.4f%10.4f%13.4f%16.4f %18.4f\n',no,xx,yy,zz,ex,ey,ez); end disp('--------------------------------------------------------------------------------------------------------'); disp('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'); disp(['(%)Kesalahan x = ',num2str(ex)]); disp(['(%)Kesalahan y = ',num2str(ey)]); disp(['(%)Kesalahan z = ',num2str(ez)]); disp(['Nilai x
= ',num2str(xx)]);
disp(['Nilai y
= ',num2str(yy)]);
disp(['Nilai z
= ',num2str(zz)]);
disp(['Banyak Iterasi = ',num2str(no)]);