False Position Method

/*....................... False Position Method.........................

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

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



#include

#include

#include

main()

{ int i,N,x;

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

clrscr();



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<0)

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

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

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);



fxl=fxu=fxr=xr=0.0;



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>-1)

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

goto ss;

}

else if(fxl==0)

goto end;

else if(fxu==0)

goto end;





xrl:

xr_old=xr;

xr=xu-((fxu*(xl-xu))/(fxl-fxu));

fxl=fxu=fxr=0.0;



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

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

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

}



fxlr=fxl*fxr;



if((sqrt(pow(xr_old-xr,2)))<0.00005)

goto end;



else if(fxlr<0)

{ xu=xr;

goto xrl;

}

else if(fxlr>0)

{ xl=xr;

goto xrl;

}





end:

xr=xl;

xr=xu;

fxr=0;

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

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

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



getch();

}

No comments:

Post a Comment