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.
 
 
 

419 lines
18 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>FindRoots - 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" class="current">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">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</h2>
<div class="scroll">
<ul>
<li>
<a href="../MathNet.Numerics/AppSwitches.htm">AppSwitches</a>
</li>
<li>
<a href="../MathNet.Numerics/Combinatorics.htm">Combinatorics</a>
</li>
<li>
<a href="../MathNet.Numerics/Complex32.htm">Complex32</a>
</li>
<li>
<a href="../MathNet.Numerics/ComplexExtensions.htm">ComplexExtensions</a>
</li>
<li>
<a href="../MathNet.Numerics/Constants.htm">Constants</a>
</li>
<li>
<a href="../MathNet.Numerics/ContourIntegrate.htm">ContourIntegrate</a>
</li>
<li>
<a href="../MathNet.Numerics/Control.htm">Control</a>
</li>
<li>
<a href="../MathNet.Numerics/Differentiate.htm">Differentiate</a>
</li>
<li>
<a href="../MathNet.Numerics/DifferIntegrate.htm">DifferIntegrate</a>
</li>
<li>
<a href="../MathNet.Numerics/Distance.htm">Distance</a>
</li>
<li>
<a href="../MathNet.Numerics/Euclid.htm">Euclid</a>
</li>
<li>
<a href="../MathNet.Numerics/ExcelFunctions.htm">ExcelFunctions</a>
</li>
<li>
<a href="../MathNet.Numerics/FindMinimum.htm">FindMinimum</a>
</li>
<li>
<a href="../MathNet.Numerics/FindRoots.htm" class="current">FindRoots</a>
</li>
<li>
<a href="../MathNet.Numerics/Fit.htm">Fit</a>
</li>
<li>
<a href="../MathNet.Numerics/Generate.htm">Generate</a>
</li>
<li>
<a href="../MathNet.Numerics/GoodnessOfFit.htm">GoodnessOfFit</a>
</li>
<li>
<a href="../MathNet.Numerics/Integrate.htm">Integrate</a>
</li>
<li>
<a href="../MathNet.Numerics/Interpolate.htm">Interpolate</a>
</li>
<li>
<a href="../MathNet.Numerics/InvalidParameterException.htm">InvalidParameterException</a>
</li>
<li>
<a href="../MathNet.Numerics/IPrecisionSupport`1.htm">IPrecisionSupport&lt;T&gt;</a>
</li>
<li>
<a href="../MathNet.Numerics/MemoryAllocationException.htm">MemoryAllocationException</a>
</li>
<li>
<a href="../MathNet.Numerics/NativeInterfaceException.htm">NativeInterfaceException</a>
</li>
<li>
<a href="../MathNet.Numerics/NonConvergenceException.htm">NonConvergenceException</a>
</li>
<li>
<a href="../MathNet.Numerics/NumericalBreakdownException.htm">NumericalBreakdownException</a>
</li>
<li>
<a href="../MathNet.Numerics/Permutation.htm">Permutation</a>
</li>
<li>
<a href="../MathNet.Numerics/Polynomial.htm">Polynomial</a>
</li>
<li>
<a href="../MathNet.Numerics/Precision.htm">Precision</a>
</li>
<li>
<a href="../MathNet.Numerics/Series.htm">Series</a>
</li>
<li>
<a href="../MathNet.Numerics/SingularUMatrixException.htm">SingularUMatrixException</a>
</li>
<li>
<a href="../MathNet.Numerics/Sorting.htm">Sorting</a>
</li>
<li>
<a href="../MathNet.Numerics/SpecialFunctions.htm">SpecialFunctions</a>
</li>
<li>
<a href="../MathNet.Numerics/TestFunctions.htm">TestFunctions</a>
</li>
<li>
<a href="../MathNet.Numerics/Trig.htm">Trig</a>
</li>
<li>
<a href="../MathNet.Numerics/Window.htm">Window</a>
</li>
</ul>
</div>
</div>
<div class="header">
<p class="class"><strong>Type</strong> FindRoots</p>
<p><strong>Namespace</strong> MathNet.Numerics</p>
</div>
<div class="sub-header">
<h3 class="section">Static Functions</h3>
<ul>
<li><a href="../MathNet.Numerics/FindRoots.htm#ChebychevPolynomialFirstKind">ChebychevPolynomialFirstKind</a></li>
<li><a href="../MathNet.Numerics/FindRoots.htm#ChebychevPolynomialSecondKind">ChebychevPolynomialSecondKind</a></li>
<li><a href="../MathNet.Numerics/FindRoots.htm#Cubic">Cubic</a></li>
<li><a href="../MathNet.Numerics/FindRoots.htm#OfFunction">OfFunction</a></li>
<li><a href="../MathNet.Numerics/FindRoots.htm#OfFunctionDerivative">OfFunctionDerivative</a></li>
<li><a href="../MathNet.Numerics/FindRoots.htm#Polynomial">Polynomial</a></li>
<li><a href="../MathNet.Numerics/FindRoots.htm#Polynomial">Polynomial</a></li>
<li><a href="../MathNet.Numerics/FindRoots.htm#Quadratic">Quadratic</a></li>
</ul>
</div>
<h3 class="section">Public Static Functions</h3>
<div id="ChebychevPolynomialFirstKind" class="method">
<h4><span title="System.Double[]">Double[]</span> <strong>ChebychevPolynomialFirstKind</strong>(<span title="System.int">int</span> degree, <span title="System.double">double</span> intervalBegin, <span title="System.double">double</span> intervalEnd)</h4>
<div class="content">Find all roots of the Chebychev polynomial of the first kind.
<div class="parameters">
<h5>Parameters</h5>
<h6><code><span title="System.int">int</span></code> degree</h6>
<p class="comments">The polynomial order and therefore the number of roots. </p>
<h6><code><span title="System.double">double</span></code> intervalBegin</h6>
<p class="comments">The real domain interval begin where to start sampling. </p>
<h6><code><span title="System.double">double</span></code> intervalEnd</h6>
<p class="comments">The real domain interval end where to stop sampling. </p>
</div>
<div class="return">
<h5>Return</h5>
<h6><code><span title="System.Double[]">Double[]</span></code></h6>
<p>Samples in [a,b] at (b+a)/2+(b-1)/2*cos(pi*(2i-1)/(2n)) </p>
</div>
</div>
</div>
<div id="ChebychevPolynomialSecondKind" class="method">
<h4><span title="System.Double[]">Double[]</span> <strong>ChebychevPolynomialSecondKind</strong>(<span title="System.int">int</span> degree, <span title="System.double">double</span> intervalBegin, <span title="System.double">double</span> intervalEnd)</h4>
<div class="content">Find all roots of the Chebychev polynomial of the second kind.
<div class="parameters">
<h5>Parameters</h5>
<h6><code><span title="System.int">int</span></code> degree</h6>
<p class="comments">The polynomial order and therefore the number of roots. </p>
<h6><code><span title="System.double">double</span></code> intervalBegin</h6>
<p class="comments">The real domain interval begin where to start sampling. </p>
<h6><code><span title="System.double">double</span></code> intervalEnd</h6>
<p class="comments">The real domain interval end where to stop sampling. </p>
</div>
<div class="return">
<h5>Return</h5>
<h6><code><span title="System.Double[]">Double[]</span></code></h6>
<p>Samples in [a,b] at (b+a)/2+(b-1)/2*cos(pi*i/(n-1)) </p>
</div>
</div>
</div>
<div id="Cubic" class="method">
<h4><span title="System.ValueTuple<Complex, Complex, Complex>">ValueTuple&lt;Complex, Complex, Complex&gt;</span> <strong>Cubic</strong>(<span title="System.double">double</span> d, <span title="System.double">double</span> c, <span title="System.double">double</span> b, <span title="System.double">double</span> a)</h4>
<div class="content">Find all three complex roots of the cubic equation d + c*x + b*x^2 + a*x^3 = 0.
Note the special coefficient order ascending by exponent (consistent with polynomials).
</div>
</div>
<div id="OfFunction" class="method">
<h4><span title="System.double">double</span> <strong>OfFunction</strong>(<span title="System.Func<double, double>">Func&lt;double, double&gt;</span> f, <span title="System.double">double</span> lowerBound, <span title="System.double">double</span> upperBound, <span title="System.double">double</span> accuracy, <span title="System.int">int</span> maxIterations)</h4>
<div class="content">Find a solution of the equation f(x)=0.
<div class="parameters">
<h5>Parameters</h5>
<h6><code><span title="System.Func<double, double>">Func&lt;double, double&gt;</span></code> f</h6>
<p class="comments">The function to find roots from. </p>
<h6><code><span title="System.double">double</span></code> lowerBound</h6>
<p class="comments">The low value of the range where the root is supposed to be. </p>
<h6><code><span title="System.double">double</span></code> upperBound</h6>
<p class="comments">The high value of the range where the root is supposed to be. </p>
<h6><code><span title="System.double">double</span></code> accuracy</h6>
<p class="comments">Desired accuracy. The root will be refined until the accuracy or the maximum number of iterations is reached. Example: 1e-14. </p>
<h6><code><span title="System.int">int</span></code> maxIterations</h6>
<p class="comments">Maximum number of iterations. Example: 100. </p>
</div>
</div>
</div>
<div id="OfFunctionDerivative" class="method">
<h4><span title="System.double">double</span> <strong>OfFunctionDerivative</strong>(<span title="System.Func<double, double>">Func&lt;double, double&gt;</span> f, <span title="System.Func<double, double>">Func&lt;double, double&gt;</span> df, <span title="System.double">double</span> lowerBound, <span title="System.double">double</span> upperBound, <span title="System.double">double</span> accuracy, <span title="System.int">int</span> maxIterations)</h4>
<div class="content">Find a solution of the equation f(x)=0.
<div class="parameters">
<h5>Parameters</h5>
<h6><code><span title="System.Func<double, double>">Func&lt;double, double&gt;</span></code> f</h6>
<p class="comments">The function to find roots from. </p>
<h6><code><span title="System.Func<double, double>">Func&lt;double, double&gt;</span></code> df</h6>
<p class="comments">The first derivative of the function to find roots from. </p>
<h6><code><span title="System.double">double</span></code> lowerBound</h6>
<p class="comments">The low value of the range where the root is supposed to be. </p>
<h6><code><span title="System.double">double</span></code> upperBound</h6>
<p class="comments">The high value of the range where the root is supposed to be. </p>
<h6><code><span title="System.double">double</span></code> accuracy</h6>
<p class="comments">Desired accuracy. The root will be refined until the accuracy or the maximum number of iterations is reached. Example: 1e-14. </p>
<h6><code><span title="System.int">int</span></code> maxIterations</h6>
<p class="comments">Maximum number of iterations. Example: 100. </p>
</div>
</div>
</div>
<div id="Polynomial" class="method">
<h4><span title="System.Numerics.Complex[]">Complex[]</span> <strong>Polynomial</strong>(<span title="System.Double[]">Double[]</span> coefficients)</h4>
<div class="content">Find all roots of a polynomial by calculating the characteristic polynomial of the companion matrix
<div class="parameters">
<h5>Parameters</h5>
<h6><code><span title="System.Double[]">Double[]</span></code> coefficients</h6>
<p class="comments">The coefficients of the polynomial in ascending order, e.g. new double[] {5, 0, 2} = "5 + 0 x^1 + 2 x^2" </p>
</div>
<div class="return">
<h5>Return</h5>
<h6><code><span title="System.Numerics.Complex[]">Complex[]</span></code></h6>
<p>The roots of the polynomial </p>
</div>
</div>
</div>
<div id="Polynomial" class="method">
<h4><span title="System.Numerics.Complex[]">Complex[]</span> <strong>Polynomial</strong>(<a href="../MathNet.Numerics/Polynomial.htm">Polynomial</a> polynomial)</h4>
<div class="content">Find all roots of a polynomial by calculating the characteristic polynomial of the companion matrix
<div class="parameters">
<h5>Parameters</h5>
<h6><code><a href="../MathNet.Numerics/Polynomial.htm">Polynomial</a></code> polynomial</h6>
<p class="comments">The polynomial. </p>
</div>
<div class="return">
<h5>Return</h5>
<h6><code><span title="System.Numerics.Complex[]">Complex[]</span></code></h6>
<p>The roots of the polynomial </p>
</div>
</div>
</div>
<div id="Quadratic" class="method">
<h4><span title="System.ValueTuple<Complex, Complex>">ValueTuple&lt;Complex, Complex&gt;</span> <strong>Quadratic</strong>(<span title="System.double">double</span> c, <span title="System.double">double</span> b, <span title="System.double">double</span> a)</h4>
<div class="content">Find both complex roots of the quadratic equation c + b*x + a*x^2 = 0.
Note the special coefficient order ascending by exponent (consistent with polynomials).
</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>