0% found this document useful (0 votes)
105 views

I. Program Praktikum 1. Iterasi Jacobi

The document discusses three iterative methods - Jacobi iteration, Gauss-Seidel iteration, and SOR (Successive Over-Relaxation) - for solving systems of linear equations. Jacobi iteration uses the solutions from the previous iteration to calculate new estimates. Gauss-Seidel iteration also uses iterative updating but incorporates the most recent estimates. SOR is similar to Gauss-Seidel but includes a weighting factor. The document also provides code samples and asks students to analyze the differences between the norms of Jacobi and Gauss-Seidel iterations and summarize the methods studied.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views

I. Program Praktikum 1. Iterasi Jacobi

The document discusses three iterative methods - Jacobi iteration, Gauss-Seidel iteration, and SOR (Successive Over-Relaxation) - for solving systems of linear equations. Jacobi iteration uses the solutions from the previous iteration to calculate new estimates. Gauss-Seidel iteration also uses iterative updating but incorporates the most recent estimates. SOR is similar to Gauss-Seidel but includes a weighting factor. The document also provides code samples and asks students to analyze the differences between the norms of Jacobi and Gauss-Seidel iterations and summarize the methods studied.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 16

I. Program Praktikum 1.

Iterasi jacobi Listing Program


/* iterasi jacobi */ #include <stdio.h> #include <math.h> #include <conio.h> void nama() { printf("ITERASI JACOBI\n"); } main() { int i,j,baris,kolom,it 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 ; float A[5][5],B[5],x[5],x_1[5],tol,TRUE ;

{ 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.

2. Itersasi gauss seidel Listing Program


/* ITERASI GAUSS SEIDEL */ #include <stdio.h> #include <math.h> #include <conio.h> void nama() {

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.

3. SOR (successive over relaxation) Listing Program


/*SUCCESIVE OVER RELAXATION*/ #include <stdio.h> #include <math.h> #include <conio.h> void nama() {

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]);

for(i=0; i<baris; i++) { x[i]=0; }

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.

You might also like