public void PseudoInverse1()
{
double[,] value =
{
{ 1, 1, 1 },
{ 2, 2, 2 }
};
double[,] expected =
{
{ 0.0667, 0.1333 },
{ 0.0667, 0.1333 },
{ 0.0667, 0.1333 },
};
double[,] actual = Matrix.PseudoInverse(value);
Assert.IsTrue(Matrix.IsEqual(expected, actual, 0.001));
actual = Matrix.PseudoInverse(value.Transpose());
Assert.IsTrue(Matrix.IsEqual(expected.Transpose(), actual, 0.001));
actual = Matrix.PseudoInverse(value.ToJagged()).ToMatrix();
Assert.IsTrue(Matrix.IsEqual(expected, actual, 0.001));
actual = Matrix.PseudoInverse(value.ToJagged().Transpose()).ToMatrix();
Assert.IsTrue(Matrix.IsEqual(expected.Transpose(), actual, 0.001));
}