I. Program Praktikum 1. Iterasi Jacobi
I. Program Praktikum 1. Iterasi Jacobi
{ printf("\nInput elemen matriks A \n"); for(i=0; i<baris; i++) { for(j=0; j<kolom; j++) { printf("A[%d][%d] scanf("%f",&A[i][j]); } } printf("\nInput elemen B \n"); for(i=0; i<baris; i++) { printf("B[%d] = ",i+1); scanf("%f",&B[i]); } for(i=0; i<baris; i++) { x[i]=0; } = ",i+1,j+1);
printf("\nEpsilon = "); scanf("%f",&tol); TRUE =0; it=0; while(!TRUE) { it=it+1; TRUE =1; for(i=0; i<baris; i++) { x_1[i]=B[i]; for(j=0;j<kolom;j++) if(i!=j) x_1[i]=x_1[i]-A[i][j]*x[j]; x_1[i]=x_1[i]/A[i][i]; if(fabs(x_1[i]-x[i])>tol) TRUE=0; } for(i=0;i<baris;i++)
x[i]=x_1[i]; } printf("\n"); printf("Jadi solusinya adalah \n"); for(i=0;i<baris;i++) { printf(" } printf("\nBanyaknya iterasi = %d \n",it); } getch(); return 0; } x[%d] = %.5f \n",i+1,x[i]);
Tampilan Program b.
c.
printf("ITERASI GAUSS SEIDEL\n"); } main() { int i,j,baris,kolom,it int TRUE ; nama(); printf("Input indeks matriks A\n"); printf("Baris = "); scanf("%d",&baris); printf("Kolom = "); scanf("%d",&kolom); if(baris!=kolom) { printf("\n"); printf("Maaf! Syaratnya : matriks harus berorde sama n x n"); getch(); main(); } else { printf("\nInput elemen matriks A \n"); for(i=0; i<baris; i++) { for(j=0; j<kolom; j++) { printf("A[%d][%d] = ",i+1,j+1); scanf("%f",&A[i] [j]); } } printf("\nInput elemen B \n"); for(i=0; i<baris; i++) { printf("B[%d] = ",i+1); scanf("%f",&B[i]); } ; float A[5][5],B[5],x[5],xb,tol;
for(i=0; i<baris; i++) { x[i]=0; } printf("\nEpsilon = "); scanf("%f",&tol); TRUE =0; it=0; while(!TRUE) { it=it+1; TRUE =1; for(i=0;i<baris;i++) { xb=B[i]; for(j=0;j<kolom;j++) if(i!=j) xb=xb-A[i][j]*x[j]; xb=xb/A[i][i]; if(fabs(xb-x[i])>tol) TRUE = 0; x[i]=xb; } } printf("\n"); printf("Jadi solusinya adalah \n"); for(i=0;i<baris;i++) { printf(" } printf("\nBanyaknya iterasi = %d \n",it); } getch(); return 0; } x[%d] = %.5f \n",i+1,x[i]);
Tampilan Program a.
b.
c.
printf("SUCCESIVE OVER RELAXATION\n"); } main() { int i,j,baris,kolom,it,satu int TRUE ; nama(); ; float A[5][5],B[5],x[5],xb,xc,tol,omega;
printf("Input indeks matriks A\n"); printf("Baris = "); scanf("%d",&baris); printf("Kolom = "); scanf("%d",&kolom); if(baris!=kolom) { printf("\n"); printf("Maaf! Syaratnya : matriks harus berorde sama n x n"); getch(); main(); } else { printf("\nInput elemen matriks A \n"); for(i=0; i<baris; i++) { for(j=0; j<kolom; j++) { printf("A[%d][%d] = ",i+1,j+1); scanf("%f",&A[i] [j]); } } printf("\nInput elemen B \n"); for(i=0; i<baris; i++) { printf("B[%d] = ",i+1); scanf("%f",&B[i]);
printf("\nEpsilon = "); scanf("%f",&tol); printf("\nFaktor Relaksasi TRUE =0; it=0; while(!TRUE) { it=it+1; TRUE =1; for(i=0;i<baris;i++) { xb=B[i]; for(j=0;j<kolom;j++) if(i!=j) xb= (xb-A[i][j]*x[j]) ; xc= (1 - omega)*x[i] + (omega/A[i][i])*xb ; if(fabs(xc-x[i])>tol) TRUE = 0; x[i]=xc; } } printf("\n"); printf("Jadi solusinya adalah \n"); for(i=0;i<baris;i++) { printf(" } printf("\nBanyaknya iterasi = %d \n",it); } getch(); return 0; x[%d] = %.5f \n",i+1,x[i]); = "); scanf("%f",&omega);
Tampilan Program a.
b.
c.
II. Tugas Akhir 1) Selidiki perbedaan norm jika diaplikasikan pada percobaan 3.3 untuk metoda iterasi Jacobi dan gauss seidel. Jawab :
2) Buatlah summary (tidak boleh dari satu halaman) untuk menganalisa dari semua metoda yang telah anda kerjakan. Jawab :
Metode iterasi merupakan cara proses perhitungan yang dapat melakukan koreksi kesalahan selagi pemrosesan dilaksanakan, sehingga kekurangcermatan hasil dapat dihindarkan. ITERASI JACOBI Iterasi Jacobi menggunakan rumusan rekursif untuk menghitung nilai pendekatan solusi persamaan. Proses iterasi dilakukan sampai dicapai suatu nilai yang konvergen dengan toleransi yang diberikan. Untuk menjelaskan proses iterasi, tinjauhlah suatu persamaan linear simultan derajat tiga : a11x1 + a12x2 + a13x3 = b1 a21x1 + a22x2 + a23x3 = b2 a31x1 + a32x2 + a33x3 = b3 ITERASI GAUSS SEIDEL Iterasi gauss seidel sebagai cara penyelesaian persamaan linear simultan tidak jauh berbeda dengan iterasi Jacobi. Pada iterasi Gauss Seidel, nilai hasil perhitungan pada baris awal langsung digunakan untuk perhitungan nilai selanjutnya di dalam iterasi. Dengan metode ini konvergensi akan berlangsung lebih cepat. Prosedur perhitungan dan syarat konvergensi iterasi sama seperti pada iterasi Jacobi.
ANALISA Dalam praktikum Metnum-3 ini, yaitu Metoda iterasi untuk system
persamaan linear, solusi yang akan dicari adalah hasil dari metode metode iterative. Metode yang digunakan yaitu metode iterasi Jacobi, iterasi Gauss Seidel dan SOR.
Iterasi Jacobi,memerlukan x langkah sebelumnya sedangkan pada iterasi gauss seidel digunakan x terbaru. Pada iterasi Jacobi kita menetapkan dulu solusi awalnya,sedangkan pada iterasi gauss seidel ditetapkan bahwa solusi awal sama sehingga langsung nilai x yang terbaru. Iterasi SOR pada dasarnya sama dengan iterasi gauss seidel, namun bedanya pada SOR muncul factor bobot rata-rata Metode SOR ini jarang digunakan. Dari ketiga metode iterasi yang telah dicoba pada praktikum ini iterasi gauss seidel dapat dikatakan metoda yang paling baik, Karena iterasi gauss seidel selalu menggunakan nilai yang terbaru. .
KESIMPULAN Secara teori, metoda Gauss Seidel lebih efektif daripada metoda iterasi Jacobi karena menggunakan nilai x yang baru. Namun, percobaan dapat dikatakan tidak berhasil sehingga keefektifan kedua program tersebut tidak dapat dibuktikan. Solusi persamaan linear dengan akar / solusi sebanyak n memerlukan n buah persamaan.