Browse Source

Testing Moore-Penrose Pseudo-Inverse

v4
Alex Hildebrand 7 years ago
committed by Christoph Ruegg
parent
commit
ac189ad25d
  1. 14
      src/Numerics.Tests/LinearAlgebraTests/Complex/MatrixTests.Arithmetic.cs
  2. 14
      src/Numerics.Tests/LinearAlgebraTests/Complex32/MatrixTests.Arithmetic.cs
  3. 14
      src/Numerics.Tests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs
  4. 14
      src/Numerics.Tests/LinearAlgebraTests/Single/MatrixTests.Arithmetic.cs

14
src/Numerics.Tests/LinearAlgebraTests/Complex/MatrixTests.Arithmetic.cs

@ -819,6 +819,20 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
Assert.That(() => matrix.Negate(target), Throws.ArgumentException);
}
/// <summary>
/// Can compute Moore-Penrose Pseudo-Inverse.
/// </summary>
[TestCase("Square3x3")]
[TestCase("Wide2x3")]
[TestCase("Tall3x2")]
public virtual void CanComputePseudoInverse(string name)
{
var matrix = TestMatrices[name];
var inverse = matrix.PseudoInverse();
// Testing for Moore–Penrose conditions 1: A*A^+*A = A
AssertHelpers.AlmostEqual(matrix, matrix * inverse * matrix, 12);
}
/// <summary>
/// Can calculate Kronecker product.
/// </summary>

14
src/Numerics.Tests/LinearAlgebraTests/Complex32/MatrixTests.Arithmetic.cs

@ -820,6 +820,20 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
Assert.That(() => matrix.Negate(target), Throws.ArgumentException);
}
/// <summary>
/// Can compute Moore-Penrose Pseudo-Inverse.
/// </summary>
[TestCase("Square3x3")]
[TestCase("Wide2x3")]
[TestCase("Tall3x2")]
public virtual void CanComputePseudoInverse(string name)
{
var matrix = TestMatrices[name];
var inverse = matrix.PseudoInverse();
// Testing for Moore–Penrose conditions 1: A*A^+*A = A
AssertHelpers.AlmostEqual(matrix, matrix * inverse * matrix, 5);
}
/// <summary>
/// Can calculate Kronecker product.
/// </summary>

14
src/Numerics.Tests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs

@ -813,6 +813,20 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
Assert.That(() => matrix.Negate(target), Throws.ArgumentException);
}
/// <summary>
/// Can compute Moore-Penrose Pseudo-Inverse.
/// </summary>
[TestCase("Square3x3")]
[TestCase("Wide2x3")]
[TestCase("Tall3x2")]
public virtual void CanComputePseudoInverse(string name)
{
var matrix = TestMatrices[name];
var inverse = matrix.PseudoInverse();
// Testing for Moore–Penrose conditions 1: A*A^+*A = A
AssertHelpers.AlmostEqual(matrix, matrix * inverse * matrix, 12);
}
/// <summary>
/// Can calculate Kronecker product.
/// </summary>

14
src/Numerics.Tests/LinearAlgebraTests/Single/MatrixTests.Arithmetic.cs

@ -808,6 +808,20 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
Assert.That(() => matrix.Negate(target), Throws.ArgumentException);
}
/// <summary>
/// Can compute Moore-Penrose Pseudo-Inverse.
/// </summary>
[TestCase("Square3x3")]
[TestCase("Wide2x3")]
[TestCase("Tall3x2")]
public virtual void CanComputePseudoInverse(string name)
{
var matrix = TestMatrices[name];
var inverse = matrix.PseudoInverse();
// Testing for Moore–Penrose conditions 1: A*A^+*A = A
AssertHelpers.AlmostEqual(matrix, matrix * inverse * matrix, 5);
}
/// <summary>
/// Can calculate Kronecker product.
/// </summary>

Loading…
Cancel
Save