using MathNet.Numerics.LinearAlgebra; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MathNet.Numerics.Optimization { public class ModelMinimizationResult { public IObjectiveModel ModelInfoAtMinimum { get; private set; } /// /// Returns the best fit parameters. /// public Vector BestFitParameters { get { return ModelInfoAtMinimum.Parameters; } } /// /// Returns the standard errors of the corresponding parameters /// public Vector StandardErrors { get { if (ModelInfoAtMinimum.Covariance == null) return null; return ModelInfoAtMinimum.Covariance.Diagonal().PointwiseSqrt(); } } /// /// Returns the y-values of the fitted model that correspond to the independent values. /// public Vector BestFitValues { get { return ModelInfoAtMinimum.Values; } } /// /// Returns the residual sum of squares. /// public double Residue { get { return ModelInfoAtMinimum.Residue; } } public double DegreeOfFreedom { get { return ModelInfoAtMinimum.DegreeOfFreedom; } } public int Iterations { get; private set; } public ExitCondition ReasonForExit { get; private set; } public ModelMinimizationResult(IObjectiveModel modelInfo, int iterations, ExitCondition reasonForExit) { ModelInfoAtMinimum = modelInfo; Iterations = iterations; ReasonForExit = reasonForExit; } } }