Advertisement
pendekar_langit

Untitled

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