0% found this document useful (0 votes)
36 views4 pages

Bstow

The document describes two numerical analysis methods: 1) The Bairstow method, which uses successive approximations to find the complex roots of a polynomial equation by estimating the coefficients p and q of its quadratic factor. 2) Curve fitting, which uses the method of least squares to determine the coefficients a and b in an exponential curve fitting equation of the form y = ae^bx by minimizing the sum of squared residuals from the observed data points.

Uploaded by

Eunielyn Secreto
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views4 pages

Bstow

The document describes two numerical analysis methods: 1) The Bairstow method, which uses successive approximations to find the complex roots of a polynomial equation by estimating the coefficients p and q of its quadratic factor. 2) Curve fitting, which uses the method of least squares to determine the coefficients a and b in an exponential curve fitting equation of the form y = ae^bx by minimizing the sum of squared residuals from the observed data points.

Uploaded by

Eunielyn Secreto
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 4

Bairstow Method:

#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int i, n;
float p, q, delta_p = 0, delta_q = 0, deno, a[10], b[10], c[10];
flushall();
clrscr();
printf("Enter degree of polynomial: ");
scanf ("%d", &n);
printf("\nEnter coefficients of polynomial:\n");
for (i=0; i<=n; i++)
{
printf("a(%d)= ",i);
scanf ("%f", &a[i]);
}
printf("\nEnter initial guess for coefficient p: ");
scanf ("%f", &p);
printf("\nEnter initial guess for coefficient q: ");
scanf ("%f", &q);
do
{
b[0] = a[0]; c[0] = a[0];
b[1] = a[1] - p*b[0];
c[1] = b[1] - p*c[0];
for (i=2; i<=n; i++)
{
b[i] = a[i] - p*b[i-1] - q*b[i-2];
c[i] = b[i] - p*c[i-1] - q*c[i-2];
}
deno = c[n-2]*c[n-2] - c[n-3]*(c[n-1] - b[n-1]);
delta_p = (b[n-1]*c[n-2] - b[n]*c[n-3])/deno;
delta_q = (b[n]*c[n-2] - b[n-1]*(c[n-1] - b[n-1]))/deno;
p += delta_p; q += delta_q;
} while (delta_p > 0.01 || delta_q > 0.01);
printf("\n\nThe complex factor of the given polynomial is \n\n\n\t\tx^2 + (%f)x + (%f)",
p, q);
getch();
}
Output of program (Bairstow Method):
Enter degree of polynomial: 5

Enter coefficients of polynomial:


a(0)= 1
a(1)= -3
a(2)= -10
a(3)= 10
a(4)= 35
a(5)= 55

Enter initial guess for coefficient p: 1.5

Enter initial guess for coefficient q: 2

The complex factor of the given polynomial is

x^2 + (1.644495)x + (2.052706)


Curve Fitting:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int i, n;
float x[10], y[10], s_x=0, s_y=0, s_xy=0,s_x2=0, a, b;
flushall();
clrscr();
printf("Enter number of data points available for curve fitting: ");
scanf ("%d", &n);
printf("\nThe curve will have equation as \n\t\ty = a*e^(bx)");
printf("\n\nEnter all the data points:\n");
for (i=0; i<n; i++)
{
printf("x(%d)= ",i);
scanf ("%f", &x[i]);
printf("y(%d)= ",i);
scanf ("%f", &y[i]);
}
for (i=0; i<n; i++)
{
s_x += x[i];
s_y += log(y[i]);
s_xy += x[i]*log(y[i]);
s_x2 += pow(x[i],2);
}
b = (s_y/n - s_xy/s_x) / (s_x/n - s_x2/s_x);
a = exp ((s_y - b*s_x)/n);
printf("\n\nThe equation of fitting curve is\n\n\t\ty = %fe^(%fx)", a ,b);
getch();
}
Output of program (Curve Fitting):
Enter number of data points available for curve fitting: 5

The curve will have equation as


y = a*e^(bx)

Enter all the data points:


x(0)= 1
y(0)= 71
x(1)= 2
y(1)= 87
x(2)= 3
y(2)= 106
x(3)= 4
y(3)= 129
x(4)= 5
y(4)= 158

The equation of fitting curve is

y = 58.251339e^(0.199373x)

You might also like