Basic class for a Conjugant Gradient solver.
Inheritance: IterativeSolver
コード例 #1
0
ファイル: SolveFunction.cs プロジェクト: FlorianRappl/YAMP
        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;
        }
コード例 #2
0
ファイル: CGFunction.cs プロジェクト: FlorianRappl/YAMP
 public MatrixValue Function(MatrixValue A, MatrixValue x, MatrixValue b)
 {
     var cg = new CGSolver(A);
     cg.X0 = x;
     return cg.Solve(b);
 }