Bisection Method

/*....................... Bisection Method.........................

.......................Author:-SUDIPTA KUMAR PAIK......................

.......................NUMERICAL METHOD.................*/



#include < iostream.h >

#include < math.h >

#include < stdio.h >

#include < conio.h >

main()

{ int i,N;

float fxlr,xu,xl,xr,fxl,fxr,fxu,eq[21][2];

clrscr();



fxl=0.0;

fxu=0.0;

fxr=0.0;



printf("\n Enter [0] to terminate input\n\n");



for(i=0; i<21; i++)

{

printf("\n Enter Co-efficient=");

scanf("%f",&eq[i][0]);

if(eq[i][0]==0)

break;

printf("\n Enter Power=");

scanf("%f",&eq[i][1]);

}





N=i;

printf("\n\n\nf(X)=");

for(i=0; i
printf("+%.2fX%.0f",eq[i][0],eq[i][1]);



ss:

printf("\n\n\n Enter Lower value xl=");

scanf("%f",&xl);

printf("\n Enter Upper value xu=");

scanf("%f",&xu);





for(i=0; i
{ fxl=fxl+eq[i][0]*pow(xl,eq[i][1]);

fxu=fxu+eq[i][0]*pow(xu,eq[i][1]);

}



// fxlr=fxl*fxu;



/*if(fxlr>0)

{ printf("\n Upper Limit & Lower Limit is Not Correct");

goto ss;

} */

if(fxl==0)

goto endxl;

else if(fxu==0)

goto endxu;



xrl:

xr=(xl+xu)/2;



for(i=0; i
{ fxl=fxl+eq[i][0]*pow(xl,eq[i][1]);

fxr=fxr+eq[i][0]*pow(xr,eq[i][1]);

}



fxlr=fxl*fxr;



if(fxlr<0)

{ xu=xr;

fxl=0.0;

fxu=0.0;

fxr=0.0;



goto xrl;

}

else if(fxlr>0)

{ xl=xr;

fxl=0.0;

fxu=0.0;

fxr=0.0;



goto xrl;

}

else if (fxlr<0.0005 && fxlr>-0.0005 )

printf("\n\n\n ROOT=%.2f",xr);

goto end;





endxl:

xr=xl;

printf("\n\n\n ROOT=%.2f",xl);

goto end;

endxu:

xr=xu;

printf("\n\n\n ROOT=%.2f",xu);



/* printf("\n\n\nf(%.2f)=%.2f",xl,fxl);

printf("\n\n\nf(%.2f)=%.2f",xr,fxr); */



end:

for(i=0; i
fxr=fxr+eq[i][0]*pow(xr,eq[i][1]);

printf("\n\nf(%.2f)=%.2f",xr,fxr);



getch();

}

No comments:

Post a Comment