Advertisement
pendekar_langit

biseksi

Nov 20th, 2014
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // This is the main DLL file.
  2.  
  3. #include "stdafx.h"
  4. #include "numerik.h"
  5. #include "stdio.h"
  6. #include "math.h"
  7. #include "sal.h"
  8.  
  9. double f(double x){
  10.        return (exp(-x)-x);
  11. }
  12. void main() {
  13.     double h[100],a,b,e,fa,fb,xr,fx;
  14.     int n,i;
  15.  
  16.     printf("\t\t****************\n");
  17.     printf("\t\t|Metode Biseksi|\n");
  18.     printf("\t\t****************\n");
  19.     printf("Input batas bawah(a)\t\t:");
  20.     scanf("%f",&a);
  21. //masukkan nila a
  22.     printf("Input batas atas(b)\t\t:");
  23.     scanf("%f",&b);
  24. //masukkan nilai b
  25.     printf("Input toleransi error\t\t:");
  26.     scanf("%f",&e);
  27. //masukkan e
  28.     printf("Input iterasi maksimum(N)\t:");
  29.     scanf("%d",&n);
  30. //masukkan N
  31.     fa=f(a);
  32.     fb=f(b);
  33.     if(fa*fb>0)     //cek apakah (fa*fb>0)
  34.         printf("tidak ditemukan akar\n");       //jika benar,maka print tdk ditemukan akar
  35.     else{
  36.             i=0;    //cek lagi, apakah I=0
  37.             printf("----------------------------------------------------------------\n");
  38.             printf("|%3s|%11s|%11s|%11s|%11s|%11s|\n","i","a","b","xr","f(a)","f(xr)");
  39.             printf("----------------------------------------------------------------\n")
  40.                     //cetak hasil
  41.     while (i<=n)        //ketika i<n
  42.         {
  43.             xr=(a+b)/2;     //maka hitung nilai xr
  44.             h[i]=f(xr);
  45.             fx=f(xr);
  46. printf("|%3d|%11lf|%11lf|%11lf|%11lf|%11lf|\n",i+1, a, b, xr,fa,f(xr)); //cetak hasil
  47.     if(h[i]*fa<0){      //cek apakah (h[i]*fa<0)
  48.             b=xr;//jika ya maka b=xr dan fb= f(xr)
  49.             fb= f(xr);
  50.           }
  51.             else{ //jika tidak maka a=xr dan fa= f(xr)
  52.                     a=xr;
  53.                     fa= f(xr);
  54.         }
  55.  
  56.         i++;
  57. if (fabs(b-a)<=e || i>(n-1))    //cek apakah (fabs(b-a)<=e|| i>(n-1))&dimutlakkan
  58.             break;              //jika yaa maka berhenti pada looping
  59.     }
  60.     printf("----------------------------------------------------------------\n");
  61.     printf("Akar persamaan adalah %lf\n",xr);       //cetak akar
  62.     if(f(xr)<0){        //cek apakah f(xr)<0
  63.     fx=f(xr)*-1;        //jika yaa,hitung nilai fx
  64.     printf("Nilai error = %lf\n",fx);               //cetak error
  65.         }
  66.     else        //jika tidak
  67.     printf("Nilai error = %lf\n",fx);               //tetap cetak error
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement