📄 a00099.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>The Polynomials Templates Library: The Polynomial Templates</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.4.5 --><div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul></div><h1>The Polynomial Templates</h1><hr><a name="_details"></a><h2>Detailed Description</h2>The <a class="el" href="a00090.html">Polynomial</a> Templates. <p><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Files</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html">jenkinstraub.h</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html">laguerre.h</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00095.html">muller.h</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html">Polynomial.h</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html">polyzero.h</a></td></tr><tr><td colspan="2"><br><h2>Modules</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00100.html">Polynomial evaluation functions</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00101.html">Polynomial arithmetics functions</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00102.html">Polynomial roots-solving functions</a></td></tr><tr><td colspan="2"><br><h2>Classes</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00090.html">Polynomial< T ></a></td></tr><tr><td colspan="2"><br><h2>Functions</h2></td></tr><tr><td class="memTemplParams" nowrap colspan="2">template<class T> </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00099.html#g13f5d5cbb65e25ebe6bfa5a1b0129f3e">getOptimalScale</a> (const <a class="el" href="a00090.html">Polynomial</a>< T > &p)</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template<class T, class U> </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00099.html#g663581aef6853ed86df03a35505c9ebd">scalePoly</a> (<a class="el" href="a00090.html">Polynomial</a>< T > &p, const <a class="el" href="a00090.html">Polynomial</a>< U > &q)</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template<class T, class U> </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00099.html#g1ca5c1a34fcdcadb083a25ecf0e1a995">modulus</a> (const <a class="el" href="a00090.html">Polynomial</a>< T > &p, <a class="el" href="a00090.html">Polynomial</a>< U > &q)</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template<class T> </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00099.html#g4c00b88d043d1f70cdcb4d2cec66b55e">cauchyLowerBound</a> (const <a class="el" href="a00090.html">Polynomial</a>< T > &p, const T &upperBound=T(0))</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template<class T> </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00099.html#g70251f7099324b613e81181a4f022f0e">cauchyUpperBound</a> (const <a class="el" href="a00090.html">Polynomial</a>< T > &p)</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template<class T> </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00099.html#ga911d353ac1900e9da22160a11d8b350">zerosGeometricMean</a> (const <a class="el" href="a00090.html">Polynomial</a>< T > &p)</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template<class T> </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00099.html#gff48f345e1c619a7fcfef4fec02674f8">zerosGeometricMean</a> (const <a class="el" href="a00090.html">Polynomial</a>< std::complex< T > > &p)</td></tr></table><hr><h2>Function Documentation</h2><a class="anchor" name="g4c00b88d043d1f70cdcb4d2cec66b55e"></a><!-- doxytag: member="polyzero.h::cauchyLowerBound" ref="g4c00b88d043d1f70cdcb4d2cec66b55e" args="(const Polynomial< T > &p, const T &upperBound=T(0))" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4">template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top">T cauchyLowerBound </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="a00090.html">Polynomial</a>< T > & </td> <td class="mdname" nowrap> <em>p</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>const T & </td> <td class="mdname" nowrap> <em>upperBound</em> = <code>T(0)</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>returns the Cauchy lower bound for a polynomial.<p>approximates the Cauchy lower bound for polynomial <em>p</em>.<p>This function expects the input polynomial to be of the form:<p><p class="formulaDsp"><img class="formulaDsp" alt="\[p(x)=-|a_0|+|a_1|x+|a_2|x^2+...+|a_n|x^n\]" src="form_46.png"><p><p>where <img class="formulaInl" alt="$(a_0,a_1,a_2,...,a_n)$" src="form_47.png"> are real or complex coeficients of the polynomial being examined. The Cauchy lower bound is the value of the only positive zero of <img class="formulaInl" alt="$p(x)$" src="form_21.png"> . This zero is found using Newton-Raphson method.<p>The optional parameter <em>upperBound</em> indicates a starting point from where to start looking for this zero. If <em>upperBound</em> is omited, or null, the geometric mean of the zeros will be used as a starting point for the search.<p><dl compact><dt><b>Example:</b></dt><dd><div class="fragment"><pre class="fragment"><span class="preprocessor">#include <complex></span><span class="preprocessor">#include "<a class="code" href="a00096.html">polynomial.h</a>"</span><span class="preprocessor">#include "<a class="code" href="a00097.html">polyzero.h</a>"</span><span class="keywordtype">void</span> main() { <span class="comment">// this example shows how to compute the Cauchy lower bound</span> <span class="comment">// of a polynomial</span> Polynomial< std::complex<double> > p; Polynomial<double> mp; <span class="comment">// initialize polynomial p</span> ... <span class="comment">// compute Cauchy polynomial</span> <a class="code" href="a00099.html#g1ca5c1a34fcdcadb083a25ecf0e1a995">modulus</a>(p, mp) mp[0] = -mp[0]; <span class="comment">// compute Cauchy lower bound of polynomial p</span> <span class="keywordtype">double</span> c = <a class="code" href="a00099.html#g4c00b88d043d1f70cdcb4d2cec66b55e">cauchyLowerBound</a>(mp, 0); <span class="comment">// do something</span> ...}</pre></div></dd></dl><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>p</em> </td><td>polynomial being evaluated. Template parameter <em>T</em> can be any non-complex IEEE floating-point type. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>upperBound</em> </td><td>starting point to use for the search. </td></tr> </table></dl><dl compact><dt><b>Returns:</b></dt><dd>The Cauchy lower bound.</dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00090.html">Polynomial</a><br> <a class="el" href="a00102.html#g7528de40f73b280a95202bc5b8947424">newtonZero()</a> </dd></dl><p>Definition at line <a class="el" href="a00108.html#l00233">233</a> of file <a class="el" href="a00108.html">polyzero.h</a>. </td> </tr></table><a class="anchor" name="g70251f7099324b613e81181a4f022f0e"></a><!-- doxytag: member="polyzero.h::cauchyUpperBound" ref="g70251f7099324b613e81181a4f022f0e" args="(const Polynomial< T > &p)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4">template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top">T cauchyUpperBound </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="a00090.html">Polynomial</a>< T > & </td> <td class="mdname1" valign="top" nowrap> <em>p</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>returns the Cauchy upper bound for a polynomial<p>Returns the Cauchy upper bound for polynomial <em>p</em>.<p>The Cauchy upper bound <img class="formulaInl" alt="$C_u$" src="form_48.png"> is the result of the equation<p><p class="formulaDsp"><img class="formulaDsp" alt="\[C_u=1+max_n(|a_0|,|a_1|,...,|a_n|)\]" src="form_49.png"><p><p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>p</em> </td><td>polynomial being evaluated. template parameter <em>T</em> can be any real or complex IEEE floating-point type.</td></tr> </table></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00090.html">Polynomial</a><br> <a class="el" href="a00099.html#g4c00b88d043d1f70cdcb4d2cec66b55e">cauchyLowerBound()</a> </dd></dl><p>Definition at line <a class="el" href="a00108.html#l00266">266</a> of file <a class="el" href="a00108.html">polyzero.h</a>. </td> </tr></table><a class="anchor" name="g13f5d5cbb65e25ebe6bfa5a1b0129f3e"></a><!-- doxytag: member="Polynomial.h::getOptimalScale" ref="g13f5d5cbb65e25ebe6bfa5a1b0129f3e" args="(const Polynomial< T > &p)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4">template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top">T getOptimalScale </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="a00090.html">Polynomial</a>< T > & </td> <td class="mdname1" valign="top" nowrap> <em>p</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -