laporan akhir metnum 1

36
Tampilan

Upload: sundus-ghaida-noor-azizah

Post on 04-Aug-2015

47 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: LAPORAN AKHIR METNUM 1

Tampilan

Page 2: LAPORAN AKHIR METNUM 1

AnalisaPada persamaan non linier yang pertama ini batas selang iterasi adalah 1 dan

2 sehingga jika memasukkan bukan nilai 1 atau 2 pada nilai x dan y, maka tidak akan ada solusi persamaan yang dihasilkan. Karena jika dimasukkan kedalam persamaan tidak akan memenuhi syarat untuk menghasilkan akar dengan metode bisection, yaitu f(x)f(y) < 0.

Kemudian, perbedaan nilai toleransi yang dimasukkan akan mempengaruhi hasil iterasi yang ditetapkan. Toleransi 10-3 menghasilkan iterasi sebanyak 10 kali sementara toleransi 10-4 menghasilkan iterasi sebanyak 14 kali dan toleransi 10-5

menghasilkan iterasi sebanyak 17 kali. Dari situ dapat disimpulkan bahwa makin kecil suatu toleransi, maka nilai solusi akar yang didapatkan akan semakin teliti (tepat) namun laju konvergensinya akan semakin lama karena banyak iterasinya yang disebabkan mencari-cari terus nilai error yang sama dengan 0.

Perulangan do while digunakan untuk perulangan mendapatkan error sekecil-kecilnya sehingga didapatkannlah nilai-nilai iterasi dalam bentuk tabel.

b. 3x – ex = 0, untuk 1 ≤ x ≤ 2

Listing Program

#include <stdio.h>#include <conio.h>#include <math.h>

float f (float x ){ float f ;

{ f = 3*x - exp(x); return f; }} main(){ float x,y,z,error,tol; int i = 0; //deklarasi iterasi printf ("\t\tPenyelesaian Persamaan Non Linier\n"); printf("\t\t\t*Metode Bisection*\n\n"); printf("Persamaan: 3*x - exp(x) = 0\n\n"); printf("Masukkan nilai x : "); scanf("%f",&x); //batas selang bawah

Page 3: LAPORAN AKHIR METNUM 1

printf("Masukkan nilai y : "); scanf("%f",&y); //batas selang atas printf("Masukkan toleransi : "); scanf("%f",&tol); if ((f(x)*f(y))>0) { printf("Tidak ada solusi akar persamaan"); } else { printf("\ni\tx\ty\tz\t || \tf(x)\tf(y)\tf(z)\terror\n"); do { z= (x+y)/2; // hasil bagi 2 batas selang error = (fabs(y-x)/2); // i++; printf("\n%d\t%.3f\t%.3f\t%.3f\t || \t%.3f\t%.3f\t%.3f\t%.3f",i,x,y,z,f(x),f(y),f(z),error); if ((f(x)*f(z))< 0) // syarat metode bisection { y = z; } else { x = z; } } while (error > tol); printf("\n\n"); printf("nilai solusi akar : %f",z); printf("\n"); printf("banyaknya iterasi : %d",i); } getch();}

Page 4: LAPORAN AKHIR METNUM 1

Tampilan

Page 5: LAPORAN AKHIR METNUM 1

Analisa

Kode-kode program pada persamaan kedua tetap sama, hanya saja bentuk persamaannya yang diubah. Syarat batas-batas selangnya pun sama. Karena nilai z nya berubah, mengikuti persamaan baru, maka nilai solusi akarnyapun hasilnya tidak terlalu jauh dengan hasil persamaan pertama. Karena batas selangnya pun sama, maka jumlah iterasinya pada setiap toleransi juga sama dengan persamaan 1. Untuk nilai solusi akar persamaan 2, jumlah angka di belakang koma ada 6 tidak sama seperti pada persamaan 1. Hal ini karena pada kode program tidak ditulis %.3f, melainkan %f saja.

c. x2 - 4x – 4 - ln x = 0, untuk 1 ≤ x ≤ 2 dan 2 ≤ x ≤ 4

Listing Program

#include <stdio.h>#include <conio.h>#include <math.h>

float f (float x ){ float f ;

{ f = (x*x)-(4*x)-(4-log1p(x)) ; //(x*x)-(4*x)+(4-log1p(x)) return f; }} main(){ float x,y,z,error,tol; int i = 0; //deklarasi iterasi printf ("\t\tPenyelesaian Persamaan Non Linier\n"); printf("\t\t\t*Metode Bisection*\n\n"); printf("Persamaan: (x*x)-(4*x)-(4-log1p(x)) = 0\n\n"); printf("untuk 1<= x <= 2 dan 2 <= x <= 4\n\n"); //batas-batas selang printf("Masukkan nilai x : "); scanf("%f",&x); //batas selang bawah printf("Masukkan nilai y : "); scanf("%f",&y); //batas selang atas printf("Masukkan toleransi : "); scanf("%f",&tol); if ((f(x)*f(y))>0)

Page 6: LAPORAN AKHIR METNUM 1

{ printf("Tidak ada solusi akar persamaan"); } else { printf("\ni\tx\ty\tz\t || \tf(x)\tf(y)\tf(z)\terror\n"); do { z= (x+y)/2; // hasil bagi 2 batas selang error = (fabs(y-x)/2); // i++; printf("\n%d\t%.3f\t%.3f\t%.3f\t || \t%.3f\t%.3f\t%.3f\t%.3f",i,x,y,z,f(x),f(y),f(z),error); if ((f(x)*f(z))< 0) // syarat metode bisection { y = z; } else { x = z; } } while (error > tol); printf("\n\n"); printf("nilai solusi akar : %f",z); printf("\n"); printf("banyaknya iterasi : %d",i); } getch();}

Tampilan

Page 7: LAPORAN AKHIR METNUM 1

Analisa

Persamaan ke-3 ini, tidak menghasilkan solusi akar, baik dengan menggunakan batas 1 ≤ x ≤ 2 ataupun 2 ≤ x ≤ 4. Ln di sini diganti menjadi log1p. Namun, jika tanda (-) pada persamaan diubah menjadi (+) sehingga berubah menjadi (x*x)-(4*x)+(4-log1p(x)) akan menghasilkan nilai solusi 1.130 dengan banyak iterasi 17 untuk batas [1 2] dengan menggunakan toleransi 0.00001.

d. x cos x – 2x2 + 3x – 1 = 0, untuk 0.2 ≤ x ≤ 0.3 dan 1.2 ≤ x ≤ 1.3

Listing Program

#include <stdio.h>#include <conio.h>#include <math.h>

float f (float x ){ float f ;

{ f = (x*cos(x))-(2*x*x)+(3*x)-1 ; return f; }} main(){ float x,y,z,error,tol; int i = 0; //deklarasi iterasi printf ("\t\tPenyelesaian Persamaan Non Linier\n"); printf("\t\t\t*Metode Bisection*\n\n"); printf("Persamaan: (x*cos(x))-(2*x*x)+(3*x)-1 = 0\n"); printf("untuk 0.2<= x <= 0.3 dan 1.2 <= x <= 1.3\n\n"); //batas-batas selang printf("Masukkan nilai x : "); scanf("%f",&x); //batas selang bawah printf("Masukkan nilai y : "); scanf("%f",&y); //batas selang atas printf("Masukkan toleransi : "); scanf("%f",&tol); if ((f(x)*f(y))>0) { printf("Tidak ada solusi akar persamaan"); }

Page 8: LAPORAN AKHIR METNUM 1

else { printf("\ni\tx\ty\tz\t || \tf(x)\tf(y)\tf(z)\terror\n"); do { z= (x+y)/2; // hasil bagi 2 batas selang error = (fabs(y-x)/2); // i++; printf("\n%d\t%.3f\t%.3f\t%.3f\t || \t%.3f\t%.3f\t%.3f\t%.3f",i,x,y,z,f(x),f(y),f(z),error); if ((f(x)*f(z))< 0) // syarat metode bisection { y = z; } else { x = z; } } while (error > tol); printf("\n\n"); printf("nilai solusi akar : %f",z); printf("\n"); printf("banyaknya iterasi : %d",i); } getch();}

TampilanBatas 0.2 ≤ x ≤ 0.3

Page 9: LAPORAN AKHIR METNUM 1

Batas 1.2 ≤ x ≤ 1.3

AnalisaTidak banyak dilakukan perubahan pada program persamaan ke-4 ini,

hanya mengubah fungsi f menjadi fungsi pada persamaan ke-4 sama dengan yang sebelumnya. Pada persamaan kali ini menggunakan 2 selang batas yang berbeda. Jika menggunakan selang pertama yaitu [0.2 0.3] akan didapatkan

Page 10: LAPORAN AKHIR METNUM 1

hasil solusi sebesar 0.297 sementara pada selang kedua [1.2 1.3] akan didapatkan hasil solusi sebesar 1.256. Hanya hasil solusi yang berbeda (yang disebabkan batas selang berbeda). Namun jumlah iterasi untuk mendapatkan solusi adalah sama antara selang pertama dengan selang kedua.

2. Metode Iterasi Titik Tetap

a. x = g1 (x) = x – x3 – 4x2 + 10

Listing Program

#include <stdio.h>

#include <conio.h>

#include <math.h>

float f(float x)

{

float f;

f = (x*x*x) + (4*x*x) -10 ;

return f;

}

float g(float x)

{

float g;

g = x - (x*x*x) - (4*x*x) + 10 ;

return g;

}

main()

{

float x,y,error,tol; int i=0,im;

Page 11: LAPORAN AKHIR METNUM 1

printf ("\t\tPenyelesaian Persamaan Non Linier\n");

printf("\t\t\t*Metode Iterasi Titik Tetap*\n\n");

printf("Persamaan: x = g(x) = x - (x*x*x) - (4*x*x) + 10 \n");

printf("Masukkan nilai perkiraan awal = ");

scanf("%f", &x);

printf("Masukkan nilai toleransi = ");

scanf("%f", &tol);

printf("Masukkan jumlah iterasi maksimum = ");

scanf("%d", &im);

//x = x1; nilai awal yang dikira-kira

//y = x2; nilai akhir

printf("\ni\t\tx1\t\terror\n");

printf("%d\t\t%f\t\t%f\n",i,x,error);

do

{

y = g(x);

error = (fabs(y-x)) ;

printf("%d\t\t%f\t\t%f\n",i+1,y,error);

x=y;

i++;

}while( error > tol && i<=im);

{ if(i <= im)

{

printf("\nIterasi Divergen");

}

Page 12: LAPORAN AKHIR METNUM 1

else

{

printf("\nNilai solusi akarnya : %f", y);

printf("\nBanyaknya iterasi : %d", i);

}}

getch();

return 0;

}

Tampilan

Analisa

Program berjalan namun tidak ada hasil yang diperoleh (error) baik pada toleransi 0.001 atau 0.0001 bahkan 0.00001. Padahal seharusnya program akan menghasilkan nilai solusi akar yang sama dengan metode bisection persamaan 1. Program ini error mungkin karena ada kesalahan dalam memasukkan jumlah iterasi. Atau ada kesalahan dalam persamaannya yang baru dan juga listing programnya.

Page 13: LAPORAN AKHIR METNUM 1

b. x = g3 (x) = ½ (10 – x3)1/2

Listing Program

#include <stdio.h>

#include <conio.h>

#include <math.h>

float f(float x)

{

float f;

f = (x*x*x) + (4*x*x) -10 ;

return f;

}

float g(float x)

{

float g;

g = (sqrt(10-(x*x*x)))/2;

return g;

}

main()

{

float x,y,error,tol; int i=0,im;

printf ("\t\tPenyelesaian Persamaan Non Linier\n");

printf("\t\t\t*Metode Iterasi Titik Tetap*\n\n");

printf("Persamaan: (x = g(x) = sqrt(10-(x*x*x)))/2\n");

printf("Masukkan nilai perkiraan awal = ");

scanf("%f", &x);

printf("Masukkan nilai toleransi = ");

Page 14: LAPORAN AKHIR METNUM 1

scanf("%f", &tol);

printf("Masukkan jumlah iterasi maksimum = ");

scanf("%d", &im);

//x = x1; nilai awal yang dikira-kira

//y = x2; nilai akhir

printf("\ni\t\tx1\t\terror\n");

printf("%d\t\t%f\t\t%f\n",i,x,error);

do

{

y = g(x);

error = (fabs(y-x)) ;

printf("%d\t\t%f\t\t%f\n",i+1,y,error);

x=y;

i++;

}while( error > tol && i<=im);

{ if(i <= im)

{

printf("\nIterasi Divergen");

}

else

{

printf("\nNilai solusi akarnya : %f", y);

printf("\nBanyaknya iterasi : %d", i);

}}

getch();

return 0;

}

Page 15: LAPORAN AKHIR METNUM 1

Tampilan

Page 16: LAPORAN AKHIR METNUM 1

Analisa

Pada program persamaan ke-2 ini, program berjalan lancar. Program menghasilkan nilai solusi yang sama dengan persamaan 1 metode bisection. Program menghasilkan solusi akar 1.365 dengan jumlah iterasi yang sama yaitu 11 pada semua toleransi. Program menghasilkan nilai solusi akar 1.365 karena nilai iterasi maksimum yang diinputkan adalah 10 untuk semua toleransi. Namun jika yang diinputkan adalah 17, maka program pada setiap toleransi tidak akan menghasilkan akar karena bersifat divergen. Untuk yang bersifat divergen, jumlah iterasi pada tiap toleransinya berbeda.

c. x = g2 (x) = (10/x -4x)1/2

Listing Program

#include <stdio.h>

#include <conio.h>

#include <math.h>

float f(float x)

{

float f;

f = (x*x*x) + (4*x*x) -10 ;

return f;

}

float g(float x)

{

float g;

g = (10/x - 4*x)*exp(1/2);

return g;

}

main()

Page 17: LAPORAN AKHIR METNUM 1

{

float x,y,error,tol; int i=0,im;

printf ("\t\tPenyelesaian Persamaan Non Linier\n");

printf("\t\t\t*Metode Iterasi Titik Tetap*\n\n");

printf("Persamaan: x = g(x) = (10/x - 4*x)*exp(1/2)\n");

printf("Masukkan nilai perkiraan awal = ");

scanf("%f", &x);

printf("Masukkan nilai toleransi = ");

scanf("%f", &tol);

printf("Masukkan jumlah iterasi maksimum = ");

scanf("%d", &im);

//x = x1; nilai awal yang dikira-kira

//y = x2; nilai akhir

printf("\ni\t\tx1\t\terror\n");

printf("%d\t\t%f\t\t%f\n",i,x,error);

do

{

y = g(x);

error = (fabs(y-x)) ;

printf("%d\t\t%f\t\t%f\n",i+1,y,error);

x=y;

i++;

}while( error > tol && i<=im);

{ if(i <= im)

{

printf("\nIterasi Divergen");

Page 18: LAPORAN AKHIR METNUM 1

}

else

{

printf("\nNilai solusi akarnya : %f", y);

printf("\nBanyaknya iterasi : %d", i);

}}

getch();

}

Tampilan

Analisa

Pada program ke 3 ini juga menghasilkan nilai solusi akar error karena menghasilkan nilai solusi yang sangat jauh dari yang sebenarnya untuk semua toleransi. Hal ini mungkin juga disebabkan salah penulisan rumus pada listing programnya. Karena mau diinput nilai berapapun pada iterasi maksimum, hasilnya tetap error.

d. x = g4 (x) = {10/(4+x)}1/2

Listing Program

#include <stdio.h>

#include <conio.h>

Page 19: LAPORAN AKHIR METNUM 1

#include <math.h>

float f(float x)

{

float f;

f = (x*x*x) + (4*x*x) -10 ;

return f;

}

float g(float x)

{

float g;

g = (10/(4+x))*exp(1/2);

return g;

}

main()

{

float x,y,error,tol; int i=0,im;

printf ("\t\tPenyelesaian Persamaan Non Linier\n");

printf("\t\t\t*Metode Iterasi Titik Tetap*\n\n");

printf("Persamaan: x = g(x) = (10/(4+x))*exp(1/2)\n");

printf("Masukkan nilai perkiraan awal = ");

scanf("%f", &x);

printf("Masukkan nilai toleransi = ");

scanf("%f", &tol);

printf("Masukkan jumlah iterasi maksimum = ");

scanf("%d", &im);

Page 20: LAPORAN AKHIR METNUM 1

//x = x1; nilai awal yang dikira-kira

//y = x2; nilai akhir

printf("\ni\t\tx1\t\terror\n");

printf("%d\t\t%f\t\t%f\n",i,x,error);

do

{

y = g(x);

error = (fabs(y-x)) ;

printf("%d\t\t%f\t\t%f\n",i+1,y,error);

x=y;

i++;

}while( error > tol && i<=im);

{ if(i <= im)

{

printf("\nIterasi Divergen");

}

else

{

printf("\nNilai solusi akarnya : %f", y);

printf("\nBanyaknya iterasi : %d", i);

}}

getch();

return 0;

}

Tampilan

Page 21: LAPORAN AKHIR METNUM 1

Analisa

Program ke-4 ini pun juga tidak menghasilkan nilai solusi akar 1.365 namun terus menghasilkan pernyataan bahwa iterasi divergen pada semua toleransi dalam jumlah iterasi maksimum yang berbeda.

e. x = g5 (x) = x – {( x3 + 4x2 – 10) / (3x2 + 8x)}

Listing Program

#include <stdio.h>#include <conio.h>#include <math.h>

float f(float x){ float f; f = (x*x*x) + (4*x*x) -10 ; return f;}float g(float x){ float g; g = (x-(((x*x*x)+(4*x*x)-10)/((3*x*x)+(8*x)))); return g;}main(){ float x,y,error,tol;

Page 22: LAPORAN AKHIR METNUM 1

int i=0;

printf ("\t\tPenyelesaian Persamaan Non Linier\n"); printf("\t\t\t*Metode Iterasi Titik Tetap*\n\n"); printf("Persamaan: x = g(x) = (x-(((x*x*x)+(4*x*x)-10)/((3*x*x)+(8*x))))\n"); printf("Masukkan nilai perkiraan awal = "); scanf("%f", &x); printf("Masukkan nilai toleransi = "); scanf("%f", &tol); //x = x1; nilai awal yang dikira-kira //y = x2; nilai akhir

printf("\ni\t\tx1\t\terror\n");printf("%d\t\t%f\t\t%f\n",i,x,error);

do { y = g(x); error = (fabs(y-x)) ; printf("%d\t\t%f\t\t%f\n",i+1,y,error); x=y; i++; } while( error > tol); printf("\nNilai solusi akarnya : %f", y); printf("\nBanyaknya iterasi : %d", i);

getch();}

Tampilan

Page 23: LAPORAN AKHIR METNUM 1

Analisa

Program menghasilkan nilai solusi akar yang benar, yaitu 1.365 pada setiap toleransi. Program juga menghasilkan jumlah iterasi yang sama yaitu 4 pada setiap toleransi. Namun program ini tidak dibuat dalam bentuk if else, karena tidak digunakan kondisi jika yang dihasilkan adalah iterasi divergen.

3. Metode Newton

- x3+ 4x2 -10 = 0, untuk 1 ≤ x ≤ 2

#include<stdio.h>#include<conio.h>#include<math.h>

float f(float x){ float f; f = (x*x*x) + (4*x*x) -10; return f;}float g(float x){ float g; g = (3*x*x) + (8*x) ; return g;}

main(){ float a,b, error, tol; int im,i;printf ("\t\tPenyelesaian Persamaan Non Linier\n");printf("\t\t\t*Metode Newton*\n\n");printf("Persamaan: (x*x*x) + (4*x*x) -10\n\n");printf("Masukkan nilai perkiraan awal : "); scanf("%f", &a);printf("Masukkan nilai toleransi : "); scanf("%f", &tol);printf("Masukkan iterasi maximum : "); scanf("%d", &im);printf("\n\ni\ta\tb\terror\n");

i=0;

do{

Page 24: LAPORAN AKHIR METNUM 1

i = i++; b = a-f(a)/g(a); error = fabs(b-a); printf("%2d\t%.4f\t%.4f\t%.4f\t\n", i++,a,b,error); a = b;}

while (i <= im && error > tol); if(i <= im) { printf("\nTurunan f(x) menghasilkan solusi akar\n"); printf("Nilai solusi akarnya : %f\n",b); printf("\nBanyaknya iterasi : %d", i); }elseprintf("\nTurunan f(x) tidak dapat menghasilkan solusi akar\n");getch();

}

Tampilan

AnalisaPada program persamaan 1 menggunakan metode newton, turunan dari

persamaan itu akan menghasilkan nilai solusi akar yang sama dengan

Page 25: LAPORAN AKHIR METNUM 1

persamaannya yaitu 1.365 jika dimasukkan batas selangnya [1 2]. Untuk setiap toleransi yang berbeda, nilai solusi akarnya selalu sama dan banyak iterasinya pun tetap sama yaitu 4. Jumlah iterasinya berbeda dengan yang ada di metode bisection.

4. Tugas Akhir

- Metode Regula Falsi

Listing Program#include <stdio.h>#include <conio.h>#include <math.h>

float f (float x ){ float f ;

{ f = (x*x*x) + (4*x*x) - 10; return f; }} main(){ float x,y,z,error,tol; int i = 0; //deklarasi iterasi printf ("\t\tPenyelesaian Persamaan Non Linier\n"); printf("\t\t\t*Metode Regula Falsi*\n\n"); printf("Persamaan: x*x*x + 4*x*x - 10 = 0\n\n"); printf("Masukkan nilai x : "); scanf("%f",&x); //batas selang bawah printf("Masukkan nilai y : "); scanf("%f",&y); //batas selang atas printf("Masukkan toleransi : "); scanf("%f",&tol); if ((f(x)*f(y))>0) { printf("Tidak ada solusi akar persamaan"); } else { printf("\ni\tx\ty\tz\t || \tf(x)\tf(y)\tf(z)\terror\n"); do

Page 26: LAPORAN AKHIR METNUM 1

{ z = y - (((y-x)*f(y)) / (f(y)-f(x))); //syarat regulasi error = fabs(z-x); printf("\n%d\t%.3f\t%.3f\t%.3f\t || \t%.3f\t%.3f\t%.3f\t%.3f",i++,x,y,z,f(x),f(y),f(z),error); if ((f(x)*f(z))< 0) { y = z; } else { x = z; } } while (error > tol); printf("\n\n"); printf("nilai solusi akar : %f",z); printf("\n"); printf("banyaknya iterasi : %d",i); } getch();}

Tampilan

Page 27: LAPORAN AKHIR METNUM 1

Analisa

Mencari solusi akar dengan menggunakan metode regula falsi hampir sama dengan menggunakan metode bisection. Nilai solusi akar pada setiap toleransi akan berbeda sedikit dan jumlah iterasinyapun berbeda, akan meningkat selama toleransinya makin kecil. Yang membedakan hanyalah syarat rumus yang digunakan pada kedua metode ini.

- Metode SecantListing Program#include <stdio.h>#include <conio.h>#include <math.h>

float f (float x ){ float f ;

{ f = (x*x*x) + (4*x*x) - 10; return f; }} main(){ float x1,x0,error,tol,x_sebelumnya,x; int i = 0; //deklarasi iterasi printf ("\t\tPenyelesaian Persamaan Non Linier\n"); printf("\t\t\t*Metode Secant*\n\n"); printf("Persamaan: x*x*x + 4*x*x - 10 = 0\n\n"); printf("Masukkan nilai x : "); scanf("%f",&x0); //nilai tebakan awal printf("Masukkan nilai y : "); scanf("%f",&x1); //nilai tebakan awal printf("Masukkan toleransi : "); scanf("%f",&tol); printf("\ni\tx0\tx1\tx\t || \tf(x0)\tf(x1)\tf(x)\terror\n"); do { x_sebelumnya = x; x = x-(f(x1)*(x1-x0)/(f(x1)-f(x0))); x0 = x1; x1 = x; error = fabs(x-x_sebelumnya);

Page 28: LAPORAN AKHIR METNUM 1

printf("\n%d\t%.3f\t%.3f\t%.3f\t || \t%.3f\t%.3f\t%.3f\t%.3f",i++,x0,x1,x,f(x0),f(x1),f(x),error); } while(error > tol); printf("\n\n"); printf("nilai solusi akar : %f",x); printf("\n"); printf("banyaknya iterasi : %d",i); getch();}

Tampilan

Page 29: LAPORAN AKHIR METNUM 1

Analisa

Meskipun termasuk metode terbuka karena metode secant merupakan pembaharuan untuk metode newton yang turunan persamaannya tidak bisa menghasilkan solusi akar, metode secant menggunakan batas-batas seperti pada metode regula falsi.

Analisa Umum Pada program yang menggunakan metode bisection, nilai solusi akar yang

dihasilkan pada masing-masing persamaan adalah sama dalam toleransi yang berbeda. Namun ada 1 persamaan yang tidak menghasilkan solusi akar, hal ini disebabkan karena tidak memenuhi syarat f(x)f(y) < 0. Dalam 4 persamaan, persamaan terakhirlah yang memiliki batas selang 2 macam. Pada setiap nilai solusi akar yang dihasilkan pada setiap program, toleransi terkecil akan

Page 30: LAPORAN AKHIR METNUM 1

menghasilkan iterasi paling banyak, dalam arti lain iterasi meningkat dari toleransi besar ke toleransi kecil. Hal ini berarti metode bisection akan menghasilkan laju konvergensi yang semakin lama jika toleransi semakin kecil.

Pada program yang menggunakan metode iterasi titik tetap, program yang bisa berjalan dengan menghasilkan nilai solusi akar yang benar hanya 2 program, yaitu program persamaan 2 dan persamaan 5. Namun, program persamaan 5 tidak dibuat untuk memenuhi kondisi iterasi divergen karena jika diberi kondisi divergen, program tidak berjalan dengan benar. Dari 5 persamaan pada metode iterasi titik tetap, ada 1 persamaan yang selalu menghasilkan iterasi divergen yaitu persamaan 4. Persamaan 1 dan 3 error dikarenakan kurang teliti dalam memasukkan rumus kode-kode programnya. Jika dilihat dari persamaan yang menghasilkan solusi akar yang benar, jumlah iterasi pada program persamaan itu selalu sama. Hal ini menunjukkan ada perbedaan pada metode iterasi titik tetap dengan metode bisection, yaitu laju konvergensinya akan selalu sama pada setiap toleransi.

Pada program yang menggunakan metode newton, hasil solusi akar dari turunan persamaan f(x) akan sama dengan hasil solusi akar pada persamaannya. Untuk nilai solusi akar dan jumlah iterasinya akan sama pada tiap toleransi.

Pada program regula falsi, karena sama-sama termasuk metode tertutup dengan metode bisection, maka hasil solusi akar dan jumlah iterasinyapun akan sama dengan metode bisection, yaitu jumlah iterasinya meningkat sesuai mengecilnya toleransi. Yang membedakan dari kedua metode ini hanyalah rumusnya.

Kesimpulan - Metode bisection dan metode newton lebih mudah digunakan dibanding

metode iterasi titik tetap- Laju kekonvergenan pada metode bisection selalu meningkat setiap

toleransi deiperkecil, namun pada metode iterasi titik tetap dan metode newton laju konvergennya selalu sama pada setiap toleransi

- Pada metide bisection perbedaan toleransi yang dimasukkan akan sangat mempengaruhi hasil jumlah iterasi

- Setiap metode memilik rumus yang berbeda untuk menghasilkan solusi akar persamaannya

- Jumlah iterasi pada setiap metode berbeda- Metode bisection dan metode regula falsi termasuk metode tertutup karena

membutuhkan batas selang dalam mencari solusi akarnya. Sementara metode newton dan iterasi titik tetap tidak.