Sample equation for Secant Method
where X-1=3
and x0=4 ;
F(x)=2x3-11.7x2+17.7x1-5
//scant method
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
int main()
{
float xi,Xii,newxi,Es,a[40],old=0,Ea;
int n,K;
cout<< "HIghest power in the equation : " ;
cin>>n;
//.........................................
printf("Enter Xi =");
scanf("%f",&xi);
printf("Enter Xii =");
scanf("%f",&Xii);
printf("Enter Es =");
scanf("%f",&Es);
//..........................................
printf("\n");
printf("enter coefficient :\n");
for (int i=n; i>=0; i--)
{
printf("X^%d =",i);
scanf("%f",&a[i]);
}
//...........................................
while(1)
{
float fxi=0,fXii=0;
//
for (int i=n; i>=0; i--)
{
fxi=fxi+a[i]*pow(xi,i);
fXii=fXii+a[i]*pow(Xii,i);
}
newxi=xi-((fxi*(Xii-xi))/(fXii-fxi));
// printf("\n\n\nSTEP no: %d\n",K+1);
printf("\nXi = %.2f",xi);
printf("\nfxi = %.2f",fxi);
//
printf("\nXii = %.2f",Xii);
printf("\nfXii = %.2f",fXii);
//
printf("\nnew Xi = %.2f",newxi);
//
Ea=((newxi-old)/newxi)*100;
old =newxi;
//cout <<" now =" <<old;
if(Ea<0)
{
Ea=Ea*(-1);
}
printf("\nEa= %f\n",Ea);
if(Ea<Es)
{
break;
}
Xii=xi;
xi=newxi;
K++;
}
return 0;
}
No comments:
Post a Comment