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;
}
}
}