Langsung ke konten utama

PROGRAM METODE TABULASI - BISEKSI





SONIA HAMIDAH - 1730511060

TEKNIK INFORMATIKA - UNIVERSITAS MUHAMMADIYAH SUKABUMI

1.      Tabulasi
Metode tabulasi adalah sebuah Metode penyelesaian persamaan non linier, persamaan transedental dengan cara membuat tabel-tabel persamaan (fungsi) non linier di sekitar titik penyelesaiannya.
  

a. Flowchart

a.       Algoritma
1.      Menentukan interval yakni X1 dan X2 dimana f(X1) * f(X2) < 0.
2.      Jika telah memenuhi syarat, maka membuat tabel di antara X1 dan X2 yang menyebabkan terjadinya perubahan tanda pada f(x).
3.      Proses terus berulang hingga f(x) = 0 atau f(x) < toleransi.

a.       Program
Source code untuk metode tabulasi : 
#include <stdio.h> 
#include <math.h>
#include <stdlib.h>

double fungsi (double);

main(){
 double x1, x2, fx1, fx2, a, temp, indeks;
 int n, i=1;

 puts(">>>> METODE TABULASI <<<<");
 puts(">>>>  Sonia Hamidah <<<<");
 puts(">>>>    1730511060 <<<<");
 puts("     f(x)=x^2 - 27 ");
 printf("Masukan batas bawah : ");
 scanf("%lf", &x1);
 printf("Masukan batas atas  : ");
 scanf("%lf", &x2);
 printf("Masukan banyak iterasi : ");
 scanf("%d", &n);

 a = (x2-x1) / n;
 fx1 = fungsi(x1);
 fx2 = fungsi(x2);

 if (fx1*fx2>=0){
  printf("batas atas dan bats bawah Anda salah\n");
 }
 temp = x1;
 puts("     x\t\tfx");
 do{
  fx1 = fungsi(temp);
  fx2 = fungsi(temp+a);
  printf("%9lf  %9lf\n",temp, fx1);
  if (fx1*fx2<=0)
   indeks = temp;

  fx1 = fx2;
  temp = temp + a;
  i++;
 }while(i<=n);

 printf("\nHasil berada diantara %lf dan %lf\n",indeks, indeks+a );

}
double fungsi (double a){
 double hasil;
 hasil =a*a - 27;

 return hasil;
}

Output Program
  1. 1.      Biseksi
      Metode Biseksi merupakan salah satu metode tertutup untuk menemukan solusi akar dari persamaan non linier, ide awal dari metode biseksi adalah metode tabel, dimana areanya dibagi 2 bagian saja. akar-akar persamaan  non linier dicari melalui proses iterasi, dengan prinsip utama sbb :
Memilih bagian yang mengandung akar dan membuang yang tidak mengandung akkar hingga diproleh akar persamaan.
hal ini terlenih dahulu harus ditentukan dalam metode biseksi yang menentukan nilai tengah x = (a+b)/2 secara matematis, akan terdapat akar peramaan bila f(a) dan f(b) dalam suatu range berlawanan atau f(a) x (f(b)<0

Flowchart

Algoritma


1.      Definisikan fungsi f(x) yang akan dicari akarnya.
2.      Tentukan nilai a dan b.
3.      Tentukan torelansi e dan iterasi maksimum N
4.      Hitung f(a) dan f(b)
5.      Jika f(a).f(b)>0 maka proses dihentikan karena tidak ada akar, bila tidak dilanjutkan.
6.      Hitung 
7.      Hitung f(x)
8.      Bila f(x).f(a)<0 maka b=x dan f(b)=f(x), bila tidak a=x dan f(a)=f(x)Jika |b-a|<e atau iterasi>iterasi maksimum maka proses dihentikan dan didapatkan akar = x, dan bila tidak, ulangi langkah 6.
 


a.       Program
Source code c++ untuk metode biseksi :
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
double fungsi (double);
main(){
 double x1, x2, fx1, fx2, a, temp, indeks;
 int n, i=1;
 puts(">>>> METODE TABULASI <<<<");
 puts(">>>>  Sonia Hamidah <<<<");
 puts(">>>>    1730511060 <<<<");
 puts("     f(x)=x^2 - 27 ");
 printf("Masukan batas bawah : ");
 scanf("%lf", &x1);
 printf("Masukan batas atas  : ");
 scanf("%lf", &x2);
 printf("Masukan banyak iterasi : ");
 scanf("%d", &n);
 a = (x2-x1) / n;
 fx1 = fungsi(x1);
 fx2 = fungsi(x2);
 if (fx1*fx2>=0){
  printf("batas atas dan bats bawah Anda salah\n");
 }
 temp = x1;
 puts("     x\t\tfx");
 do{
  fx1 = fungsi(temp);
  fx2 = fungsi(temp+a);
  printf("%9lf  %9lf\n",temp, fx1);
  if (fx1*fx2<=0)
   indeks = temp;
  fx1 = fx2;
  temp = temp + a;
  i++;
 }while(i<=n);
 printf("\nHasil berada diantara %lf dan %lf\n",indeks, indeks+a );
}
double fungsi (double a){
 double hasil;
 hasil =a*a - 27;
 return hasil;
}
 

Output Program

  

Komentar

Posting Komentar