Professional Documents
Culture Documents
LIM
NUMERICAL METHODS
BAIRSTOWS METHOD
DEV C++ CODE
#include<stdio.h>
#include<math.h>
#define max 10
#define min 0.0005
int main()
{
float a[max], b[max], bc[max], bd[max], p, q, r, s, error, errorp, errorq, rq, sq, rp, sp;
int i, degree, j=0;
error=1;
while(error>=min)
{
for(i=0;i<=degree-3;i++)
if(i==0)
b[i]=a[i]-p;
else if(i==1)
b[i]=a[i]-p*b[i-1]-q;
else
b[i]=a[i]-p*b[i-1]-q*b[i-2];
r = a[degree-2] - p*b[degree-3] - q*b[degree-4];
s = a[degree-1] - q*b[degree-3];
rp=-b[degree-3]-p*bc[degree-3]-q*bc[degree-4];
sp=-q*bc[degree-3];
for(i=0;i<=degree-3;i++)
if(i==0)
bd[i]=0;
else if(i==1)
bd[i]=-1;
else
bd[i]=-b[i-2]-p*bd[i-1]-q*bd[i-2];
rq=-b[degree-4]-p*bd[degree-3]-q*bd[degree-4];
sq=-b[degree-3]-q*bd[degree-3];
errorp = fabs(errorp);
errorq = fabs(errorq);
if(errorp>errorq)
error=errorp;
else
error=errorq;
}
OUTPU