ILNumerics Ultimate VS

ILMath.pinv Method (InArray<Double>, Nullable<Double>)

ILNumerics Ultimate VS Documentation
ILNumerics - Technical Application Development
Moore-Penrose pseudo inverse of A.

[ILNumerics Computing Engine]

Namespace:  ILNumerics
Assembly:  ILNumerics.Computing (in ILNumerics.Computing.dll) Version: 5.5.0.0 (5.5.7503.3146)
Syntax

public static RetArray<double> pinv(
	InArray<double> A,
	Nullable<double> tolerance = null
)

Parameters

A
Type: ILNumerics.InArray<Double>
Input matrix.
tolerance (Optional)
Type: System.Nullable<Double>
[Optional] Tolerance. Default: (null) - use default tolerance (see remarks).

Return Value

Type: RetArray<Double>
Pseudo inverse of input matrix A
Remarks

The function returns the pseudo inverse (Moore-Penrose pseudoinverse) of input matrix A. The return value will be of the same size as A.T. It will satisfy the following conditions:
  • A * pinv(A) * A = A
  • pinv(A) * A * pinv(A) = pinv(A)
  • pinv(A) * A is hermitian.
  • A * pinv(A) is hermitian.
pinv(InArray<Double> , Nullable<Double> ) relies on svd(InArray<complex>), utilizing native Lapack functions internally. Singular values less than tolerance will be set to zero. As default tolerance the following equation is used: \\ tolerance = length(A) * norm(A) * eps, where
  • length(A) - the longest dimension of A.
  • norm(A) being the largest singular value of A.
  • eps - the smallest number greater than one.

[ILNumerics Computing Engine]

See Also

Reference

MathInternal.pinv(InArray<Double>, Nullable<Double>)
MathInternal.svd(InArray<Double>)
MathInternal.norm(InArray<Double>, Double)