Browse Source

Polynomial: rename to Roots() and EigenvalueMatrix()

ridge-regression
Christoph Ruegg 8 years ago
parent
commit
c756e796ed
  1. 6
      src/Numerics.Tests/PolynomialTests.cs
  2. 3
      src/Numerics/FindRoots.cs
  3. 8
      src/Numerics/Polynomial.cs

6
src/Numerics.Tests/PolynomialTests.cs

@ -296,14 +296,14 @@ namespace MathNet.Numerics.UnitTests
{ {
var tol = 1e-14; var tol = 1e-14;
var p1 = new Polynomial(1.0); var p1 = new Polynomial(1.0);
var r = p1.GetRoots(); var r = p1.Roots();
Assert.AreEqual(1, r.Length, "length mismatch"); Assert.AreEqual(1, r.Length, "length mismatch");
Assert.AreEqual(1.0, r.FirstOrDefault().Real); Assert.AreEqual(1.0, r.FirstOrDefault().Real);
var p2 = new Polynomial(new double[] { 1, 2 }); var p2 = new Polynomial(new double[] { 1, 2 });
var r2 = p2.GetRoots(); var r2 = p2.Roots();
Assert.AreEqual(1, r2.Length, "length mismatch"); Assert.AreEqual(1, r2.Length, "length mismatch");
Assert.AreEqual(-0.5, r2.FirstOrDefault().Real, tol); Assert.AreEqual(-0.5, r2.FirstOrDefault().Real, tol);
@ -333,7 +333,7 @@ namespace MathNet.Numerics.UnitTests
static void TestEqual(double[] x, List<Complex> eIn) static void TestEqual(double[] x, List<Complex> eIn)
{ {
var tol = 1e-10; var tol = 1e-10;
var r0 = new Polynomial(x).GetRoots().ToList(); var r0 = new Polynomial(x).Roots().ToList();
var e = eIn.OrderBy(v => v.Real).ToArray(); var e = eIn.OrderBy(v => v.Real).ToArray();
var r = r0.OrderBy(v => v.Real).ToArray(); var r = r0.OrderBy(v => v.Real).ToArray();

3
src/Numerics/FindRoots.cs

@ -110,6 +110,7 @@ namespace MathNet.Numerics
{ {
return RootFinding.Cubic.Roots(d, c, b, a); return RootFinding.Cubic.Roots(d, c, b, a);
} }
/// <summary> /// <summary>
/// Find all roots of a polynomial by calculating the characteristic polynomial of the companion matrix /// Find all roots of a polynomial by calculating the characteristic polynomial of the companion matrix
/// </summary> /// </summary>
@ -117,7 +118,7 @@ namespace MathNet.Numerics
/// <returns>the roots of the polynomial</returns> /// <returns>the roots of the polynomial</returns>
public static Complex[] Polynomial(double[] poly) public static Complex[] Polynomial(double[] poly)
{ {
return new Polynomial(poly).GetRoots(); return new Polynomial(poly).Roots();
} }
/// <summary> /// <summary>

8
src/Numerics/Polynomial.cs

@ -294,7 +294,7 @@ namespace MathNet.Numerics
} }
/// <summary> /// <summary>
/// substraction of two Polynomials (piecewise) /// Subtraction of two Polynomials (piecewise)
/// </summary> /// </summary>
/// <param name="a">left Polynomial</param> /// <param name="a">left Polynomial</param>
/// <param name="b">right Polynomial</param> /// <param name="b">right Polynomial</param>
@ -308,9 +308,9 @@ namespace MathNet.Numerics
/// Calculates the complex roots of the Polynomial by eigenvalue decomposition /// Calculates the complex roots of the Polynomial by eigenvalue decomposition
/// </summary> /// </summary>
/// <returns>a vector of complex numbers with the roots</returns> /// <returns>a vector of complex numbers with the roots</returns>
public Complex[] GetRoots() public Complex[] Roots()
{ {
DenseMatrix A = GetEigValMatrix(); DenseMatrix A = EigenvalueMatrix();
Complex[] roots; Complex[] roots;
if (A == null) if (A == null)
@ -337,7 +337,7 @@ namespace MathNet.Numerics
/// </summary> /// </summary>
/// <returns>Eigenvalue matrix A</returns> /// <returns>Eigenvalue matrix A</returns>
/// <note>this matrix is similar to the companion matrix of this polynomial, in such a way, that it's transpose is the columnflip of the companion matrix</note> /// <note>this matrix is similar to the companion matrix of this polynomial, in such a way, that it's transpose is the columnflip of the companion matrix</note>
public DenseMatrix GetEigValMatrix() public DenseMatrix EigenvalueMatrix()
{ {
Polynomial pLoc = new Polynomial(Coefficients); Polynomial pLoc = new Polynomial(Coefficients);
pLoc.Trim(); pLoc.Trim();

Loading…
Cancel
Save