Accord.NET (logo) Matrix Solve Method ( Double ,  Double , Boolean) Accord.NET Framework
Online Show table of contents (goes to the online documentation index).
Returns the solution matrix if the matrix is square or the least squares solution otherwise.

Namespace: Accord.Math
Assembly: Accord.Math (in Accord.Math.dll) Version: (

public static double[] Solve(
	this double[,] matrix,
	double[] rightSide,
	bool leastSquares = false


Type:  OnlineSystem Double 
The matrix for the linear problem.
Type:  OnlineSystem Double 
The right side b.
leastSquares (Optional)
Type: OnlineSystem Boolean
True to produce a solution even if the matrix is singular; false otherwise. Default is false.

Return Value

Type:  OnlineDouble 

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type . When you use instance method syntax to call this method, omit the first parameter. For more information, see OnlineExtension Methods (Visual Basic) or OnlineExtension Methods (C# Programming Guide).

Please note that this does not check if the matrix is non-singular before attempting to solve. If a least squares solution is desired in case the matrix is singular, pass true to the leastSquares parameter when calling this function.

// Create a matrix. Please note that this matrix 
// is singular (i.e. not invertible), so only a  
// least squares solution would be feasible here. 

double[,] matrix = 
    { 1, 2, 3 },
    { 4, 5, 6 },
    { 7, 8, 9 },

// Define a right side vector b: 
double[] rightSide = { 1, 2, 3 };

// Solve the linear system Ax = b by finding x: 
double[] x = Matrix.Solve(matrix, rightSide, leastSquares: true);

// The answer should be { -1/18, 2/18, 5/18 }.
See Also