Polynomial Operations
Polynomial Operations
for(int i=0;i<=MaxDegree;i++)
Poly->coefArray[i]=0;
Poly->HighPower=0;
}
Display Polynomial
void PrintPolynomial(polynomial *Poly){
cout<<"\n";
for (int i = Poly->HighPower ; i >= 0 ; i--)
if (Poly->coefArray[i]!=0)
if ( i == 0 )
cout<<Poly->coefArray[i];
else
cout<<Poly->coefArray[i]<<"X^"<<i<<" + ";
}
Add Polynomials
polynomial* AddPolynomial(polynomial *Poly1, polynomial *Poly2)
{
polynomial *PolySum=new polynomial;
ZeroPolynomial(PolySum);
PolySum->HighPower=max(Poly1->HighPower,Poly2->HighPower);
return PolySum;
}
Multiply Polynomials
polynomial* MultPolynomial(polynomial *Poly1, polynomial *Poly2)
{
polynomial *PolyProd =new polynomial;
ZeroPolynomial(PolyProd);
PolyProd->HighPower= Poly1->HighPower + Poly2->HighPower;
return PolyProd;
}
Multiply Polynomials
for (int i =0; i <= Poly1->HighPower ; i++)
for (int j = 0; j <= Poly2->HighPower ; j++)
PolyProd->coefArray[ i + j ] = PolyProd->coefArray[ i +j ] +
Poly1->coefArray[ i ] * Poly2-
>coefArray[ j ];
Example:
Polynomial 1: 2X + 3
Polynomial 2: 2X2 + 5X + 7
Product : (2X + 3)(2X2 + 5X + 7)
= (4X3 + 10X2 + 14X + 6X2 + 15X + 21)
= 4X3 + 16X2 + 29X + 21
Multiply Polynomials
for (int i =0; i <= Poly1->HighPower ; i++)
for (int j = 0; j <= Poly2->HighPower ; j++)
PolyProd->coefArray[ i + j ] = PolyProd->coefArray[ i +j ] +
Poly1->coefArray[ i ] * Poly2->coefArray[ j ];
i = 0 , j = 0; Poly1: 2X + 3 Poly2: 2X2 + 5X + 7
PolyProd->coefArray[ 0 ] = PolyProd->coefArray[ 0 ] +
Poly1->coefArray[ 0 ] * Poly2->coefArray[ 0 ];
i = 0 , j = 1; PolyProd->coefArray[ 0 ] = 3* 7 21
PolyProd->coefArray[ 1 ] = PolyProd->coefArray[ 1 ] +
Poly1->coefArray[ 0 ] * Poly2->coefArray[ 1 ];
i = 0 , j = 2; PolyProd->coefArray[ 1 ] = 3* 5 15X
PolyProd->coefArray[ 2 ] = PolyProd->coefArray[ 2 ] +
Poly1->coefArray[ 0 ] * Poly2->coefArray[ 2 ];
PolyProd->coefArray[ 2 ] = 3* 2 6X2
Multiply Polynomials
for (int i =0; i <= Poly1->HighPower ; i++)
for (int j = 0; j <= Poly2->HighPower ; j++)
PolyProd->coefArray[ i + j ] = PolyProd->coefArray[ i +j ] +
Poly1->coefArray[ i ] * Poly2->coefArray[ j ];
i = 1 , j = 0; Poly1: 2X + 3 Poly2: 2X2 + 5X + 7
PolyProd->coefArray[ 1 ] = PolyProd->coefArray[ 1 ] +
Poly1->coefArray[ 1 ] * Poly2->coefArray[ 0 ];
i = 1 , j = 1; PolyProd->coefArray[ 1 ] = 15 +2* 7 29X
PolyProd->coefArray[ 2 ] = PolyProd->coefArray[ 2 ] +
Poly1->coefArray[ 1 ] * Poly2->coefArray[ 1 ];
i = 1 , j = 2; PolyProd->coefArray[ 2 ] = 6 + 2* 5 16X2
PolyProd->coefArray[ 3 ] = PolyProd->coefArray[ 3 ] +
Poly1->coefArray[ 1 ] * Poly2->coefArray[ 2 ];
PolyProd->coefArray[ 3 ] = 2* 2 4X3
Max function
#ifdef __cplusplus
#endif
Main()
void main(){ cout<<"\nPoly1:";
polynomial PrintPolynomial(Poly1);
*Poly1,*Poly2;
cout<<"\nPoly2:";
polynomial PolySum;
PrintPolynomial(Poly2);
polynomial *PolyProd;
Poly1=new polynomial; PolySum=AddPolynomial(Poly1, Poly2);
Poly2=new polynomial; PolyProd=MultPolynomial( Poly1, Poly2);
Poly1->coefArray[0]=1; cout<<"\nSum:";
Poly1->coefArray[1]=0; PrintPolynomial(PolySum);
Poly1->coefArray[2]=2; cout<<"\nProduct:";
Poly1->HighPower=2; PrintPolynomial(PolyProd);
Poly2->coefArray[0]=1; getch();
Poly2->coefArray[1]=1; }
Poly2->coefArray[2]=2;
Poly2->HighPower=2;
Program Output