Math.NET Numerics
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

270 lines
11 KiB

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>WeakWolfeLineSearch - Math.NET Numerics Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link type="text/css" rel="stylesheet" href="../main.css"/>
<script type="text/javascript" src="../js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="../js/jquery.scrollTo-min.js"></script>
<script type="text/javascript" src="../js/navigation.js"></script>
<script type="text/javascript" src="../js/example.js"></script>
</head>
<body><div id="namespaces">
<h2 class="fixed">Namespaces</h2>
<div class="scroll">
<ul>
<li>
<a href="../MathNet.Numerics/index.htm">MathNet.Numerics</a>
</li>
<li>
<a href="../MathNet.Numerics.Differentiation/index.htm">MathNet.Numerics.Differentiation</a>
</li>
<li>
<a href="../MathNet.Numerics.Distributions/index.htm">MathNet.Numerics.Distributions</a>
</li>
<li>
<a href="../MathNet.Numerics.Financial/index.htm">MathNet.Numerics.Financial</a>
</li>
<li>
<a href="../MathNet.Numerics.IntegralTransforms/index.htm">MathNet.Numerics.IntegralTransforms</a>
</li>
<li>
<a href="../MathNet.Numerics.Integration/index.htm">MathNet.Numerics.Integration</a>
</li>
<li>
<a href="../MathNet.Numerics.Interpolation/index.htm">MathNet.Numerics.Interpolation</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearAlgebra/index.htm">MathNet.Numerics.LinearAlgebra</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearAlgebra.Complex/index.htm">MathNet.Numerics.LinearAlgebra.Complex</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearAlgebra.Complex.Solvers/index.htm">MathNet.Numerics.LinearAlgebra.Complex.Solvers</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearAlgebra.Complex32/index.htm">MathNet.Numerics.LinearAlgebra.Complex32</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearAlgebra.Complex32.Solvers/index.htm">MathNet.Numerics.LinearAlgebra.Complex32.Solvers</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearAlgebra.Double/index.htm">MathNet.Numerics.LinearAlgebra.Double</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearAlgebra.Double.Solvers/index.htm">MathNet.Numerics.LinearAlgebra.Double.Solvers</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearAlgebra.Factorization/index.htm">MathNet.Numerics.LinearAlgebra.Factorization</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearAlgebra.Single/index.htm">MathNet.Numerics.LinearAlgebra.Single</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearAlgebra.Single.Solvers/index.htm">MathNet.Numerics.LinearAlgebra.Single.Solvers</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearAlgebra.Solvers/index.htm">MathNet.Numerics.LinearAlgebra.Solvers</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearAlgebra.Storage/index.htm">MathNet.Numerics.LinearAlgebra.Storage</a>
</li>
<li>
<a href="../MathNet.Numerics.LinearRegression/index.htm">MathNet.Numerics.LinearRegression</a>
</li>
<li>
<a href="../MathNet.Numerics.OdeSolvers/index.htm">MathNet.Numerics.OdeSolvers</a>
</li>
<li>
<a href="../MathNet.Numerics.Optimization/index.htm">MathNet.Numerics.Optimization</a>
</li>
<li>
<a href="../MathNet.Numerics.Optimization.LineSearch/index.htm" class="current">MathNet.Numerics.Optimization.LineSearch</a>
</li>
<li>
<a href="../MathNet.Numerics.Optimization.ObjectiveFunctions/index.htm">MathNet.Numerics.Optimization.ObjectiveFunctions</a>
</li>
<li>
<a href="../MathNet.Numerics.Optimization.TrustRegion/index.htm">MathNet.Numerics.Optimization.TrustRegion</a>
</li>
<li>
<a href="../MathNet.Numerics.Providers/index.htm">MathNet.Numerics.Providers</a>
</li>
<li>
<a href="../MathNet.Numerics.Providers.FourierTransform/index.htm">MathNet.Numerics.Providers.FourierTransform</a>
</li>
<li>
<a href="../MathNet.Numerics.Providers.LinearAlgebra/index.htm">MathNet.Numerics.Providers.LinearAlgebra</a>
</li>
<li>
<a href="../MathNet.Numerics.Providers.SparseSolver/index.htm">MathNet.Numerics.Providers.SparseSolver</a>
</li>
<li>
<a href="../MathNet.Numerics.Random/index.htm">MathNet.Numerics.Random</a>
</li>
<li>
<a href="../MathNet.Numerics.RootFinding/index.htm">MathNet.Numerics.RootFinding</a>
</li>
<li>
<a href="../MathNet.Numerics.Statistics/index.htm">MathNet.Numerics.Statistics</a>
</li>
<li>
<a href="../MathNet.Numerics.Statistics.Mcmc/index.htm">MathNet.Numerics.Statistics.Mcmc</a>
</li>
</ul>
</div>
</div><div id="types">
<h2 class="fixed">Types in MathNet.Numerics.Optimization.LineSearch</h2>
<div class="scroll">
<ul>
<li>
<a href="../MathNet.Numerics.Optimization.LineSearch/LineSearchResult.htm">LineSearchResult</a>
</li>
<li>
<a href="../MathNet.Numerics.Optimization.LineSearch/StrongWolfeLineSearch.htm">StrongWolfeLineSearch</a>
</li>
<li>
<a href="../MathNet.Numerics.Optimization.LineSearch/WeakWolfeLineSearch.htm" class="current">WeakWolfeLineSearch</a>
</li>
<li>
<a href="../MathNet.Numerics.Optimization.LineSearch/WolfeLineSearch.htm">WolfeLineSearch</a>
</li>
</ul>
</div>
</div>
<div class="header">
<p class="class"><strong>Type</strong> WeakWolfeLineSearch</p>
<p><strong>Namespace</strong> MathNet.Numerics.Optimization.LineSearch</p>
<p><strong>Parent</strong> <a href="../MathNet.Numerics.Optimization.LineSearch/WolfeLineSearch.htm">WolfeLineSearch</a></p>
</div>
<div class="sub-header">
<div id="summary">Search for a step size alpha that satisfies the weak Wolfe conditions. The weak Wolfe
Conditions are
i) Armijo Rule: f(x_k + alpha_k p_k) <= f(x_k) + c1 alpha_k p_k^T g(x_k)
ii) Curvature Condition: p_k^T g(x_k + alpha_k p_k) >= c2 p_k^T g(x_k)
where g(x) is the gradient of f(x), 0 < c1 < c2 < 1.
Implementation is based on http://www.math.washington.edu/~burke/crs/408/lectures/L9-weak-Wolfe.pdf
references:
http://en.wikipedia.org/wiki/Wolfe_conditions
http://www.math.washington.edu/~burke/crs/408/lectures/L9-weak-Wolfe.pdf
</div>
<h3 class="section">Constructors</h3>
<ul>
<li><a href="../MathNet.Numerics.Optimization.LineSearch/WeakWolfeLineSearch.htm#.ctor">WeakWolfeLineSearch</a></li>
</ul>
<h3 class="section">Methods</h3>
<ul>
<li><a href="../MathNet.Numerics.Optimization.LineSearch/WeakWolfeLineSearch.htm#Equals">Equals</a></li>
<li><a href="../MathNet.Numerics.Optimization.LineSearch/WeakWolfeLineSearch.htm#FindConformingStep">FindConformingStep</a></li>
<li><a href="../MathNet.Numerics.Optimization.LineSearch/WeakWolfeLineSearch.htm#FindConformingStep">FindConformingStep</a></li>
<li><a href="../MathNet.Numerics.Optimization.LineSearch/WeakWolfeLineSearch.htm#GetHashCode">GetHashCode</a></li>
<li><a href="../MathNet.Numerics.Optimization.LineSearch/WeakWolfeLineSearch.htm#GetType">GetType</a></li>
<li><a href="../MathNet.Numerics.Optimization.LineSearch/WeakWolfeLineSearch.htm#ToString">ToString</a></li>
</ul>
</div>
<h3 class="section">Public Constructors</h3>
<div id=".ctor" class="method">
<h4> <strong>WeakWolfeLineSearch</strong>(<span title="System.double">double</span> c1, <span title="System.double">double</span> c2, <span title="System.double">double</span> parameterTolerance, <span title="System.int">int</span> maxIterations)</h4>
<div class="content">
</div>
</div>
<h3 class="section">Public Methods</h3>
<div id="Equals" class="method">
<h4><span title="System.bool">bool</span> <strong>Equals</strong>(<span title="System.object">object</span> obj)</h4>
<div class="content">
</div>
</div>
<div id="FindConformingStep" class="method">
<h4><a href="../MathNet.Numerics.Optimization.LineSearch/LineSearchResult.htm">LineSearchResult</a> <strong>FindConformingStep</strong>(<a href="../MathNet.Numerics.Optimization/IObjectiveFunctionEvaluation.htm">IObjectiveFunctionEvaluation</a> startingPoint, <a href="../MathNet.Numerics.LinearAlgebra/Vector`1.htm">Vector&lt;T&gt;</a> searchDirection, <span title="System.double">double</span> initialStep)</h4>
<div class="content">Implemented following http://www.math.washington.edu/~burke/crs/408/lectures/L9-weak-Wolfe.pdf
<div class="parameters">
<h5>Parameters</h5>
<h6><code><a href="../MathNet.Numerics.Optimization/IObjectiveFunctionEvaluation.htm">IObjectiveFunctionEvaluation</a></code> startingPoint</h6>
<p class="comments">The objective function being optimized, evaluated at the starting point of the search </p>
<h6><code><a href="../MathNet.Numerics.LinearAlgebra/Vector`1.htm">Vector&lt;T&gt;</a></code> searchDirection</h6>
<p class="comments">Search direction </p>
<h6><code><span title="System.double">double</span></code> initialStep</h6>
<p class="comments">Initial size of the step in the search direction </p>
</div>
</div>
</div>
<div id="FindConformingStep" class="method">
<h4><a href="../MathNet.Numerics.Optimization.LineSearch/LineSearchResult.htm">LineSearchResult</a> <strong>FindConformingStep</strong>(<a href="../MathNet.Numerics.Optimization/IObjectiveFunctionEvaluation.htm">IObjectiveFunctionEvaluation</a> startingPoint, <a href="../MathNet.Numerics.LinearAlgebra/Vector`1.htm">Vector&lt;T&gt;</a> searchDirection, <span title="System.double">double</span> initialStep, <span title="System.double">double</span> upperBound)</h4>
<div class="content">
<div class="parameters">
<h5>Parameters</h5>
<h6><code><a href="../MathNet.Numerics.Optimization/IObjectiveFunctionEvaluation.htm">IObjectiveFunctionEvaluation</a></code> startingPoint</h6>
<p class="comments">The objective function being optimized, evaluated at the starting point of the search </p>
<h6><code><a href="../MathNet.Numerics.LinearAlgebra/Vector`1.htm">Vector&lt;T&gt;</a></code> searchDirection</h6>
<p class="comments">Search direction </p>
<h6><code><span title="System.double">double</span></code> initialStep</h6>
<p class="comments">Initial size of the step in the search direction </p>
<h6><code><span title="System.double">double</span></code> upperBound</h6>
<p class="comments">The upper bound </p>
</div>
</div>
</div>
<div id="GetHashCode" class="method">
<h4><span title="System.int">int</span> <strong>GetHashCode</strong>()</h4>
<div class="content">
</div>
</div>
<div id="GetType" class="method">
<h4><span title="System.Type">Type</span> <strong>GetType</strong>()</h4>
<div class="content">
</div>
</div>
<div id="ToString" class="method">
<h4><span title="System.string">string</span> <strong>ToString</strong>()</h4>
<div class="content">
</div>
</div>
<div id="footer">
<p>Based on v5.0.0.0 of MathNet.Numerics (Math.NET Numerics)</p>
<p>Generated by <a href="http://docu.jagregory.com">docu</a></p>
</div>
</body>
</html>