public Solve ( MatrixValue b ) : MatrixValue | ||
b | MatrixValue | The vector b in A * x = b. |
Résultat | MatrixValue |
public MatrixValue Function(MatrixValue M, MatrixValue phi) { if (M.IsSymmetric) { var cg = new CGSolver(M); return cg.Solve(phi); } else if (M.DimensionX == M.DimensionY && M.DimensionY > 64) // Is there a way to "guess" a good number for this? { var gmres = new GMRESkSolver(M); gmres.Restart = 30; return gmres.Solve(phi); } return M.Inverse() * phi; }
public MatrixValue Function(MatrixValue A, MatrixValue x, MatrixValue b) { var gmres = new GMRESkSolver(A); gmres.X0 = x; return gmres.Solve(b); }