ariestamirra

new Metode Newton Raphson - Tabel

Apr 1st, 2014
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.56 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define maks 25
  4. #define D 0.00001
  5.  
  6. double x[maks], x0[maks], x1, y[maks], xatas, xbawah, h, err, e;
  7. int N, i, j, n=0;
  8. FILE *file;
  9.  
  10. double fungsix (double x){
  11.     return((x*exp(-x))+cos(2*x));
  12. }
  13.  
  14. double diffungsix (double x){
  15.     return(((1-x)*exp(-x))-2*sin(2*x));
  16. }
  17.  
  18. void input(){
  19.     printf("Masukkan batas atas\t: ");
  20.     scanf("%lf", &xatas);
  21.     printf("Masukkan batas bawah\t: ");
  22.     scanf("%lf", &xbawah);
  23.     printf("Masukkan jumlah pembagi\t: ");
  24.     scanf("%d", &N);
  25.     printf("Masukkan Toleransi Error: ");
  26.     scanf("%lg", &e);
  27.             fprintf(file,"Batas bawah\t: %lf\n",xatas);
  28.             fprintf(file,"Batas atas\t: %lf\n",xbawah);
  29.             fprintf(file,"Jumlah pembagi\t: %d\n",N);
  30.             fprintf(file,"Toleransi Error\t: %lg\n",e);
  31.     h=(xatas-xbawah)/N;
  32. }
  33.  
  34. void tabel(){
  35.     double akar;
  36.     printf("\nHasilnya adalah :\n");
  37.     printf("============================");
  38.     printf("\n| %2s |  %-4s |    %-8s |\n", "i", "x[i]", "y[i]");
  39.     printf("|====|=======|=============|\n");
  40.         fprintf(file,"\nHasilnya adalah :\n");
  41.         fprintf(file,"============================");
  42.         fprintf(file,"\n| %2s |  %-4s |    %-8s |\n", "i", "x[i]", "y[i]");
  43.         fprintf(file,"|====|=======|=============|\n");
  44.     for(i=0; i<N; i++){
  45.         x[i]=xbawah+i*h;
  46.         y[i]=fungsix(x[i]);
  47.         printf("| %2d | %-5lg | %-12lg|\n",i+1,x[i],y[i]);
  48.             fprintf(file,"| %2d | %-5lg | %-12lg|\n",i+1,x[i],y[i]);
  49.     }
  50.     printf("============================\n\n");
  51.         fprintf(file,"============================\n\n");
  52.     for(j=0; j<N-1; j++){
  53.         if(y[j]==0){
  54.             printf("Akarnya adalah %lg\n", x[j]);
  55.                 fprintf(file,"Akarnya adalah %lg\n", x[j]);
  56.             if(fabs(diffungsix(x0[n]))){
  57.                 x0[n]=x0[n]+D;
  58.             }
  59.         }
  60.         else if(y[j]*y[j+1]<0){
  61.             printf("Akar diantara %lg dan %lg\n", x[j],x[j+1]);
  62.                 fprintf(file,"Akar diantara %lg dan %lg\n", x[j],x[j+1]);
  63.             if(fabs(y[j])<fabs(y[j+1])){
  64.                 printf("Akarnya : %lg\n", x[j]);
  65.                     fprintf(file,"Akarnya : %lg\n", x[j]);
  66.                 x0[n]=x[j];
  67.                 n++;
  68.             }
  69.             else{
  70.                 printf("Akarnya : %lg\n", x[j+1]);
  71.                     fprintf(file,"Akarnya : %lg\n", x[j+1]);
  72.                 x0[n]=x[j+1];
  73.                 n++;
  74.             }
  75.         }
  76.     }
  77. }
  78.  
  79. void newtonRaphson(){
  80.     j=0;
  81.     i=0;
  82.     while(i < n){
  83.         printf("=================================================\n");
  84.         printf("%2s|   %-8s |  %-8s     | %-7s|\n","i","x0","fungsi(x0)","diffungsi(x0)");
  85.         printf("=================================================\n");
  86.             fprintf(file,"=================================================\n");
  87.             fprintf(file,"%2s|   %-8s |  %-8s     | %-7s|\n","i","x0","fungsi(x0)","diffungsi(x0)");
  88.             fprintf(file,"=================================================\n");
  89.         do{
  90.             x1 = x0[i] - (fungsix(x0[i])/diffungsix(x0[i]));
  91.             printf("%2d| %-11lg| %-13lg   |%-12lg  |\n",j+1,x0[i],fungsix(x0[i]),diffungsix(x0[i]));
  92.                 fprintf(file,"%2d| %-11lg| %-13lg   |%-12lg  |\n",j+1,x0[i],fungsix(x0[i]),diffungsix(x0[i]));
  93.             err = fabs(fungsix(x0[i]));
  94.             x0[i]=x1;
  95.             j++;
  96.         }while( j < N && err >= e);
  97.         printf("=================================================\n");
  98.         printf("akar terletak di %lg dengan nilai %lg\n", x1, fungsix(x1));
  99.             fprintf(file,"=================================================\n");
  100.             fprintf(file,"akar terletak di %lg dengan nilai %lg\n", x1, fungsix(x1));
  101.         i++;
  102.     }
  103. }
  104.  
  105. void title(){
  106.     printf("===========================================================\n");
  107.     printf("METODE NEWTON RAPHSON MODIFIKASI TABEL By Mirra Ariesta A.A");
  108.     printf("\n===========================================================\n");
  109.         fprintf(file,"===========================================================\n");
  110.         fprintf(file,"METODE NEWTON RAPHSON MODIFIKASI TABEL By Mirra Ariesta A.A");
  111.         fprintf(file,"\n===========================================================\n");
  112. }
  113.  
  114.  
  115. main(){
  116.     file = fopen("reportNewtonRaphsonTabel.txt","w");
  117.     char pilih;
  118.     title();
  119.     do{
  120.         input();
  121.         tabel();
  122.         newtonRaphson();
  123.         printf("\n============================\n\n");
  124.             fprintf(file,"\n============================\n\n");
  125.         fflush(stdin);
  126.         printf("Ulangi [y/t] ? :");
  127.         scanf("%c", &pilih);
  128.     }
  129.     while(pilih=='y'||pilih=='Y');
  130. }
Advertisement
Add Comment
Please, Sign In to add comment