⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a00102.html

📁 This library defines basic operation on polynomials, and contains also 3 different roots (zeroes)-fi
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!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: Polynomial roots-solving functions</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&nbsp;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>Polynomial roots-solving functions<br><small>[<a class="el" href="a00099.html">The Polynomial Templates</a>]</small></h1><hr><a name="_details"></a><h2>Detailed Description</h2>Operations specifically related to the general polynomial roots-solving problem. <p><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Functions</h2></td></tr><tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T, class U&gt; </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00102.html#g38785df759bdb907a923c48b208f4e0d">jenkinsTraubZeros</a> (const <a class="el" href="a00090.html">Polynomial</a>&lt; T &gt; &amp;P, std::vector&lt; std::complex&lt; U &gt; &gt; &amp;zeros, bool polish)</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T, class U&gt; </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00102.html#g8f609e24d651d3dcf78a90ebf4a92380">laguerreZeros</a> (const <a class="el" href="a00090.html">Polynomial</a>&lt; T &gt; &amp;P, std::vector&lt; std::complex&lt; U &gt; &gt; &amp;zeros, bool polish)</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T, class U&gt; </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00102.html#g255f8995a5a65456d0ac4b99a1d60325">mullerZeros</a> (const <a class="el" href="a00090.html">Polynomial</a>&lt; T &gt; &amp;P, std::vector&lt; std::complex&lt; U &gt; &gt; &amp;zeros, bool polish)</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T, class U, class V&gt; </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00102.html#g7528de40f73b280a95202bc5b8947424">newtonZero</a> (const <a class="el" href="a00090.html">Polynomial</a>&lt; T &gt; &amp;p, U &amp;z, U &amp;pz, V &amp;mpz, bool adaptive=false)</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T&gt; </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00102.html#g206394af98d861f1a81bea25ae6d84da">removeNullZeros</a> (<a class="el" href="a00090.html">Polynomial</a>&lt; T &gt; &amp;p)</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T&gt; </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00102.html#g3536daa88b2578a96cd84d2680ac9d66">sortZeros</a> (std::vector&lt; std::complex&lt; T &gt; &gt; &amp;zeros)</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T&gt; </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00102.html#g6e9fe1cec8c7ec334d9e21f31b602bde">solveDegree1</a> (const T &amp;a, const T &amp;b)</td></tr><tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T, class U&gt; </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00102.html#gb88e92200690d2e3f8b0c785c8fa42d3">solveDegree2</a> (const T &amp;a, const T &amp;b, const T &amp;c, U &amp;z1, U &amp;z2)</td></tr></table><hr><h2>Function Documentation</h2><a class="anchor" name="g38785df759bdb907a923c48b208f4e0d"></a><!-- doxytag: member="jenkinstraub.h::jenkinsTraubZeros" ref="g38785df759bdb907a923c48b208f4e0d" args="(const Polynomial&lt; T &gt; &amp;P, std::vector&lt; std::complex&lt; U &gt; &gt; &amp;zeros, bool polish)" --><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&lt;class T, class U&gt; </td>        </tr>        <tr>          <td class="md" nowrap valign="top">int jenkinsTraubZeros           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const <a class="el" href="a00090.html">Polynomial</a>&lt; T &gt; &amp;&nbsp;</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>std::vector&lt; std::complex&lt; U &gt; &gt; &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>zeros</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>bool&nbsp;</td>          <td class="mdname" nowrap> <em>polish</em></td>        </tr>        <tr>          <td class="md"></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing="5" cellpadding="0" border="0">  <tr>    <td>      &nbsp;    </td>    <td><p>Jenkins-Traub polynomial zeros evaluator.<p>returns all zeros of polynomial <img class="formulaInl" alt="$P(x)$" src="form_0.png"><p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>P</em>&nbsp;</td><td>polynomial to evaluate. <em>T</em> coeficients type can be either real or complex.</td></tr>    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>zeros</em>&nbsp;</td><td>vector to hold zeros.</td></tr>    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>polish</em>&nbsp;</td><td>if set to <em>true</em>, the zeros will be polished by Newton-Raphson algorithm on the original polynomial before deflation. This 'quick and dirty' polishing can lead to problems on large polynomials.</td></tr>  </table></dl><dl compact><dt><b>Returns:</b></dt><dd>The number of zeros found. This number can be checked against the degree of <img class="formulaInl" alt="$P(x)$" src="form_0.png"> to check for errors.</dd></dl><dl compact><dt><b>See also:</b></dt><dd>class <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="a00104.html#l00055">55</a> of file <a class="el" href="a00104.html">jenkinstraub.h</a>.    </td>  </tr></table><a class="anchor" name="g8f609e24d651d3dcf78a90ebf4a92380"></a><!-- doxytag: member="laguerre.h::laguerreZeros" ref="g8f609e24d651d3dcf78a90ebf4a92380" args="(const Polynomial&lt; T &gt; &amp;P, std::vector&lt; std::complex&lt; U &gt; &gt; &amp;zeros, bool polish)" --><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&lt;class T, class U&gt; </td>        </tr>        <tr>          <td class="md" nowrap valign="top">int laguerreZeros           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const <a class="el" href="a00090.html">Polynomial</a>&lt; T &gt; &amp;&nbsp;</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>std::vector&lt; std::complex&lt; U &gt; &gt; &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>zeros</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>bool&nbsp;</td>          <td class="mdname" nowrap> <em>polish</em></td>        </tr>        <tr>          <td class="md"></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing="5" cellpadding="0" border="0">  <tr>    <td>      &nbsp;    </td>    <td><p>modified Laguerre polynomial zeros evaluator.<p>Returns all zeros of polynomial <img class="formulaInl" alt="$P(x)$" src="form_0.png"> .<p>This is a very good roots evaluator, that can be pushed to the limits. It will quickly find the roots of even quite large polynomials (&gt;1000 coeficients) in a reasonable amount of time.<p>It is also very precise and the roots usually will not need any further polishing.<p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>P</em>&nbsp;</td><td>polynomial to evaluate. <em>T</em> coeficients type can be either real or complex.</td></tr>    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>zeros</em>&nbsp;</td><td>vector to hold zeros.</td></tr>    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>polish</em>&nbsp;</td><td>if set to <em>true</em>, the zeros will be polished by Newton-Raphson algorithm on the original polynomial before deflation. This 'quick and dirty' polishing can lead to problems on large polynomials.</td></tr>  </table></dl><dl compact><dt><b>Returns:</b></dt><dd>The number of zeros found. This number can be checked against the degree of <img class="formulaInl" alt="$P(x)$" src="form_0.png"> to check for errors.</dd></dl><dl compact><dt><b>See also:</b></dt><dd>class <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="a00105.html#l00062">62</a> of file <a class="el" href="a00105.html">laguerre.h</a>.    </td>  </tr></table><a class="anchor" name="g255f8995a5a65456d0ac4b99a1d60325"></a><!-- doxytag: member="muller.h::mullerZeros" ref="g255f8995a5a65456d0ac4b99a1d60325" args="(const Polynomial&lt; T &gt; &amp;P, std::vector&lt; std::complex&lt; U &gt; &gt; &amp;zeros, bool polish)" --><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&lt;class T, class U&gt; </td>        </tr>        <tr>          <td class="md" nowrap valign="top">int mullerZeros           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const <a class="el" href="a00090.html">Polynomial</a>&lt; T &gt; &amp;&nbsp;</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>std::vector&lt; std::complex&lt; U &gt; &gt; &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>zeros</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>bool&nbsp;</td>          <td class="mdname" nowrap> <em>polish</em></td>        </tr>        <tr>          <td class="md"></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing="5" cellpadding="0" border="0">  <tr>    <td>      &nbsp;    </td>    <td><p>Muller'method polynomial roots evaluator.<p>returns all zeros of polynomial <img class="formulaInl" alt="$P(x)$" src="form_0.png"><p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>P</em>&nbsp;</td><td>polynomial to evaluate. <em>T</em> coeficients type can be either real or complex.</td></tr>    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>zeros</em>&nbsp;</td><td>vector to hold zeros.</td></tr>    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>polish</em>&nbsp;</td><td>if set to <em>true</em>, the zeros will be polished by Newton-Raphson algorithm on the original polynomial before deflation. This 'quick and dirty' polishing can lead to problems on large polynomials.</td></tr>  </table></dl><dl compact><dt><b>Returns:</b></dt><dd>The number of zeros found. This number can be checked against the degree of <img class="formulaInl" alt="$P(x)$" src="form_0.png"> to check for errors.</dd></dl><dl compact><dt><b>See also:</b></dt><dd>class <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="a00106.html#l00055">55</a> of file <a class="el" href="a00106.html">muller.h</a>.    </td>  </tr></table><a class="anchor" name="g7528de40f73b280a95202bc5b8947424"></a><!-- doxytag: member="polyzero.h::newtonZero" ref="g7528de40f73b280a95202bc5b8947424" args="(const Polynomial&lt; T &gt; &amp;p, U &amp;z, U &amp;pz, V &amp;mpz, bool adaptive=false)" --><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&lt;class T, class U, class V&gt; </td>        </tr>        <tr>          <td class="md" nowrap valign="top">bool newtonZero           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const <a class="el" href="a00090.html">Polynomial</a>&lt; T &gt; &amp;&nbsp;</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>U &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>z</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>U &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>pz</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>V &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>mpz</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>bool&nbsp;</td>          <td class="mdname" nowrap> <em>adaptive</em> = <code>false</code></td>        </tr>        <tr>          <td class="md"></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing="5" cellpadding="0" border="0">  <tr>    <td>      &nbsp;    </td>    <td><p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -