Program to Calculate roots of
4th order algebraic equation of the form ax^4 + bx^3 + cx^2 + dx
+ e =
--------------------------------------------------------------------------------
Description : Calculates all roots( both complex and real ) of a
fourth order algebraic equation of the form ax^4 + bx^3 + cx^2 +
dx + e = 0 and
displays them. Employs OOPS.
#include<iostream.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<graphics.h>
const int IMAX = 800;
class coeffs
{
public :
float a, b, c, d, e, x, y, p, q, r, z;
void getdata(void);
void divide(void);
void chkrealcmplx(void);
void dispreal(float, float, float);
void dispcomplx(float, float, float);
};
void coeffs :: getdata()
{
cout<<"Enter coefficients 'a' through 'e' :
<BR>;
cin>>a>>b>>c>>d>>e;
}
void coeffs :: divide(void)
{
int i;
float y1,z1;
b = b/a; c = c/a; d = d/a; e = e/a;
a = 1;
y = d/c; z = e/c;
x = 1;
for(i=1;i<=IMAX;i++)
{
y1 = (d-z*(b-y))/((c-z)-y*(b-y));
z1 = e/((c-z)-y*(b-y));
y = y1;
z = z1;
p = 1;
q = b-y;
r = (c-z)-y*(b-y);
}
}
void coeffs :: chkrealcmplx(void)
{
float delta1,delta2;
delta1 = q*q - 4*p*r;
delta2 = y*y - 4*x*z;
if(delta1<0)
{
cout<<"
Roots R1 and R2 are complex<BR>;
cout<<"Roots are :
<BR>;
dispcomplx(delta1,p,q);
}
if(delta2<0)
{
cout<<"
Roots R3 and R4 are complex<BR>;
cout<<"Roots are :
<BR>;
dispcomplx(delta2,x,y);
}
if(delta1>=0)
{
cout<<"
Roots R1 and R2 are real<BR>;
cout<<"Roots are :
<BR>;
dispreal(delta1,p,q);
}
if(delta2>=0)
{
cout<<"
Roots R3 and R4 are real<BR>;
cout<<"Roots are :
<BR>;
dispreal(delta2,x,y);
}
}
void coeffs :: dispreal(float delta,float A,float B)
{
float r1,r2;
r1 = (-B+sqrt(delta))/(2*A);
r2 = (-B-sqrt(delta))/(2*A);
cout<<r1<<endl;
cout<<r2<<endl;
}
void coeffs :: dispcomplx(float delta,float A,float B)
{
float rp,ip;
delta = -delta;
rp = -B/(2*A);
ip = (sqrt(delta))/(2*A);
cout<<rp<<" +j "<<ip<<endl;
cout<<rp<<" -j "<<ip<<endl;
}
void line()
{
char t = 0XC4;
for(int i = 1;i<=80;i++)
cout<<t;
}
void main()
{
clrscr();
int gdriver = EGA, gmode = VGAHI, errorcode;
initgraph(&gdriver, &gmode, "c:\tc\bgi");
setbkcolor(BLUE);
coeffs coefficients;
line();
cout<<" PROGRAM TO SOLVE A FOURTH ORDER ALGEBRAIC EQUATION ";
line();
coefficients.getdata();
line();
line();
coefficients.divide();
coefficients.chkrealcmplx();
line();
line();
getch();
closegraph();
}
|