.......................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