本文整理汇总了C#中MathNet.Numerics.LinearAlgebra.Double.DenseVector.AbsoluteMinimum方法的典型用法代码示例。如果您正苦于以下问题:C# DenseVector.AbsoluteMinimum方法的具体用法?C# DenseVector.AbsoluteMinimum怎么用?C# DenseVector.AbsoluteMinimum使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MathNet.Numerics.LinearAlgebra.Double.DenseVector
的用法示例。
在下文中一共展示了DenseVector.AbsoluteMinimum方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
public override void Execute()
{
var nvars = Fh.Point.Count;
var x0 = Fh.Point; //Стартовая точка
IterationCount = 0;
var delta = new DenseVector(nvars);
for (var i = 0; i < nvars; i++)
{
delta[i] = _rho;
}
DenseVector originalDelta = delta;
while (delta.AbsoluteMinimum() > Eps && IterationCount < MaxIterations)
{
Vector<double> x1 = ExplanotorySearch(x0, delta);
if (Fh.Y(x1) < Fh.Y(x0))
{ //x1 лучше чем x0
delta = originalDelta;
while (true)
{
Vector<double> x2 = x0 + 2* (x1 - x0);
x2 = ExplanotorySearch(x2, delta);
if (Fh.Y(x2) < Fh.Y(x1))
{
//х2 лучше чем х1
x0 = x1;
x1 = x2;
}
else
{
//x2 хуже чем х1
x0 = x1;
break;
}
}
}
else
{ // x1 хуже чем х0
delta /= 2;
}
IterationCount++;
}
Answer = x0;
}