Pengertian, Algoritma, dan Source Code Metode Iterasi
Fungsi baru ini digunakan
untuk mencari nilai x yang pertama. Kemudian nilai tersebut dimasukan kedalam fungsi x (f(x)). Lihat contoh dibawah ini :
untuk mencari nilai x yang pertama. Kemudian nilai tersebut dimasukan kedalam fungsi x (f(x)). Lihat contoh dibawah ini :
Misal
x awal (x0) = 0 à x awal merupakan nilai input
awal(terserah sobat).
Nilai
x0 dimasukan kedalam persamaan g(x) (persamaan untuk mencari nilai x) hasil
dari gx kemudian dimasukan dalam fungsi f(x), jika nilai absolut f(x) mendekati
0, maka nilai dari x adalah adalah akar
dari persamaan.
Untuk lebih jelasnya perhatikan
algoritma berikut :
- Inisialisasi fungsi f(x) = x + e, g(x)= - e, dan g’(x) = - e;
- Inisialisasi String s;
- Inisialisasi int n, i = 1;
- Inisialisasi double x0, fx, gx, g’x;
- Tentukan nilai awal (x), toleransi error, dan banyak iterasi maksimal;
- Temp = x
- x = g(x);
- fx = f(x);
- g’(x) = g’(temp)
- temp = x;
- jika fx > 0 dan fx <1 data-blogger-escaped-:="" data-blogger-escaped-monoton="" data-blogger-escaped-s="“Konvergen" data-blogger-escaped-span="">
- jika fx> -1 dan fx <0 data-blogger-escaped-:="" data-blogger-escaped-berisolasi="" data-blogger-escaped-s="“Konvergen" data-blogger-escaped-span="">
- jika fx > 1 : s = “Divergen Monoton”;
- selain itu : s = “Divergen Berisolasi”;
- Cetak x, fx, g’x dan s;
- Naikan +1 nilai i;
- x = g(x);
- apakah i < n atau nilai absolut fx < e?;
- Ya : keluar perulangan;
- Tidak : kembali ke ke 8.
Listing program
:
#include
#include
#include
double fungsif (double);
double fungsig (double);
double diffungsig(double);
main(){
double x0=-1,tempx, fx0,fx1,
e=0.001;
int n=10, i=1, status;
char *s="";
puts("\t\tMETODE
ITERASI");
puts("\t\t f(x)=x+e^x");
printf("Masukan nilai
x0 : ");
scanf("%lf",
&x0);
printf("Masukan nilai
error : ");
scanf("%lf",
&e);
printf("Masukan jumlah
iterasi : ");
scanf("%d", &n);
tempx = x0;
x0 = fungsig(x0);
puts("=================================================================");
printf("| n | gx
| fx |
dif gx | status |\n");
puts("=================================================================");
while (i<=n){
fx0 = fungsif(x0);
fx1 =
diffungsig(tempx);
tempx=x0;
if(fx1> 0 &&
fx1<1 data-blogger-escaped-o:p="">
s =
"Konvergen Monoton";
else if (fx1>-1
&& fx1<0 data-blogger-escaped-o:p="">
s =
"Konvergen berisolasi";
else if (fx1>1){
s =
"Divergen Monoton";
status = 0;
}
else {
s =
"Divergen Berisolasi";
status = 1;
}
printf("|%2d | %8lf
| %9lf | %lf | %20s |\n",i ,x0,
fx0, fx1,s);
x0 = fungsig (x0);
i++;
if(fx0<0 data-blogger-escaped-o:p="">
fx0 = fx0*-1;
if(fx0
break;
}
puts("=================================================================");
}
double fungsif (double a){
double hasil;
hasil =a + exp(a);
return hasil;
}
double fungsig (double b ){
double hasil2;
hasil2 = - exp(b);
return hasil2;
}
double diffungsig(double c){
double hasil3;
hasil3 = -exp(c);
return hasil3;
}
Output:
![]() |
Sekian sobat blogger untuk post hari ini..nantikan ilmu-ilmu yang berikutnya. Berbagi itu memang menyenangkan!
"Usaha tanpa henti adalah kunci membuka gembok pontensi diri bukan kekuatan atau kecerdasan." ~Winston Churchill
Tidak ada komentar:
Posting Komentar