Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #define maks 25
- #define D 0.00001
- double x[maks], x0[maks], x1, y[maks], xatas, xbawah, h, err, e;
- int N, i, j, n=0;
- FILE *file;
- double fungsix (double x){
- return((x*exp(-x))+cos(2*x));
- }
- double diffungsix (double x){
- return(((1-x)*exp(-x))-2*sin(2*x));
- }
- void input(){
- printf("Masukkan batas atas\t: ");
- scanf("%lf", &xatas);
- printf("Masukkan batas bawah\t: ");
- scanf("%lf", &xbawah);
- printf("Masukkan jumlah pembagi\t: ");
- scanf("%d", &N);
- printf("Masukkan Toleransi Error: ");
- scanf("%lg", &e);
- fprintf(file,"Batas bawah\t: %lf\n",xatas);
- fprintf(file,"Batas atas\t: %lf\n",xbawah);
- fprintf(file,"Jumlah pembagi\t: %d\n",N);
- fprintf(file,"Toleransi Error\t: %lg\n",e);
- h=(xatas-xbawah)/N;
- }
- void tabel(){
- double akar;
- printf("\nHasilnya adalah :\n");
- printf("============================");
- printf("\n| %2s | %-4s | %-8s |\n", "i", "x[i]", "y[i]");
- printf("|====|=======|=============|\n");
- fprintf(file,"\nHasilnya adalah :\n");
- fprintf(file,"============================");
- fprintf(file,"\n| %2s | %-4s | %-8s |\n", "i", "x[i]", "y[i]");
- fprintf(file,"|====|=======|=============|\n");
- for(i=0; i<N; i++){
- x[i]=xbawah+i*h;
- y[i]=fungsix(x[i]);
- printf("| %2d | %-5lg | %-12lg|\n",i+1,x[i],y[i]);
- fprintf(file,"| %2d | %-5lg | %-12lg|\n",i+1,x[i],y[i]);
- }
- printf("============================\n\n");
- fprintf(file,"============================\n\n");
- for(j=0; j<N-1; j++){
- if(y[j]==0){
- printf("Akarnya adalah %lg\n", x[j]);
- fprintf(file,"Akarnya adalah %lg\n", x[j]);
- if(fabs(diffungsix(x0[n]))){
- x0[n]=x0[n]+D;
- }
- }
- else if(y[j]*y[j+1]<0){
- printf("Akar diantara %lg dan %lg\n", x[j],x[j+1]);
- fprintf(file,"Akar diantara %lg dan %lg\n", x[j],x[j+1]);
- if(fabs(y[j])<fabs(y[j+1])){
- printf("Akarnya : %lg\n", x[j]);
- fprintf(file,"Akarnya : %lg\n", x[j]);
- x0[n]=x[j];
- n++;
- }
- else{
- printf("Akarnya : %lg\n", x[j+1]);
- fprintf(file,"Akarnya : %lg\n", x[j+1]);
- x0[n]=x[j+1];
- n++;
- }
- }
- }
- }
- void newtonRaphson(){
- j=0;
- i=0;
- while(i < n){
- printf("=================================================\n");
- printf("%2s| %-8s | %-8s | %-7s|\n","i","x0","fungsi(x0)","diffungsi(x0)");
- printf("=================================================\n");
- fprintf(file,"=================================================\n");
- fprintf(file,"%2s| %-8s | %-8s | %-7s|\n","i","x0","fungsi(x0)","diffungsi(x0)");
- fprintf(file,"=================================================\n");
- do{
- x1 = x0[i] - (fungsix(x0[i])/diffungsix(x0[i]));
- printf("%2d| %-11lg| %-13lg |%-12lg |\n",j+1,x0[i],fungsix(x0[i]),diffungsix(x0[i]));
- fprintf(file,"%2d| %-11lg| %-13lg |%-12lg |\n",j+1,x0[i],fungsix(x0[i]),diffungsix(x0[i]));
- err = fabs(fungsix(x0[i]));
- x0[i]=x1;
- j++;
- }while( j < N && err >= e);
- printf("=================================================\n");
- printf("akar terletak di %lg dengan nilai %lg\n", x1, fungsix(x1));
- fprintf(file,"=================================================\n");
- fprintf(file,"akar terletak di %lg dengan nilai %lg\n", x1, fungsix(x1));
- i++;
- }
- }
- void title(){
- printf("===========================================================\n");
- printf("METODE NEWTON RAPHSON MODIFIKASI TABEL By Mirra Ariesta A.A");
- printf("\n===========================================================\n");
- fprintf(file,"===========================================================\n");
- fprintf(file,"METODE NEWTON RAPHSON MODIFIKASI TABEL By Mirra Ariesta A.A");
- fprintf(file,"\n===========================================================\n");
- }
- main(){
- file = fopen("reportNewtonRaphsonTabel.txt","w");
- char pilih;
- title();
- do{
- input();
- tabel();
- newtonRaphson();
- printf("\n============================\n\n");
- fprintf(file,"\n============================\n\n");
- fflush(stdin);
- printf("Ulangi [y/t] ? :");
- scanf("%c", &pilih);
- }
- while(pilih=='y'||pilih=='Y');
- }
Advertisement
Add Comment
Please, Sign In to add comment