Click or drag to resize

FindMinimumOfFunctionGradient(FuncVectorDouble, Double, FuncVectorDouble, VectorDouble, VectorDouble, Double, Double, Double, Int32) Method

Find vector x that minimizes the function f(x) using the Broyden–Fletcher–Goldfarb–Shanno (BFGS) algorithm. For more options and diagnostics consider to use BfgsMinimizer directly. An alternative routine using conjugate gradients (CG) is available in ConjugateGradientMinimizer.

Namespace: Altaxo.Calc
Assembly: AltaxoCore (in AltaxoCore.dll) Version: 4.8.3179.0 (4.8.3179.0)
Syntax
C#
public static Vector<double> OfFunctionGradient(
	Func<Vector<double>, double> function,
	Func<Vector<double>, Vector<double>> gradient,
	Vector<double> initialGuess,
	double gradientTolerance = 1E-05,
	double parameterTolerance = 1E-05,
	double functionProgressTolerance = 1E-05,
	int maxIterations = 1000
)

Parameters

function  FuncVectorDouble, Double

[Missing <param name="function"/> documentation for "M:Altaxo.Calc.FindMinimum.OfFunctionGradient(System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double},System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},Altaxo.Calc.LinearAlgebra.Vector{System.Double}},Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double,System.Double,System.Double,System.Int32)"]

gradient  FuncVectorDouble, VectorDouble

[Missing <param name="gradient"/> documentation for "M:Altaxo.Calc.FindMinimum.OfFunctionGradient(System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double},System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},Altaxo.Calc.LinearAlgebra.Vector{System.Double}},Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double,System.Double,System.Double,System.Int32)"]

initialGuess  VectorDouble

[Missing <param name="initialGuess"/> documentation for "M:Altaxo.Calc.FindMinimum.OfFunctionGradient(System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double},System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},Altaxo.Calc.LinearAlgebra.Vector{System.Double}},Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double,System.Double,System.Double,System.Int32)"]

gradientTolerance  Double  (Optional)

[Missing <param name="gradientTolerance"/> documentation for "M:Altaxo.Calc.FindMinimum.OfFunctionGradient(System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double},System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},Altaxo.Calc.LinearAlgebra.Vector{System.Double}},Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double,System.Double,System.Double,System.Int32)"]

parameterTolerance  Double  (Optional)

[Missing <param name="parameterTolerance"/> documentation for "M:Altaxo.Calc.FindMinimum.OfFunctionGradient(System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double},System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},Altaxo.Calc.LinearAlgebra.Vector{System.Double}},Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double,System.Double,System.Double,System.Int32)"]

functionProgressTolerance  Double  (Optional)

[Missing <param name="functionProgressTolerance"/> documentation for "M:Altaxo.Calc.FindMinimum.OfFunctionGradient(System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double},System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},Altaxo.Calc.LinearAlgebra.Vector{System.Double}},Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double,System.Double,System.Double,System.Int32)"]

maxIterations  Int32  (Optional)

[Missing <param name="maxIterations"/> documentation for "M:Altaxo.Calc.FindMinimum.OfFunctionGradient(System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double},System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},Altaxo.Calc.LinearAlgebra.Vector{System.Double}},Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double,System.Double,System.Double,System.Int32)"]

Return Value

VectorDouble

[Missing <returns> documentation for "M:Altaxo.Calc.FindMinimum.OfFunctionGradient(System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double},System.Func{Altaxo.Calc.LinearAlgebra.Vector{System.Double},Altaxo.Calc.LinearAlgebra.Vector{System.Double}},Altaxo.Calc.LinearAlgebra.Vector{System.Double},System.Double,System.Double,System.Double,System.Int32)"]

See Also