FAKULTAS TEKNIK
UPN “VETERAN” JAWA TIMUR Nama : KHUROTUL AINIYAH
ETA JWAHARAL Q
Praktikum : MATEMATIKA TEKNIK I VIOLA EKA
Percobaan : METODE JACOBI & METODE NPM/Semester : 17031010068/IV
GAUSS SIEDEL Sesi : IX
Tanggal : 5 APRIL 2019 Paralel :B
Pembimbing :NOVE KARTIKA E,. ST. MT
LAPORAN RESMI
SOAL
1. Jelaskan Pengertian, Tujuan, Manfaat, Perbedaan, Persamaan, dan Algoritma
dari Metode Jacobi dan Gauss Siedel!
2. Berikan contoh manual menentukan suatu akar variabel dengan menggunakan
metode Jacobi dan Metode Gauss Siedel (Minimal 3 kali iterasi) !
3. Metode jacobi adalah salah satu bidang analisis numerik yang digunakan
untuk menyelesaikan permasalahan persamaan linier dan sering dijumpai
dalam berbagai disiplin ilmu. Metode ini sangatlah dianjurkan dalam
menyelesaikan suatu persamaan. Buatlah listing suatu program dari
persamaan dibawah ini disertai algoritma dan hasilrun dan penjelasan singkat
dari listing tersebut!
3x+2y-z=4
2x-7y+3z=5
x-y+4z=7
dengan persen kesalahan 20
4. Metode gauss siedel adalah metode yang mirip sekali dengan metode jacobi,
tetapi melibatkan perhitungan implisit. Metode ini digunakan untuk
menyelesaikan sistem persamaan linier berukuran besar dan proporsi koefisien
nolnya besar. Metode ini digunakan karena lebih efisien daripada metode
langsung, serta dalam hal penggnaan memori komputer serta waktu komputasi
lebih efisien juga. Buatlah listing suatu program disertai algoritma dan hasilrun
dan penjelasan dari listing tersebut!
5x+2y-2z=7
2x+5y-z=10
x-y+2z=5
dengan persen kesalahan 10
5. Selesaikanlah persamaan dibawah ini untuk mencari nilai suatu variable x, y
dan z serta buat Program Metode Jacobi dan Metode Gaus Siedel dengan
Matrix Laboratory (MatLab) yang terdiri dari Listing Program, Hasil Run, dan
Flowchart
5x-y+z = 8
5x-6y+z= -24
-x+y+5z = 14
6. Ainun , Nikmah , dan Hikayah pergi bersama-sama ke toko buah. Ainun
membeli 5 kg jeruk , 2 kg apel dan 2 kg manggis dengan harga 70000. Nikmah
membeli 2 kg jeruk, 5 kg apel dan 1 kg manggis dengan harga 10000. Hikayah
membeli 1 kg jeruk, 1 kg apel dan 2 kg manggis dengan harga 50000. Tentukan
harga 1 kg jeruk, 1 kg apel dan 1 kg manggis dengan membuat program dengan
metode Jacobi dengan membuat listing program, flowchart , hasil run dan
algoritmanya!
7. Berdasarkan gambar dibawah ini hitung nilai I1,I2 dan I3 dengan menggunakan
hukum kirchoff arus. Buatlah Program Metode Gaus Siedel dengan Matrix
Laboratory (Matlab) yang terdiri dari Listing Program, Hasil Run, dan
Flowchartnya!
f. Algoritma
1. Metode Jacobi
a. Mengubah suatu persamaan 1, 2 dan 3 menjadi persamaan yang variabel
x,y dan z berada di depan
b. Menentukan permisalan x=y=z=0
c. Mensubtitusikan x,y,dan z ke persamaan untuk mendapatkan nilai
x1,y1 dan z1 begitu seterusnya
d. Menghitung persen kesalahan dari masing-masing iterasi sehingga
didapatkan nilai persen kesalahan mendekati 0 dengan rumus :
𝑥2−𝑥1
%kesalahan = x 100%
𝑥2
Mulai
Masukkan
plihan
Masukkan
pesamaan 1,2,3
Pilihan 1
dan persen
kesalahan
Memproses
x1,y2, dan z1
Mengasilka
n x1,y1, dan
z1
Tidak
While ex>error ||
ey>error || ez>error
Memproses
x1,y1,z1,ex,
Ya ey dan ez Tidak
Menghasilkan
x1,y1,z1,
ex,ey dan ez
1 2
1 2
Masukkan
persamaan 1,2,3
Pilihan 2
dan persen
kesalahan
Memproses
x1,y1, dan z1
Menghasilka
n x1, y1,
Tidak dan z1
While ex>error
|| ey>error || ez>error
Ya Tidak
Memproses
x1, y1, z1 ,
ex,ey dan ez
Mengasilkan
x1,y1,z1 , ex,
ey dan ez
Selesai
c. Listing Program :
clear all
clc;
disp('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
disp(' METODE PILIHAN ');
disp('-----------------------------------------------------');
disp('1. Metode Gauss Siedel ');
disp('2. Metode Jacobi ');
pil=input('Masukkan pilihan metode :');
switch pil
case 1
disp('*****************************************************');
disp('^^^^^^^^^^^^^^METODE GAUS SIEDEL^^^^^^^^^^^^^^^^^^^^^');
disp('*****************************************************');
disp('masukkan persamaan dalam bentuk matrik sebagai berikut :');
d=input('Persamaan 1 :');
e=input('Persamaan 2 :');
f=input('Persamaan 3 :');
error=input('persen error :');
disp('');
x=0;
y=0;
z=0;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x1-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x1-f(1,2)*y1)/f(1,3);
ex=100;
ey=100;
ez=100;
i=1;
disp('-----------------------------------------------------------------------');
disp(' Iterasi x y z %x %y %z ');
disp('-----------------------------------------------------------------------')
fprintf('%2i%11.6f%11.6f%11.6f%11.6f%11.6f%11.6f\n',i,x1,y1,z1,ex,ey,ez);
while ex>error||ey>error||ez>error
x=x1;
y=y1;
z=z1;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x1-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x1-f(1,2)*y1)/f(1,3);
ex=abs((x1-x)/x1)*100;
ey=abs((y1-y)/y1)*100;
ez=abs((z1-z)/z1)*100;
i=i+1;
fprintf('%2i%11.6f%11.6f%11.6f%11.6f%11.6f%11.6f\n',i,x1,y1,z1,ex,ey,ez);
end
disp('_____________________________________________________________
________');
disp('Maka :');
disp(['nilai x=',num2str(x1),';%errorx=',num2str(ex),'%']);
disp(['nilai y=',num2str(y1),';%errory=',num2str(ey),'%']);
disp(['nilai z=',num2str(z1),';%errory=',num2str(ez),'%']);
case 2
disp('*****************************************************');
disp('^^^^^^^^^^^^^^^^^METODE JACOBI^^^^^^^^^^^^^^^^^^^^^^^');
disp('*****************************************************');
disp('masukkan persamaan dalam bentuk matrik sebagai berikut :');
d=input('Persamaan 1 :');
e=input('Persamaan 2 :');
f=input('Persamaan 3 :');
error=input('persen error :');
disp('');
x=0;
y=0;
z=0;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x-f(1,2)*y)/f(1,3);
ex=100;
ey=100;
ez=100;
i=1;
disp('-----------------------------------------------------------------------');
disp(' Iterasi x y z %x %y %z ');
disp('-----------------------------------------------------------------------')
fprintf('%2i%11.4f%11.4f%11.4f%11.4f%11.4f%11.4f\n',i,x1,y1,z1,ex,ey,ez);
while ex>error||ey>error||ez>error
x=x1;
y=y1;
z=z1;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x-f(1,2)*y)/f(1,3);
ex=abs((x1-x)/x1)*100;
ey=abs((y1-y)/y1)*100;
ez=abs((z1-z)/z1)*100;
i=i+1;
fprintf('%2i%11.4f%11.4f%11.4f%11.4f%11.4f%11.4f\n',i,x1,y1,z1,ex,ey,ez);
end
disp('_____________________________________________________________
________');
disp('Maka :');
disp(['nilai x=',num2str(x1),';%errorx=',num2str(ex),'%']);
disp(['nilai y=',num2str(y1),';%errory=',num2str(ey),'%']);
disp(['nilai z=',num2str(z1),';%errory=',num2str(ez),'%']);
end
d. Hasil Run
6. a. Algoritma
1. Mulai program
2. Masukkan persamaan pertama dalam bentuk matrix
3. Masukkan persamaan kedua dalam bentuk matrix
4. Masukkan persamaan ketiga dalam bentuk matrix
5. Masukkan persen kesalahan
6. Melakukan perhitungan dengan memasukkan nilai x,y,z pertama 0 pada
semua persamaan
7. Melakukan perhitungan dengan memasukkan nilai x,y,z dari hasil
perhitungan nilai x,y,z sebelumnya pada semua persamaan
8. Menghitung persen kesalahan setiap persamaan sampai persen
kesalahan terpenuhi
9. Program menampilkan hasil x, y, z, %kesalahan 1, %kesalahan 2, dan
%kesalahan 3
10. Mengakhiri program
b. Flowchart
Mulai
Masukkan
persamaan 1,2 dan 3
serta persen
kesalahan
Memproses
nilai x1,y1,z1
Menghasilkan
x1, y1, z1
While ex>error
||ey>error ||ez>
error
Memproses
Ya x1,y1,z1, ex,ey, Tidak
dan ez
Menghasilkan
x1, y1, z1 ,
ex, ey, dan ez
Selesai
c. Listing Program
clear all;
clc;
disp('*****************************************************');
disp('^^^^^^^^^^^^^^^^^METODE JACOBI^^^^^^^^^^^^^^^^^^^^^^^');
disp('*****************************************************');
disp('masukkan persamaan dalam bentuk matrik sebagai berikut :');
d=input('Persamaan 1 :');
e=input('Persamaan 2 :');
f=input('Persamaan 3 :');
error=input('persen error :');
disp('');
x=0;
y=0;
z=0;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x-f(1,2)*y)/f(1,3);
ex=100;
ey=100;
ez=100;
i=1;
disp('----------------------------------------------------------------------------');
disp(' Iterasi Jeruk Apel Manggis %Jeruk %Apel %Manggis ');
disp('----------------------------------------------------------------------------')
fprintf('%2i%11.4f%11.4f%11.4f%11.4f%11.4f%11.4f\n',i,x1,y1,z1,ex,ey,ez);
while ex>error||ey>error||ez>error
x=x1;
y=y1;
z=z1;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x-f(1,2)*y)/f(1,3);
ex=abs((x1-x)/x1)*100;
ey=abs((y1-y)/y1)*100;
ez=abs((z1-z)/z1)*100;
i=i+1;
fprintf('%2i%11.4f%11.4f%11.4f%11.4f%11.4f%11.4f\n',i,x1,y1,z1,ex,ey,ez);
end
disp('_____________________________________________________________
________');
disp('Maka :');
disp(['nilai jeruk=',num2str(x1),';%error jeruk=',num2str(ex),'%']);
disp(['nilai apel=',num2str(y1),';%error apel=',num2str(ey),'%']);
disp(['nilai manggis =',num2str(z1),';%error manggis =',num2str(ez),'%']);
d. Hasil Run
7. a. Algoritma :
1. Mulai program
2. Masukkan persamaan pertama dalam bentuk matrix
3. Masukkan persamaan kedua dalam bentuk matrix
4. Masukkan persamaan ketiga dalam bentuk matrix
5. Masukkan persen kesalahan
6. Melakukan perhitungan I1 dengan memasukkan nilai I2, I3 pertama
dengan nilai 0 pada persamaan pertama
7. Melakukan perhitungan dengan memasukkan nilai I1 dari perhitungan
sebelumnya dan z dengan nilai 0 pada persamaan kedua
8. Melakukan perhitungan dengan memasukkan nilai I1 dan I2 dari
perhitungan sebelumnya pada persamaan ketiga
9. Menghitung persen kesalahan setiap persamaan sampai terpenuhi
10. Program menampilkan hasil I1, I2, I3, %kesalahan I1, %kesalahan I2,
dan %kesalahan I3
11. Program selesai
b. Flowchart
Mulai
Masukkan
persamaan 1,2 dan 3
serta persen
kesalahan
Memproses
nilai I1,I2,I3
Menghasilkan
I1, I2 dan I3
While %I1>error
||%I2>error %I3
error
Memproses
Ya I1,I2,I3, %I1,%I2, Tidak
dan %I3
Menghasilkan
I1,I2,I3 , %I1,
%I2, dan %I3
Selesai
c. Listing Program
clear all;
clc;
disp('*****************************************************');
disp('^^^^^^^^^^^^^^METODE GAUS SIEDEL^^^^^^^^^^^^^^^^^^^^^');
disp('*****************************************************');
disp('masukkan persamaan dalam bentuk matrik sebagai berikut :');
d=input('Persamaan 1 :');
e=input('Persamaan 2 :');
f=input('Persamaan 3 :');
error=input('persen error :');
disp('');
x=0;
y=0;
z=0;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x1-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x1-f(1,2)*y1)/f(1,3);
ex=100;
ey=100;
ez=100;
i=1;
disp('-----------------------------------------------------------------------');
disp(' Iterasi I1 I2 I3 %I1 %I2 %I3 ');
disp('-----------------------------------------------------------------------')
fprintf('%2i%11.2f%11.2f%11.2f%11.2f%11.2f%11.2f\n',i,x1,y1,z1,ex,ey,ez);
while ex>error||ey>error||ez>error
x=x1;
y=y1;
z=z1;
x1=(d(1,4)-d(1,2)*y-d(1,3)*z)/d(1,1);
y1=(e(1,4)-e(1,1)*x1-e(1,3)*z)/e(1,2);
z1=(f(1,4)-f(1,1)*x1-f(1,2)*y1)/f(1,3);
ex=abs((x1-x)/x1)*100;
ey=abs((y1-y)/y1)*100;
ez=abs((z1-z)/z1)*100;
i=i+1;
fprintf('%2i%11.2f%11.2f%11.2f%11.2f%11.2f%11.2f\n',i,x1,y1,z1,ex,ey,ez);
end
disp('_____________________________________________________________
________');
disp('Maka :');
disp(['nilai I1=',num2str(x1),';%errorI1=',num2str(ex),'%']);
disp(['nilai I2=',num2str(y1),';%errorI2=',num2str(ey),'%']);
disp(['nilai I3=',num2str(z1),';%errorI3=',num2str(ez),'%']);
d. Hasil Run