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; }
//주어진 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)); }
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)); }
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; }
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; }
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()); }
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()); }
Polynomial Polumonial(Polynomial a,int MAX) { a.MAXexponential=MAX; a.Elements = new int[MAX]; return a; }
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);
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); }