public bool IsNotEquals_Two_Polynomials()
        {
            Polynomial.Polynomial first  = new Polynomial.Polynomial(2, 1, 2, 5);
            Polynomial.Polynomial second = new Polynomial.Polynomial(2, 1, 2);

            return(first != second);
        }
        public void PolynomialAddingTest()
        {
            List <double> list = new List <double> {
                1, 2, 3
            };                                                //3*x^2+2*x+1
            List <double> list1 = new List <double> {
                0, 2, 4
            };                                                 //4*x^2+2*x
            List <double> list2 = new List <double> {
                6, 11
            };
            List <double> expectedResult = new List <double> {
                1, 4, 7
            };                                                       //7*x^2 + 4*x + 1
            var pol      = new Polynomial.Polynomial(list);
            var pol1     = new Polynomial.Polynomial(list1);
            var result   = pol + pol1;
            var result1  = pol1 + pol;
            var expected = new Polynomial.Polynomial(expectedResult);

            Assert.IsTrue(result.Equals(expected));
            Assert.IsTrue(result.Equals(result1));
            pol1   = new Polynomial.Polynomial(list2);
            result = pol + pol1;
            //3*x^2+13*x + 7
            expected[0] = 7; expected[1] = 13; expected[2] = 3;
            Assert.IsTrue(result.Equals(expected));
        }
 public string Substract_Two_Polynomials()
 {
     Polynomial.Polynomial first  = new Polynomial.Polynomial(2, 0, 2);
     Polynomial.Polynomial second = new Polynomial.Polynomial(1, 2, 1, 1);
     Polynomial.Polynomial result = first - second;
     return(result.ToString());
 }
 public bool AddTest(int[] a, int[] b, int[] c)
 {
     Polynomial p1 = new Polynomial(a);
     Polynomial p2 = new Polynomial(b);
     Polynomial p = new Polynomial(c);
     return ((p1 + p2) == p);
 }
 public string Multiply_Two_Polynomials()
 {
     Polynomial.Polynomial first  = new Polynomial.Polynomial(2, 2);
     Polynomial.Polynomial second = new Polynomial.Polynomial(-2, 2);
     Polynomial.Polynomial result = first * second;
     return(result.ToString());
 }
 public string Add_Two_Polynomials()
 {
     Polynomial.Polynomial first  = new Polynomial.Polynomial(2, 0, 2);
     Polynomial.Polynomial second = new Polynomial.Polynomial(1, 2, 1, 1);
     Polynomial.Polynomial result = Polynomial.Polynomial.Add(first, second);
     return(result.ToString());
 }
        public void PolynomialSubtractionTest()
        {
            List <double> list = new List <double> {
                1, 2, 3
            };                                                //3*x^2+2*x+1
            List <double> list1 = new List <double> {
                0, 2, 4
            };                                                 //4*x^2+2*x
            List <double> list2 = new List <double> {
                6, 11
            };
            List <double> expectedResult = new List <double> {
                1, 0, -1
            };
            var pol      = new Polynomial.Polynomial(list);
            var pol1     = new Polynomial.Polynomial(list1);
            var result   = pol - pol1;
            var expected = new Polynomial.Polynomial(expectedResult);

            Assert.IsTrue(result.Equals(expected));
            pol1   = new Polynomial.Polynomial(list2);
            result = pol - pol1;
            //3*x^2 - 9*x - 5
            expected[0] = -5; expected[1] = -9; expected[2] = 3;
            Assert.IsTrue(result.Equals(expected));
        }
        public void PolynomialDegreeTest()
        {
            List <double> list = new List <double> {
                1, 2, 3, 4, 5
            };
            var pol = new Polynomial.Polynomial(list);

            Assert.IsTrue(pol.Degree == 4);
        }
 public static Polynomial Substract(Polynomial a, Polynomial b)
 {
     if ((a == null) || (b == null))
         throw new ArgumentNullException();
     Polynomial c=new Polynomial(b.ToArray());
     for (int i = 0; i < c.Length; i++)
         c[i] = -c[i];
     return Add(a,c);
 }
        public void PolynomialEqualsTest()
        {
            List <double> list = new List <double> {
                1, 2, 3, 4, 5
            };
            var pol  = new Polynomial.Polynomial(list);
            var pol1 = new Polynomial.Polynomial(list);

            Assert.IsTrue(pol.Equals(pol1));
        }
        public void PolynomialToStringTest()
        {
            List <double> list = new List <double> {
                1, 2, 3
            };                                                //3*x^2+2*x+1
            var pol      = new Polynomial.Polynomial(list);
            var expected = "3 * (x^2) + 2 * x + 1";

            Assert.IsTrue(pol.ToString().Equals(expected));
        }
 public bool MultiplyTest(int[] a, int[] b, int[] c)
 {
     Polynomial p1 = new Polynomial(a);
     Debug.WriteLine(p1); 
     Polynomial p2 = new Polynomial(b);
     Debug.WriteLine(p2);
     Debug.WriteLine(p1*p2);
     Polynomial p = new Polynomial(c);
     return ((p1 * p2) == p);
 }
        public void PolynomialCloneTest()
        {
            List <double> list = new List <double> {
                1, 2, 3, 4, 5
            };                                                      //5*x^4+4*x^3+3*x^2+2*x+1
            var pol   = new Polynomial.Polynomial(list);
            var clone = (Polynomial.Polynomial)pol.Clone();

            Assert.AreNotSame(pol, clone);
            Assert.IsTrue(pol.Equals(clone));
        }
 public static Polynomial Multiply(Polynomial polynomial, double value)
 {
     if (polynomial==null)
         throw new ArgumentNullException();
     Polynomial result=new Polynomial(polynomial.Length);
     for (int i = 0; i < polynomial.Length; i++)
     {
         result[i] = polynomial[i]*value;
     }
     return result;
 }
        public void PolynomialCreation()
        {
            List <double> list = new List <double> {
                1, 2, 3, 4, 5
            };                                                      //5*x^4+4*x^3+3*x^2+2*x+1
            var pol = new Polynomial.Polynomial(list);

            Assert.IsNotNull(pol);
            Assert.IsTrue(pol.Function(1) == 15);
            Assert.IsTrue(pol.Function(0) == 1);
            Assert.IsTrue(pol.Function(-1) == 3);
        }
 public static Polynomial Multiply(Polynomial a, Polynomial b)
 {
     if ((a == null) || (b == null))
         throw new ArgumentNullException();
     var result=new Polynomial(a.Length+b.Length-1);
     for (int i=0;i<a.Length;i++)
         for (int j = 0; j < b.Length; j++)
         {
             result[i + j] = result[i+j]+a[i]*b[j];
         }
     return result;
 }
Example #17
0
            //주어진 Polynomial 의 출력을 제어하는 알고리즘을 작성하시오
            public Polynomial Reverse()
            {
                Polynomial s = new Polynomial();

                for (Term t = first; t != null; t = t.next)
                {
                    double coef = t.coef;
                    int exp = t.exp;
                    s.AddTerm(coef, exp);
                }
                return s;
            }
 public static Polynomial Add(Polynomial a, Polynomial b)
 {
     if ((a==null)||(b==null))
         throw new ArgumentNullException();
     double[] firstArray = a.ToArray();
     Array.Reverse(firstArray);
     double[] secondArray = b.ToArray();
     Array.Reverse(secondArray);
     double[] resultArray=new double[Math.Max(a.Length,b.Length)];
     for (int i = 0; i < firstArray.Length; i++)
         resultArray[i] = firstArray[i];
     for (int i = 0; i < secondArray.Length; i++)
         resultArray[i] += secondArray[i];
     Array.Reverse(resultArray);
     return new Polynomial(resultArray);
 }
        public void PolynomialMultiplicationByNumberTest()
        {
            List <double> list = new List <double> {
                1, 2
            };                                             //2*x+1
            List <double> expectedResult = new List <double> {
                2, 4
            };                                                       //4*x+2
            int number   = 2;
            var pol      = new Polynomial.Polynomial(list);
            var result   = pol * number;
            var result1  = number * pol;
            var expected = new Polynomial.Polynomial(expectedResult);

            Assert.IsTrue(result.Equals(expected));
            Assert.IsTrue(result.Equals(result1));
        }
Example #20
0
        public LagrangePolynomial(Tuple<double, double>[] nodes, int n)
        {
            Polynomial L = new Polynomial();
            for (int i = 0; i < n; i++)
            {
                Polynomial li = new Polynomial(new double[] { 1 });
                for (int j = 0; j < n; j++)
                {
                    if (i == j)
                        continue;

                    li *= (new Polynomial(new double[] { 0, 1 }) - nodes[j].Item1) / (nodes[i].Item1 - nodes[j].Item1);
                }
                L += li * nodes[i].Item2;

            }
            this._coefficients = L.coefficients;
            this._n = this._coefficients.Length;
        }
        public void OverloadedMinusOperatorTest(double[] array1, double[] array2)
        {
            Polynomial.Polynomial p1 = new Polynomial.Polynomial(array1);
            Polynomial.Polynomial p2 = new Polynomial.Polynomial(array2);
            Polynomial.Polynomial p  = p1 - p2;

            Polynomial.Polynomial expectedResult = new Polynomial.Polynomial(new double[] { 1, 3.3, 7, -6.9, -10.3, -3.7 });
            bool expected = true;

            for (int i = 0; i < expectedResult.Length; i++)
            {
                if (Math.Abs(expectedResult[i] - p[i]) > 0.001)
                {
                    expected = false;
                }
            }

            Assert.IsTrue(expected);
        }
        public void PolynomialMultiplicationTest()
        {
            List <double> list = new List <double> {
                1, 2
            };                                             //2*x+1
            List <double> list1 = new List <double> {
                2, 4
            };                                              //4*x+2
            List <double> expectedResult = new List <double> {
                2, 8, 8
            };                                                       //8*x^2+8*x+2
            var pol      = new Polynomial.Polynomial(list);
            var pol1     = new Polynomial.Polynomial(list1);
            var result   = pol * pol1;
            var result1  = pol1 * pol;
            var expected = new Polynomial.Polynomial(expectedResult);

            Assert.IsTrue(result.Equals(expected));
            Assert.IsTrue(result.Equals(result1));
        }
Example #23
0
            public Polynomial Simplify()
            {
                Polynomial resPoly = new Polynomial();

                for (Term t = first; t != null; t = t.next)
                {
                    double coef = t.coef;
                    int exp = t.exp;
                    for (Term s = t.next; s != null; s = s.next)
                    {
                        if (exp == s.exp)
                        {
                            coef += s.coef;
                            s.coef = 0;
                        }
                    }
                    if (coef != 0)  // Term 을 삭제할 필요가 있을 때 coefficient 를 0 으로 지정한 후에 일괄삭제하는 방식으로 작성하시오
                    {
                        resPoly.AddTerm(coef, exp);
                    }
                }
                return resPoly;
            }
Example #24
0
            public Polynomial Simplify()
            {
                Polynomial resPoly = new Polynomial();

                for (Term t = first; t != null; t = t.next)
                {
                    double coef = t.coef;
                    int exp = t.exp;
                    for (Term s = t.next; s != null; s = s.next)
                    {
                        if (exp == s.exp)
                        {
                            coef += s.coef;
                            s.coef = 0;
                        }
                    }
                    if (coef != 0)
                    {
                        resPoly.AddTerm(coef, exp);
                    }
                }
                return resPoly;
            }
 public bool GetHashCodeTest(int[] a, int[] b)
 {
     Polynomial p1 = new Polynomial(a);
     Polynomial p2 = new Polynomial(b);
     return (p1.GetHashCode() == p2.GetHashCode());
 }
 public string Multiply_Polynomial_With_Number(double number)
 {
     Polynomial.Polynomial first  = new Polynomial.Polynomial(2, 0, 2);
     Polynomial.Polynomial result = Polynomial.Polynomial.Multiply(first, number);
     return(result.ToString());
 }
 public string ToStringTest(int[] a)
 {
     Polynomial p = new Polynomial(a);
     return (p.ToString());
 }
 public Polynomial Multiply(Polynomial value) => Polynomial.Multiply(this, value);
        public void PolynomialCompareTest(double[] array)
        {
            Polynomial.Polynomial p = new Polynomial.Polynomial(new double[] { 1, 4, 7, 1.1 });

            Assert.IsTrue(new Polynomial.Polynomial(array) == p);
        }
 public Polynomial PlusOperator_AddTwoPolynomialsWithYield(Polynomial pol1, Polynomial pol2)
 {
     return pol1 + pol2;
 }
 public Polynomial MultiplyOperator_MultiplyPolynomailOnDoubleWithYield(Polynomial pol, double x)
 {
     return pol*x;
 }
Example #32
0
        public static Polynomial MultiplyRemoveZeroCoefficient(Polynomial a, Polynomial b)
        {
            // DO_NOT_EDIT_ANYTHING_ABOVE_THIS_LINE V

            var termA = a.Head; // 2x⁰

            // Find powers to exist in the result polynomial.
            var availablePowersString = "";

            while (termA != null)
            {
                var termB = b.Head; // 1x²

                while (termB != null)
                {
                    var power = termA.Power + termB.Power;
                    if (!availablePowersString.Contains(power + ","))
                    {
                        availablePowersString += termA.Power + termB.Power + ",";
                    }

                    termB = termB.Next;
                }

                termA = termA.Next;
            }

            // Put powers to exist in the result polynomial in an array.
            var availablePowers      = availablePowersString.Split(",", StringSplitOptions.RemoveEmptyEntries);
            var availablePowersArray = new int[availablePowers.Length];

            for (var i = 0; i < availablePowers.Length; i++)
            {
                availablePowersArray[i] = Convert.ToInt32(availablePowers[i]);
            }

            // Create and initialize arrays to store coefficients and powers.
            var coefficients = new int[availablePowersArray.Length];
            var powers       = new int[availablePowersArray.Length];

            termA = a.Head;

            while (termA != null)
            {
                var termB = b.Head; // 1x²

                while (termB != null)
                {
                    // termA * termB => 2x⁰ * 1x²
                    var coefficientA     = termA.Coefficient;
                    var coefficientB     = termB.Coefficient;
                    var coefficientTotal = coefficientA * coefficientB;

                    var index = 0;
                    for (var i = 0; i < availablePowers.Length; i++)
                    {
                        if (termA.Power + termB.Power == availablePowersArray[i])
                        {
                            index = i;
                            break;
                        }
                    }

                    coefficients[index] += coefficientTotal;
                    powers[index]        = termA.Power + termB.Power;

                    termB = termB.Next;
                }

                termA = termA.Next;
            }

            return(new Polynomial(coefficients, powers));

            // DO_NOT_EDIT_ANYTHING_BELOW_THIS_LINE A
        }
 public string PolynomialToStringTest(double[] array)
 {
     Polynomial.Polynomial p = new Polynomial.Polynomial(array);
     return(p.ToString());
 }
Example #34
0
 static void Main(string[] args)
 {
     Polynomial polA = new Polynomial(new double[] { 7, 2, 8, -7 });
     Polynomial polB = new Polynomial(new double[] { 4, 0, 17 });
     Console.WriteLine("Полиномы:");
     Console.Write("polA = ");
     polA.Print();
     Console.Write("polB = ");
     polB.Print();
     Console.WriteLine("\nОперации над двумя полиномами:");
     Console.Write("polA + polB = ");
     (polA + polB).Print();
     Console.Write("polA - polB = ");
     (polA - polB).Print();
     Console.Write("polA * polB = ");
     (polA * polB).Print();
     Console.WriteLine("\nОперации над полиномом и числом:");
     Console.Write("polA + 10 = ");
     (polA + 10).Print();
     Console.Write("polA - 10 = ");
     (polA - 10).Print();
     Console.Write("polA * 10 = ");
     (polA * 10).Print();
     Console.Write("polA / 10 = ");
     (polA / 10).Print();
     Console.WriteLine("\nLagrange Polynomial:");
     LagrangePolynomial lpol = new LagrangePolynomial(new Tuple<double, double>[] { new Tuple<double, double>(-1.5, -14.1014), new Tuple<double, double>(-0.75, -0.931596), new Tuple<double, double>(0, 0), new Tuple<double, double>(0.75, 0.931596), new Tuple<double, double>(1.5, 14.1014) });
     lpol.PrintLP();
     Console.WriteLine("\nCalculate:");
     Console.WriteLine(lpol.Calc(2));
     Console.ReadLine();
 }
 /// <summary>
 /// Difference of two polynomials.
 /// </summary>
 /// <param name="lhs">First polynomial.</param>
 /// <param name="rhs">Second polynomial.</param>
 /// <returns> Difference of two polynomial in new polinomial.</returns>
 public static Polynomial Substract(Polynomial lhs, Polynomial rhs)
 {
     return(Add(lhs, Multiply(rhs, -1)));
 }
 /// <summary>
 /// Difference of polynomial and number.
 /// </summary>
 /// <param name="lhs">First polynomial.</param>
 /// <param name="number">Number.</param>
 /// <returns>Difference in new polinomial.</returns>
 public static Polynomial Substract(Polynomial lhs, double number)
 {
     return(Add(lhs, -number));
 }
        public void PolynomianEqualsTest(double[] array)
        {
            Polynomial.Polynomial p = new Polynomial.Polynomial(new double[] { 0, 1, 2 });

            Assert.AreEqual(new Polynomial.Polynomial(array), p);
        }
 public string ToString_ReturnStringWithYield()
 {
     Polynomial pol = new Polynomial(1, 2, 3);
     return pol.ToString();
 }
 public bool Equals_CompareTwoPolynomialsWithYield(Polynomial pol)
 {
     Polynomial pol1 = new Polynomial(1, 2, 3);
     return pol1.Equals(pol);
 }
 public double IndexatorTest(double[] array, int index)
 {
     Polynomial.Polynomial p = new Polynomial.Polynomial(array);
     return(p[index]);
 }
 public Polynomial MultiplyOperator_MultiplyPolynomailsWithYield(Polynomial pol1, Polynomial pol2)
 {
     return pol1 * pol2;
 }
 public bool EqualsTest(int[] a, int[] b)
 {
     Polynomial p1 = new Polynomial(a);
     Polynomial p2 = new Polynomial(b);
     return (p1 == p2);
 }
 public Polynomial Substract(Polynomial value) => Polynomial.Substract(this, value);
 public string Substract_Polynomial_With_Number(double number)
 {
     Polynomial.Polynomial first  = new Polynomial.Polynomial(2, 0, 2);
     Polynomial.Polynomial result = Polynomial.Polynomial.Add(first, number);
     return(result.ToString());
 }
 public string Polynomials_ToString(params double[] array)
 {
     Polynomial.Polynomial polynomial = new Polynomial.Polynomial(array);
     return(polynomial.ToString());
 }
Example #46
0
 Polynomial Polumonial(Polynomial a,int MAX)
 {
     a.MAXexponential=MAX;
     a.Elements = new int[MAX];
     return a;
 }
Example #47
0
 static void Main(string[] args)
 {
     Polynomial p = new Polynomial();
     p.AddTerm(1, 2);
     p.AddTerm(-1, 1);
     p.AddTerm(-1, 1);
     p.AddTerm(-1, 0);
     p.PrintPoly();
     Console.WriteLine("-------------------");
     p.Simplify().PrintPoly();
 }
 public int CoefficientCountTest(double[] array)
 {
     Polynomial.Polynomial p = new Polynomial.Polynomial(array);
     return(p.Length);
 }
 public Polynomial Add(Polynomial value) => Polynomial.Add(this, value);
Example #50
0
        static void Main(string[] args)
        {
            Polynomial p1 = new Polynomial(new double[] { 1, 2, 3, 4 });
            Polynomial p2 = new Polynomial(new double[] { 1, 2 });
            Console.WriteLine(p1);
            Console.WriteLine(p2);
            Console.WriteLine(p1 + p2);
            Console.WriteLine(p1 - p2);
            Console.WriteLine(p1 * p2);
            Console.WriteLine(p1 + 100);
            Console.WriteLine(p1 - 100);
            Console.WriteLine(p1 * 100);
            Console.WriteLine(p1 / 100);

            LagrangePolynomial lp1 = new LagrangePolynomial(new Tuple<double, double>[] { new Tuple<double, double>(-1.5, -14.1014), new Tuple<double, double>(-0.75, -0.931596), new Tuple<double, double>(0, 0), new Tuple<double, double>(0.75, 0.931596), new Tuple<double, double>(1.5, 14.1014) });

            Console.WriteLine(lp1);
        }