<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Bessel functions and related functions — mpmath v0.17 documentation</title> <link rel="stylesheet" href="../_static/default.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', VERSION: '0.17', COLLAPSE_MODINDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="top" title="mpmath v0.17 documentation" href="../index.html" /> <link rel="up" title="Mathematical functions" href="index.html" /> <link rel="next" title="Orthogonal polynomials" href="orthogonal.html" /> <link rel="prev" title="Exponential integrals and error functions" href="expintegrals.html" /> </head> <body> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="../modindex.html" title="Global Module Index" accesskey="M">modules</a> |</li> <li class="right" > <a href="orthogonal.html" title="Orthogonal polynomials" accesskey="N">next</a> |</li> <li class="right" > <a href="expintegrals.html" title="Exponential integrals and error functions" accesskey="P">previous</a> |</li> <li><a href="../index.html">mpmath v0.17 documentation</a> »</li> <li><a href="index.html" accesskey="U">Mathematical functions</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="bessel-functions-and-related-functions"> <h1>Bessel functions and related functions<a class="headerlink" href="#bessel-functions-and-related-functions" title="Permalink to this headline">¶</a></h1> <p>The functions in this section arise as solutions to various differential equations in physics, typically describing wavelike oscillatory behavior or a combination of oscillation and exponential decay or growth. Mathematically, they are special cases of the confluent hypergeometric functions <img class="math" src="../_images/math/6f7286e42826f1679e79de9429560a0d924791f1.png" alt="\,_0F_1"/>, <img class="math" src="../_images/math/ba4af6c1dfcc5d743f9d1fe0958e045fe27b68db.png" alt="\,_1F_1"/> and <img class="math" src="../_images/math/d77f72ad86839446a7161601fc130cf4c17097a2.png" alt="\,_1F_2"/> (see <a class="reference external" href="hypergeometric.html"><em>Hypergeometric functions</em></a>).</p> <div class="section" id="bessel-functions"> <h2>Bessel functions<a class="headerlink" href="#bessel-functions" title="Permalink to this headline">¶</a></h2> <div class="section" id="besselj"> <h3><tt class="xref docutils literal"><span class="pre">besselj()</span></tt><a class="headerlink" href="#besselj" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.besselj"> <tt class="descclassname">mpmath.</tt><tt class="descname">besselj</tt><big>(</big><em>n</em>, <em>x</em>, <em>derivative=0</em><big>)</big><a class="headerlink" href="#mpmath.besselj" title="Permalink to this definition">¶</a></dt> <dd><p><tt class="docutils literal"><span class="pre">besselj(n,</span> <span class="pre">x,</span> <span class="pre">derivative=0)</span></tt> gives the Bessel function of the first kind <img class="math" src="../_images/math/ea647045ebedb7454bd92eccace37cb7cc3860aa.png" alt="J_n(x)"/>. Bessel functions of the first kind are defined as solutions of the differential equation</p> <div class="math"> <p><img src="../_images/math/488c15966ba5f720b21f05ac84680a642c8618eb.png" alt="x^2 y'' + x y' + (x^2 - n^2) y = 0" /></p> </div><p>which appears, among other things, when solving the radial part of Laplace’s equation in cylindrical coordinates. This equation has two solutions for given <img class="math" src="../_images/math/174fadd07fd54c9afe288e96558c92e0c1da733a.png" alt="n"/>, where the <img class="math" src="../_images/math/8f1b0885911594adf0ef17ebf948221471a4998c.png" alt="J_n"/>-function is the solution that is nonsingular at <img class="math" src="../_images/math/2d348bde3e15456e71734dc2c56fc7425c95927f.png" alt="x = 0"/>. For positive integer <img class="math" src="../_images/math/174fadd07fd54c9afe288e96558c92e0c1da733a.png" alt="n"/>, <img class="math" src="../_images/math/ea647045ebedb7454bd92eccace37cb7cc3860aa.png" alt="J_n(x)"/> behaves roughly like a sine (odd <img class="math" src="../_images/math/174fadd07fd54c9afe288e96558c92e0c1da733a.png" alt="n"/>) or cosine (even <img class="math" src="../_images/math/174fadd07fd54c9afe288e96558c92e0c1da733a.png" alt="n"/>) multiplied by a magnitude factor that decays slowly as <img class="math" src="../_images/math/29660397659889f0872376af2cc3808491f75e77.png" alt="x \to \pm\infty"/>.</p> <p>Generally, <img class="math" src="../_images/math/8f1b0885911594adf0ef17ebf948221471a4998c.png" alt="J_n"/> is a special case of the hypergeometric function <img class="math" src="../_images/math/6f7286e42826f1679e79de9429560a0d924791f1.png" alt="\,_0F_1"/>:</p> <div class="math"> <p><img src="../_images/math/c59553c7c68863ac0915a7d3b385d5cad5c41422.png" alt="J_n(x) = \frac{x^n}{2^n \Gamma(n+1)} \,_0F_1\left(n+1,-\frac{x^2}{4}\right)" /></p> </div><p>With <em>derivative</em> = <img class="math" src="../_images/math/12b6f7c7839947d01728cbb9e7d8c78d91f4eff5.png" alt="m \ne 0"/>, the <img class="math" src="../_images/math/f5047d1e0cbb50ec208923a22cd517c55100fa7b.png" alt="m"/>-th derivative</p> <div class="math"> <p><img src="../_images/math/567d030c4e0843c5be65fd513a10ba77bb2a2a9d.png" alt="\frac{d^m}{dx^m} J_n(x)" /></p> </div><p>is computed.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Bessel function J_n(x) on the real line for n=0,1,2,3</span> <span class="n">j0</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besselj</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">j1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besselj</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">j2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besselj</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">j3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besselj</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">j0</span><span class="p">,</span><span class="n">j1</span><span class="p">,</span><span class="n">j2</span><span class="p">,</span><span class="n">j3</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">14</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/besselj.png" src="../_images/besselj.png" /> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Bessel function J_n(z) in the complex plane</span> <span class="n">cplot</span><span class="p">(</span><span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">besselj</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="n">points</span><span class="o">=</span><span class="mi">50000</span><span class="p">)</span> </pre></div> </div> <img alt="../_images/besselj_c.png" src="../_images/besselj_c.png" /> <p><strong>Examples</strong></p> <p>Evaluation is supported for arbitrary arguments, and at arbitrary precision:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">15</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span> <span class="go">-0.024777229528606</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mf">0.75</span><span class="p">)</span> <span class="go">0.000801070086542314</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1000</span><span class="n">j</span><span class="p">)</span> <span class="go">(-2.48071721019185e+432 + 6.41567059811949e-437j)</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mf">0.75</span><span class="n">j</span><span class="p">,</span> <span class="mi">3</span><span class="o">+</span><span class="mi">4</span><span class="n">j</span><span class="p">)</span> <span class="go">(-2.778118364828153309919653 - 1.5863603889018621585533j)</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">50</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">pi</span><span class="p">)</span> <span class="go">0.28461534317975275734531059968613140570981118184947</span> </pre></div> </div> <p>Arguments may be large:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">10000</span><span class="p">)</span> <span class="go">-0.007096160353388801477265164</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="o">**</span><span class="mi">10</span><span class="p">)</span> <span class="go">0.000002175591750246891726859055</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">10</span><span class="o">**</span><span class="mi">100</span><span class="p">)</span> <span class="go">7.337048736538615712436929e-51</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">10</span><span class="o">**</span><span class="mi">5</span><span class="o">*</span><span class="n">j</span><span class="p">)</span> <span class="go">(-3.540725411970948860173735e+43426 + 4.4949812409615803110051e-43433j)</span> </pre></div> </div> <p>The Bessel functions of the first kind satisfy simple symmetries around <img class="math" src="../_images/math/2d348bde3e15456e71734dc2c56fc7425c95927f.png" alt="x = 0"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">15</span> <span class="gp">>>> </span><span class="n">nprint</span><span class="p">([</span><span class="n">besselj</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">5</span><span class="p">)])</span> <span class="go">[1.0, 0.0, 0.0, 0.0, 0.0]</span> <span class="gp">>>> </span><span class="n">nprint</span><span class="p">([</span><span class="n">besselj</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">pi</span><span class="p">)</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">5</span><span class="p">)])</span> <span class="go">[-0.304242, 0.284615, 0.485434, 0.333458, 0.151425]</span> <span class="gp">>>> </span><span class="n">nprint</span><span class="p">([</span><span class="n">besselj</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="o">-</span><span class="n">pi</span><span class="p">)</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">5</span><span class="p">)])</span> <span class="go">[-0.304242, -0.284615, 0.485434, -0.333458, 0.151425]</span> </pre></div> </div> <p>Roots of Bessel functions are often used:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">nprint</span><span class="p">([</span><span class="n">findroot</span><span class="p">(</span><span class="n">j0</span><span class="p">,</span> <span class="n">k</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">11</span><span class="p">,</span> <span class="mi">14</span><span class="p">]])</span> <span class="go">[2.40483, 5.52008, 8.65373, 11.7915, 14.9309]</span> <span class="gp">>>> </span><span class="n">nprint</span><span class="p">([</span><span class="n">findroot</span><span class="p">(</span><span class="n">j1</span><span class="p">,</span> <span class="n">k</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">13</span><span class="p">,</span> <span class="mi">16</span><span class="p">]])</span> <span class="go">[3.83171, 7.01559, 10.1735, 13.3237, 16.4706]</span> </pre></div> </div> <p>The roots are not periodic, but the distance between successive roots asymptotically approaches <img class="math" src="../_images/math/9b9e16f8af4a3f8dd5091648bd482ba311843d25.png" alt="2 \pi"/>. Bessel functions of the first kind have the following normalization:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">quadosc</span><span class="p">(</span><span class="n">j0</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="n">inf</span><span class="p">],</span> <span class="n">period</span><span class="o">=</span><span class="mi">2</span><span class="o">*</span><span class="n">pi</span><span class="p">)</span> <span class="go">1.0</span> <span class="gp">>>> </span><span class="n">quadosc</span><span class="p">(</span><span class="n">j1</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="n">inf</span><span class="p">],</span> <span class="n">period</span><span class="o">=</span><span class="mi">2</span><span class="o">*</span><span class="n">pi</span><span class="p">)</span> <span class="go">1.0</span> </pre></div> </div> <p>For <img class="math" src="../_images/math/655abd0f4599d39449ed205b7366d023536bc4b8.png" alt="n = 1/2"/> or <img class="math" src="../_images/math/23496841b8b71cf72681ab8cff52898bf0d3c6f3.png" alt="n = -1/2"/>, the Bessel function reduces to a trigonometric function:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">x</span> <span class="o">=</span> <span class="mi">10</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">x</span><span class="p">),</span> <span class="n">sqrt</span><span class="p">(</span><span class="mi">2</span><span class="o">/</span><span class="p">(</span><span class="n">pi</span><span class="o">*</span><span class="n">x</span><span class="p">))</span><span class="o">*</span><span class="n">sin</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="go">(-0.13726373575505, -0.13726373575505)</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">x</span><span class="p">),</span> <span class="n">sqrt</span><span class="p">(</span><span class="mi">2</span><span class="o">/</span><span class="p">(</span><span class="n">pi</span><span class="o">*</span><span class="n">x</span><span class="p">))</span><span class="o">*</span><span class="n">cos</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="go">(-0.211708866331398, -0.211708866331398)</span> </pre></div> </div> <p>Derivatives of any order can be computed (negative orders correspond to integration):</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mf">7.5</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="go">-0.1352484275797055051822405</span> <span class="gp">>>> </span><span class="n">diff</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besselj</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">),</span> <span class="mf">7.5</span><span class="p">)</span> <span class="go">-0.1352484275797055051822405</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mf">7.5</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="go">-0.1377811164763244890135677</span> <span class="gp">>>> </span><span class="n">diff</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besselj</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">),</span> <span class="mf">7.5</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="go">-0.1377811164763244890135677</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mf">7.5</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">-</span> <span class="n">besselj</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mf">3.5</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">-0.1241343240399987693521378</span> <span class="gp">>>> </span><span class="n">quad</span><span class="p">(</span><span class="n">j0</span><span class="p">,</span> <span class="p">[</span><span class="mf">3.5</span><span class="p">,</span> <span class="mf">7.5</span><span class="p">])</span> <span class="go">-0.1241343240399987693521378</span> </pre></div> </div> <p>Differentiation with a noninteger order gives the fractional derivative in the sense of the Riemann-Liouville differintegral, as computed by <a title="mpmath.differint" class="reference external" href="../calculus/differentiation.html#mpmath.differint"><tt class="xref docutils literal"><span class="pre">differint()</span></tt></a>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">15</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">,</span> <span class="mf">0.75</span><span class="p">)</span> <span class="go">-0.385977722939384</span> <span class="gp">>>> </span><span class="n">differint</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besselj</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">x</span><span class="p">),</span> <span class="mf">3.5</span><span class="p">,</span> <span class="mf">0.75</span><span class="p">)</span> <span class="go">-0.385977722939384</span> </pre></div> </div> </dd></dl> <dl class="function"> <dt id="mpmath.j0"> <tt class="descclassname">mpmath.</tt><tt class="descname">j0</tt><big>(</big><em>x</em><big>)</big><a class="headerlink" href="#mpmath.j0" title="Permalink to this definition">¶</a></dt> <dd>Computes the Bessel function <img class="math" src="../_images/math/b132af25d497e487a2dc5039ace4083a421e27c2.png" alt="J_0(x)"/>. See <a title="mpmath.besselj" class="reference internal" href="#mpmath.besselj"><tt class="xref docutils literal"><span class="pre">besselj()</span></tt></a>.</dd></dl> <dl class="function"> <dt id="mpmath.j1"> <tt class="descclassname">mpmath.</tt><tt class="descname">j1</tt><big>(</big><em>x</em><big>)</big><a class="headerlink" href="#mpmath.j1" title="Permalink to this definition">¶</a></dt> <dd>Computes the Bessel function <img class="math" src="../_images/math/697a8b6212c15dabf7a1bcddae7bd8b28fc3a733.png" alt="J_1(x)"/>. See <a title="mpmath.besselj" class="reference internal" href="#mpmath.besselj"><tt class="xref docutils literal"><span class="pre">besselj()</span></tt></a>.</dd></dl> </div> <div class="section" id="bessely"> <h3><tt class="xref docutils literal"><span class="pre">bessely()</span></tt><a class="headerlink" href="#bessely" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.bessely"> <tt class="descclassname">mpmath.</tt><tt class="descname">bessely</tt><big>(</big><em>n</em>, <em>x</em>, <em>derivative=0</em><big>)</big><a class="headerlink" href="#mpmath.bessely" title="Permalink to this definition">¶</a></dt> <dd><p><tt class="docutils literal"><span class="pre">bessely(n,</span> <span class="pre">x,</span> <span class="pre">derivative=0)</span></tt> gives the Bessel function of the second kind,</p> <div class="math"> <p><img src="../_images/math/8ab8d5d6e975d4bfa57aa7bd8ba776b90ccfcc80.png" alt="Y_n(x) = \frac{J_n(x) \cos(\pi n) - J_{-n}(x)}{\sin(\pi n)}." /></p> </div><p>For <img class="math" src="../_images/math/174fadd07fd54c9afe288e96558c92e0c1da733a.png" alt="n"/> an integer, this formula should be understood as a limit. With <em>derivative</em> = <img class="math" src="../_images/math/12b6f7c7839947d01728cbb9e7d8c78d91f4eff5.png" alt="m \ne 0"/>, the <img class="math" src="../_images/math/f5047d1e0cbb50ec208923a22cd517c55100fa7b.png" alt="m"/>-th derivative</p> <div class="math"> <p><img src="../_images/math/3e4d9f3b8d33c2d717ce3c0e0fc96b9c328cbd9c.png" alt="\frac{d^m}{dx^m} Y_n(x)" /></p> </div><p>is computed.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Bessel function of 2nd kind Y_n(x) on the real line for n=0,1,2,3</span> <span class="n">y0</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">bessely</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">y1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">bessely</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">y2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">bessely</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">y3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">bessely</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">y0</span><span class="p">,</span><span class="n">y1</span><span class="p">,</span><span class="n">y2</span><span class="p">,</span><span class="n">y3</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">10</span><span class="p">],[</span><span class="o">-</span><span class="mi">4</span><span class="p">,</span><span class="mi">1</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/bessely.png" src="../_images/bessely.png" /> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Bessel function of 2nd kind Y_n(z) in the complex plane</span> <span class="n">cplot</span><span class="p">(</span><span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">bessely</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="n">points</span><span class="o">=</span><span class="mi">50000</span><span class="p">)</span> </pre></div> </div> <img alt="../_images/bessely_c.png" src="../_images/bessely_c.png" /> <p><strong>Examples</strong></p> <p>Some values of <img class="math" src="../_images/math/c02490e6584ade52848d2e75949f467d62b09feb.png" alt="Y_n(x)"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">bessely</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span> <span class="n">bessely</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span> <span class="n">bessely</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="go">(-inf, -inf, -inf)</span> <span class="gp">>>> </span><span class="n">bessely</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">pi</span><span class="p">)</span> <span class="go">0.3588729167767189594679827</span> <span class="gp">>>> </span><span class="n">bessely</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span> <span class="mi">3</span><span class="o">+</span><span class="mi">4</span><span class="n">j</span><span class="p">)</span> <span class="go">(9.242861436961450520325216 - 3.085042824915332562522402j)</span> </pre></div> </div> <p>Arguments may be large:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">bessely</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">10000</span><span class="p">)</span> <span class="go">0.00364780555898660588668872</span> <span class="gp">>>> </span><span class="n">bessely</span><span class="p">(</span><span class="mf">2.5</span><span class="p">,</span> <span class="mi">10</span><span class="o">**</span><span class="mi">50</span><span class="p">)</span> <span class="go">-4.8952500412050989295774e-26</span> <span class="gp">>>> </span><span class="n">bessely</span><span class="p">(</span><span class="mf">2.5</span><span class="p">,</span> <span class="o">-</span><span class="mi">10</span><span class="o">**</span><span class="mi">50</span><span class="p">)</span> <span class="go">(0.0 + 4.8952500412050989295774e-26j)</span> </pre></div> </div> <p>Derivatives and antiderivatives of any order can be computed:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">bessely</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="go">0.3842618820422660066089231</span> <span class="gp">>>> </span><span class="n">diff</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">bessely</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="n">x</span><span class="p">),</span> <span class="mf">3.5</span><span class="p">)</span> <span class="go">0.3842618820422660066089231</span> <span class="gp">>>> </span><span class="n">bessely</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="go">-0.2066598304156764337900417</span> <span class="gp">>>> </span><span class="n">diff</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">bessely</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">x</span><span class="p">),</span> <span class="mf">3.5</span><span class="p">)</span> <span class="go">-0.2066598304156764337900417</span> <span class="gp">>>> </span><span class="n">diff</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">bessely</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="n">x</span><span class="p">),</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="go">-208173867409.5547350101511</span> <span class="gp">>>> </span><span class="n">bessely</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="go">-208173867409.5547350101511</span> <span class="gp">>>> </span><span class="n">bessely</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mf">100.5</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span> <span class="go">0.02668487547301372334849043</span> <span class="gp">>>> </span><span class="n">quad</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">bessely</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">),</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">])</span> <span class="go">-1.377046859093181969213262</span> <span class="gp">>>> </span><span class="n">bessely</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">-</span> <span class="n">bessely</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">-1.377046859093181969213262</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="besseli"> <h3><tt class="xref docutils literal"><span class="pre">besseli()</span></tt><a class="headerlink" href="#besseli" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.besseli"> <tt class="descclassname">mpmath.</tt><tt class="descname">besseli</tt><big>(</big><em>n</em>, <em>x</em>, <em>derivative=0</em><big>)</big><a class="headerlink" href="#mpmath.besseli" title="Permalink to this definition">¶</a></dt> <dd><p><tt class="docutils literal"><span class="pre">besseli(n,</span> <span class="pre">x,</span> <span class="pre">derivative=0)</span></tt> gives the modified Bessel function of the first kind,</p> <div class="math"> <p><img src="../_images/math/90d56cf187a3844f21ebb24cadefae4606e44f95.png" alt="I_n(x) = i^{-n} J_n(ix)." /></p> </div><p>With <em>derivative</em> = <img class="math" src="../_images/math/12b6f7c7839947d01728cbb9e7d8c78d91f4eff5.png" alt="m \ne 0"/>, the <img class="math" src="../_images/math/f5047d1e0cbb50ec208923a22cd517c55100fa7b.png" alt="m"/>-th derivative</p> <div class="math"> <p><img src="../_images/math/9f949a951cb6c5eb1c11590e3b3fb00ae44b1b03.png" alt="\frac{d^m}{dx^m} I_n(x)" /></p> </div><p>is computed.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Modified Bessel function I_n(x) on the real line for n=0,1,2,3</span> <span class="n">i0</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besseli</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">i1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besseli</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">i2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besseli</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">i3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besseli</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">i0</span><span class="p">,</span><span class="n">i1</span><span class="p">,</span><span class="n">i2</span><span class="p">,</span><span class="n">i3</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/besseli.png" src="../_images/besseli.png" /> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Modified Bessel function I_n(z) in the complex plane</span> <span class="n">cplot</span><span class="p">(</span><span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">besseli</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="n">points</span><span class="o">=</span><span class="mi">50000</span><span class="p">)</span> </pre></div> </div> <img alt="../_images/besseli_c.png" src="../_images/besseli_c.png" /> <p><strong>Examples</strong></p> <p>Some values of <img class="math" src="../_images/math/4f48b18123c5cde1775959baed7933a17f8d58f7.png" alt="I_n(x)"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">besseli</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="go">1.0</span> <span class="gp">>>> </span><span class="n">besseli</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">besseli</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">1.266065877752008335598245</span> <span class="gp">>>> </span><span class="n">besseli</span><span class="p">(</span><span class="mf">3.5</span><span class="p">,</span> <span class="mi">2</span><span class="o">+</span><span class="mi">3</span><span class="n">j</span><span class="p">)</span> <span class="go">(-0.2904369752642538144289025 - 0.4469098397654815837307006j)</span> </pre></div> </div> <p>Arguments may be large:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">besseli</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span> <span class="go">2.480717210191852440616782e+432</span> <span class="gp">>>> </span><span class="n">besseli</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">10</span><span class="o">**</span><span class="mi">10</span><span class="p">)</span> <span class="go">4.299602851624027900335391e+4342944813</span> <span class="gp">>>> </span><span class="n">besseli</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">6000</span><span class="o">+</span><span class="mi">10000</span><span class="n">j</span><span class="p">)</span> <span class="go">(-2.114650753239580827144204e+2603 + 4.385040221241629041351886e+2602j)</span> </pre></div> </div> <p>For integers <img class="math" src="../_images/math/174fadd07fd54c9afe288e96558c92e0c1da733a.png" alt="n"/>, the following integral representation holds:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">15</span> <span class="gp">>>> </span><span class="n">n</span> <span class="o">=</span> <span class="mi">3</span> <span class="gp">>>> </span><span class="n">x</span> <span class="o">=</span> <span class="mf">2.3</span> <span class="gp">>>> </span><span class="n">quad</span><span class="p">(</span><span class="k">lambda</span> <span class="n">t</span><span class="p">:</span> <span class="n">exp</span><span class="p">(</span><span class="n">x</span><span class="o">*</span><span class="n">cos</span><span class="p">(</span><span class="n">t</span><span class="p">))</span><span class="o">*</span><span class="n">cos</span><span class="p">(</span><span class="n">n</span><span class="o">*</span><span class="n">t</span><span class="p">),</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="n">pi</span><span class="p">])</span><span class="o">/</span><span class="n">pi</span> <span class="go">0.349223221159309</span> <span class="gp">>>> </span><span class="n">besseli</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="go">0.349223221159309</span> </pre></div> </div> <p>Derivatives and antiderivatives of any order can be computed:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span> <span class="gp">>>> </span><span class="n">besseli</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mf">7.5</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="go">195.8229038931399062565883</span> <span class="gp">>>> </span><span class="n">diff</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besseli</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">),</span> <span class="mf">7.5</span><span class="p">)</span> <span class="go">195.8229038931399062565883</span> <span class="gp">>>> </span><span class="n">besseli</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mf">7.5</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="go">153.3296508971734525525176</span> <span class="gp">>>> </span><span class="n">diff</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besseli</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">),</span> <span class="mf">7.5</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="go">153.3296508971734525525176</span> <span class="gp">>>> </span><span class="n">besseli</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mf">7.5</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">-</span> <span class="n">besseli</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mf">3.5</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">202.5043900051930141956876</span> <span class="gp">>>> </span><span class="n">quad</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besseli</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">),</span> <span class="p">[</span><span class="mf">3.5</span><span class="p">,</span> <span class="mf">7.5</span><span class="p">])</span> <span class="go">202.5043900051930141956876</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="besselk"> <h3><tt class="xref docutils literal"><span class="pre">besselk()</span></tt><a class="headerlink" href="#besselk" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.besselk"> <tt class="descclassname">mpmath.</tt><tt class="descname">besselk</tt><big>(</big><em>n</em>, <em>x</em><big>)</big><a class="headerlink" href="#mpmath.besselk" title="Permalink to this definition">¶</a></dt> <dd><p><tt class="docutils literal"><span class="pre">besselk(n,</span> <span class="pre">x)</span></tt> gives the modified Bessel function of the second kind,</p> <div class="math"> <p><img src="../_images/math/c7bd979e358f199bdb7bd5dd3d66447f8fb2e348.png" alt="K_n(x) = \frac{\pi}{2} \frac{I_{-n}(x)-I_{n}(x)}{\sin(\pi n)}" /></p> </div><p>For <img class="math" src="../_images/math/174fadd07fd54c9afe288e96558c92e0c1da733a.png" alt="n"/> an integer, this formula should be understood as a limit.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Modified Bessel function of 2nd kind K_n(x) on the real line for n=0,1,2,3</span> <span class="n">k0</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besselk</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">k1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besselk</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">k2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besselk</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">k3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">besselk</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">k0</span><span class="p">,</span><span class="n">k1</span><span class="p">,</span><span class="n">k2</span><span class="p">,</span><span class="n">k3</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">8</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/besselk.png" src="../_images/besselk.png" /> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Modified Bessel function of 2nd kind K_n(z) in the complex plane</span> <span class="n">cplot</span><span class="p">(</span><span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">besselk</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="n">points</span><span class="o">=</span><span class="mi">50000</span><span class="p">)</span> </pre></div> </div> <img alt="../_images/besselk_c.png" src="../_images/besselk_c.png" /> <p><strong>Examples</strong></p> <p>Evaluation is supported for arbitrary complex arguments:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">besselk</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">0.4210244382407083333356274</span> <span class="gp">>>> </span><span class="n">besselk</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">(0.4210244382407083333356274 - 3.97746326050642263725661j)</span> <span class="gp">>>> </span><span class="n">besselk</span><span class="p">(</span><span class="mf">3.5</span><span class="p">,</span> <span class="mi">2</span><span class="o">+</span><span class="mi">3</span><span class="n">j</span><span class="p">)</span> <span class="go">(-0.02090732889633760668464128 + 0.2464022641351420167819697j)</span> <span class="gp">>>> </span><span class="n">besselk</span><span class="p">(</span><span class="mi">2</span><span class="o">+</span><span class="mi">3</span><span class="n">j</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)</span> <span class="go">(0.9615816021726349402626083 + 0.1918250181801757416908224j)</span> </pre></div> </div> <p>Arguments may be large:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">besselk</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span> <span class="go">4.656628229175902018939005e-45</span> <span class="gp">>>> </span><span class="n">besselk</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">10</span><span class="o">**</span><span class="mi">6</span><span class="p">)</span> <span class="go">4.131967049321725588398296e-434298</span> <span class="gp">>>> </span><span class="n">besselk</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">10</span><span class="o">**</span><span class="mi">6</span><span class="o">*</span><span class="n">j</span><span class="p">)</span> <span class="go">(0.001140348428252385844876706 - 0.0005200017201681152909000961j)</span> <span class="gp">>>> </span><span class="n">besselk</span><span class="p">(</span><span class="mf">4.5</span><span class="p">,</span> <span class="n">fmul</span><span class="p">(</span><span class="mi">10</span><span class="o">**</span><span class="mi">50</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">exact</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span> <span class="go">(1.561034538142413947789221e-26 + 1.243554598118700063281496e-25j)</span> </pre></div> </div> <p>The point <img class="math" src="../_images/math/2d348bde3e15456e71734dc2c56fc7425c95927f.png" alt="x = 0"/> is a singularity (logarithmic if <img class="math" src="../_images/math/2d6fc266463b33c8b1c079a50909f3fd03ed5ffd.png" alt="n = 0"/>):</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">besselk</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="go">+inf</span> <span class="gp">>>> </span><span class="n">besselk</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="go">+inf</span> <span class="gp">>>> </span><span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="o">-</span><span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">):</span> <span class="gp">... </span> <span class="k">print</span><span class="p">(</span><span class="n">besselk</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="s">'1e-1000'</span><span class="p">))</span> <span class="gp">...</span> <span class="go">4.8e+4001</span> <span class="go">8.0e+3000</span> <span class="go">2.0e+2000</span> <span class="go">1.0e+1000</span> <span class="go">2302.701024509704096466802</span> <span class="go">1.0e+1000</span> <span class="go">2.0e+2000</span> <span class="go">8.0e+3000</span> <span class="go">4.8e+4001</span> </pre></div> </div> </dd></dl> </div> </div> <div class="section" id="bessel-function-zeros"> <h2>Bessel function zeros<a class="headerlink" href="#bessel-function-zeros" title="Permalink to this headline">¶</a></h2> <div class="section" id="besseljzero"> <h3><tt class="xref docutils literal"><span class="pre">besseljzero()</span></tt><a class="headerlink" href="#besseljzero" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.besseljzero"> <tt class="descclassname">mpmath.</tt><tt class="descname">besseljzero</tt><big>(</big><em>v</em>, <em>m</em>, <em>derivative=0</em><big>)</big><a class="headerlink" href="#mpmath.besseljzero" title="Permalink to this definition">¶</a></dt> <dd><p>For a real order <img class="math" src="../_images/math/e3bbba7d73d004af3d723d777f21ee0ee0349ae0.png" alt="\nu \ge 0"/> and a positive integer <img class="math" src="../_images/math/f5047d1e0cbb50ec208923a22cd517c55100fa7b.png" alt="m"/>, returns <img class="math" src="../_images/math/f0c76bff3ecf3d980cb4b7c8a54fd8af691f6fc2.png" alt="j_{\nu,m}"/>, the <img class="math" src="../_images/math/f5047d1e0cbb50ec208923a22cd517c55100fa7b.png" alt="m"/>-th positive zero of the Bessel function of the first kind <img class="math" src="../_images/math/ebc4e9db822f2d8588edf4495392eed13b58d208.png" alt="J_{\nu}(z)"/> (see <a title="mpmath.besselj" class="reference internal" href="#mpmath.besselj"><tt class="xref docutils literal"><span class="pre">besselj()</span></tt></a>). Alternatively, with <em>derivative=1</em>, gives the first nonnegative simple zero <img class="math" src="../_images/math/d1e21b64366b776bb51296f82bfa667c4335f530.png" alt="j'_{\nu,m}"/> of <img class="math" src="../_images/math/64c173c767fb6ce33ca55486d35fb0e2a12c21ec.png" alt="J'_{\nu}(z)"/>.</p> <p>The indexing convention is that used by Abramowitz & Stegun and the DLMF. Note the special case <img class="math" src="../_images/math/bfa9b3c6301b618a88aa6b21cb7b2296ae31cbde.png" alt="j'_{0,1} = 0"/>, while all other zeros are positive. In effect, only simple zeros are counted (all zeros of Bessel functions are simple except possibly <img class="math" src="../_images/math/aa9f0d97d2f39f78f05e05da40bf04f5a7c0726c.png" alt="z = 0"/>) and <img class="math" src="../_images/math/f0c76bff3ecf3d980cb4b7c8a54fd8af691f6fc2.png" alt="j_{\nu,m}"/> becomes a monotonic function of both <img class="math" src="../_images/math/d6a7ccf879c4a4fe694033606332cb83806db296.png" alt="\nu"/> and <img class="math" src="../_images/math/f5047d1e0cbb50ec208923a22cd517c55100fa7b.png" alt="m"/>.</p> <p>The zeros are interlaced according to the inequalities</p> <div class="math"> <p><img src="../_images/math/e81b60a6336a2efbf9ab8683866176100b94b209.png" alt="j'_{\nu,k} < j_{\nu,k} < j'_{\nu,k+1} j_{\nu,1} < j_{\nu+1,2} < j_{\nu,2} < j_{\nu+1,2} < j_{\nu,3} < \cdots" /></p> </div><p><strong>Examples</strong></p> <p>Initial zeros of the Bessel functions <img class="math" src="../_images/math/814d87dc74cdefa889e1f3e23b0aa598b626ffb6.png" alt="J_0(z), J_1(z), J_2(z)"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span> <span class="go">2.404825557695772768621632</span> <span class="go">5.520078110286310649596604</span> <span class="go">8.653727912911012216954199</span> <span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span> <span class="go">3.831705970207512315614436</span> <span class="go">7.01558666981561875353705</span> <span class="go">10.17346813506272207718571</span> <span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span> <span class="go">5.135622301840682556301402</span> <span class="go">8.417244140399864857783614</span> <span class="go">11.61984117214905942709415</span> </pre></div> </div> <p>Initial zeros of <img class="math" src="../_images/math/3a372a5d8392018748c975d5525cc3d5a79154de.png" alt="J'_0(z), J'_1(z), J'_2(z)"/>:</p> <div class="highlight-python"><pre>0.0 3.831705970207512315614436 7.01558666981561875353705 >>> besseljzero(1,1,1); besseljzero(1,2,1); besseljzero(1,3,1) 1.84118378134065930264363 5.331442773525032636884016 8.536316366346285834358961 >>> besseljzero(2,1,1); besseljzero(2,2,1); besseljzero(2,3,1) 3.054236928227140322755932 6.706133194158459146634394 9.969467823087595793179143</pre> </div> <p>Zeros with large index:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">100</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1000</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10000</span><span class="p">)</span> <span class="go">313.3742660775278447196902</span> <span class="go">3140.807295225078628895545</span> <span class="go">31415.14114171350798533666</span> <span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">100</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">1000</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">10000</span><span class="p">)</span> <span class="go">321.1893195676003157339222</span> <span class="go">3148.657306813047523500494</span> <span class="go">31422.9947255486291798943</span> <span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1000</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10000</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">311.8018681873704508125112</span> <span class="go">3139.236339643802482833973</span> <span class="go">31413.57032947022399485808</span> </pre></div> </div> <p>Zeros of functions with large order:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">57.11689916011917411936228</span> <span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="go">62.80769876483536093435393</span> <span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">100</span><span class="p">)</span> <span class="go">388.6936600656058834640981</span> <span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">52.99764038731665010944037</span> <span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">60.02631933279942589882363</span> <span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">387.1083151608726181086283</span> </pre></div> </div> <p>Zeros of functions with fractional order:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">besseljzero</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mf">1.5</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besseljzero</span><span class="p">(</span><span class="mf">2.25</span><span class="p">,</span><span class="mi">4</span><span class="p">)</span> <span class="go">3.141592653589793238462643</span> <span class="go">4.493409457909064175307881</span> <span class="go">15.15657692957458622921634</span> </pre></div> </div> <p>Both <img class="math" src="../_images/math/ebc4e9db822f2d8588edf4495392eed13b58d208.png" alt="J_{\nu}(z)"/> and <img class="math" src="../_images/math/64c173c767fb6ce33ca55486d35fb0e2a12c21ec.png" alt="J'_{\nu}(z)"/> can be expressed as infinite products over their zeros:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">v</span><span class="p">,</span><span class="n">z</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> <span class="n">mpf</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="gp">>>> </span><span class="p">(</span><span class="n">z</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">**</span><span class="n">v</span><span class="o">/</span><span class="n">gamma</span><span class="p">(</span><span class="n">v</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">*</span> \ <span class="gp">... </span> <span class="n">nprod</span><span class="p">(</span><span class="k">lambda</span> <span class="n">k</span><span class="p">:</span> <span class="mi">1</span><span class="o">-</span><span class="p">(</span><span class="n">z</span><span class="o">/</span><span class="n">besseljzero</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">k</span><span class="p">))</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="n">inf</span><span class="p">])</span> <span class="gp">...</span> <span class="go">0.1149034849319004804696469</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">0.1149034849319004804696469</span> <span class="gp">>>> </span><span class="p">(</span><span class="n">z</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">**</span><span class="p">(</span><span class="n">v</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="o">/</span><span class="n">gamma</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="o">*</span> \ <span class="gp">... </span> <span class="n">nprod</span><span class="p">(</span><span class="k">lambda</span> <span class="n">k</span><span class="p">:</span> <span class="mi">1</span><span class="o">-</span><span class="p">(</span><span class="n">z</span><span class="o">/</span><span class="n">besseljzero</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">k</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="n">inf</span><span class="p">])</span> <span class="gp">...</span> <span class="go">0.2102436158811325550203884</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">0.2102436158811325550203884</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="besselyzero"> <h3><tt class="xref docutils literal"><span class="pre">besselyzero()</span></tt><a class="headerlink" href="#besselyzero" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.besselyzero"> <tt class="descclassname">mpmath.</tt><tt class="descname">besselyzero</tt><big>(</big><em>v</em>, <em>m</em>, <em>derivative=0</em><big>)</big><a class="headerlink" href="#mpmath.besselyzero" title="Permalink to this definition">¶</a></dt> <dd><p>For a real order <img class="math" src="../_images/math/e3bbba7d73d004af3d723d777f21ee0ee0349ae0.png" alt="\nu \ge 0"/> and a positive integer <img class="math" src="../_images/math/f5047d1e0cbb50ec208923a22cd517c55100fa7b.png" alt="m"/>, returns <img class="math" src="../_images/math/e1ac61f7727a776d8fa2438c8e2d2dd218f659cb.png" alt="y_{\nu,m}"/>, the <img class="math" src="../_images/math/f5047d1e0cbb50ec208923a22cd517c55100fa7b.png" alt="m"/>-th positive zero of the Bessel function of the second kind <img class="math" src="../_images/math/b14a39354989b519a311fd9df9cae443ff311fb9.png" alt="Y_{\nu}(z)"/> (see <a title="mpmath.bessely" class="reference internal" href="#mpmath.bessely"><tt class="xref docutils literal"><span class="pre">bessely()</span></tt></a>). Alternatively, with <em>derivative=1</em>, gives the first positive zero <img class="math" src="../_images/math/e52f53992cd3d6a869b01795b112b03edfbae25d.png" alt="y'_{\nu,m}"/> of <img class="math" src="../_images/math/eb9a9849aab133ffc4ab3dea57956b4d98b441d3.png" alt="Y'_{\nu}(z)"/>.</p> <p>The zeros are interlaced according to the inequalities</p> <div class="math"> <p><img src="../_images/math/9c9200ff44c4ce80231f022e9736d4f0db1b2d73.png" alt="y_{\nu,k} < y'_{\nu,k} < y_{\nu,k+1} y_{\nu,1} < y_{\nu+1,2} < y_{\nu,2} < y_{\nu+1,2} < y_{\nu,3} < \cdots" /></p> </div><p><strong>Examples</strong></p> <p>Initial zeros of the Bessel functions <img class="math" src="../_images/math/3e5f7855dca6b8e9fa64b5ce4158aa969d3f6167.png" alt="Y_0(z), Y_1(z), Y_2(z)"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span> <span class="go">0.8935769662791675215848871</span> <span class="go">3.957678419314857868375677</span> <span class="go">7.086051060301772697623625</span> <span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span> <span class="go">2.197141326031017035149034</span> <span class="go">5.429681040794135132772005</span> <span class="go">8.596005868331168926429606</span> <span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span> <span class="go">3.384241767149593472701426</span> <span class="go">6.793807513268267538291167</span> <span class="go">10.02347797936003797850539</span> </pre></div> </div> <p>Initial zeros of <img class="math" src="../_images/math/4dd4208e7c6e8d8955d50287bb00b62965bf2181.png" alt="Y'_0(z), Y'_1(z), Y'_2(z)"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">2.197141326031017035149034</span> <span class="go">5.429681040794135132772005</span> <span class="go">8.596005868331168926429606</span> <span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">3.683022856585177699898967</span> <span class="go">6.941499953654175655751944</span> <span class="go">10.12340465543661307978775</span> <span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">5.002582931446063945200176</span> <span class="go">8.350724701413079526349714</span> <span class="go">11.57419546521764654624265</span> </pre></div> </div> <p>Zeros with large index:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">100</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1000</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10000</span><span class="p">)</span> <span class="go">311.8034717601871549333419</span> <span class="go">3139.236498918198006794026</span> <span class="go">31413.57034538691205229188</span> <span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">100</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">1000</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">10000</span><span class="p">)</span> <span class="go">319.6183338562782156235062</span> <span class="go">3147.086508524556404473186</span> <span class="go">31421.42392920214673402828</span> <span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1000</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10000</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">313.3726705426359345050449</span> <span class="go">3140.807136030340213610065</span> <span class="go">31415.14112579761578220175</span> </pre></div> </div> <p>Zeros of functions with large order:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">53.50285882040036394680237</span> <span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="go">60.11244442774058114686022</span> <span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">100</span><span class="p">)</span> <span class="go">387.1096509824943957706835</span> <span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">56.96290427516751320063605</span> <span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">62.74888166945933944036623</span> <span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">388.6923300548309258355475</span> </pre></div> </div> <p>Zeros of functions with fractional order:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">besselyzero</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mf">1.5</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">besselyzero</span><span class="p">(</span><span class="mf">2.25</span><span class="p">,</span><span class="mi">4</span><span class="p">)</span> <span class="go">1.570796326794896619231322</span> <span class="go">2.798386045783887136720249</span> <span class="go">13.56721208770735123376018</span> </pre></div> </div> </dd></dl> </div> </div> <div class="section" id="hankel-functions"> <h2>Hankel functions<a class="headerlink" href="#hankel-functions" title="Permalink to this headline">¶</a></h2> <div class="section" id="hankel1"> <h3><tt class="xref docutils literal"><span class="pre">hankel1()</span></tt><a class="headerlink" href="#hankel1" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.hankel1"> <tt class="descclassname">mpmath.</tt><tt class="descname">hankel1</tt><big>(</big><em>n</em>, <em>x</em><big>)</big><a class="headerlink" href="#mpmath.hankel1" title="Permalink to this definition">¶</a></dt> <dd><p><tt class="docutils literal"><span class="pre">hankel1(n,x)</span></tt> computes the Hankel function of the first kind, which is the complex combination of Bessel functions given by</p> <div class="math"> <p><img src="../_images/math/8e7d93429a85ca90218c19c862111817816501b5.png" alt="H_n^{(1)}(x) = J_n(x) + i Y_n(x)." /></p> </div><p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Hankel function H1_n(x) on the real line for n=0,1,2,3</span> <span class="n">h0</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">hankel1</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">h1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">hankel1</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">h2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">hankel1</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">h3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">hankel1</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">h0</span><span class="p">,</span><span class="n">h1</span><span class="p">,</span><span class="n">h2</span><span class="p">,</span><span class="n">h3</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">6</span><span class="p">],[</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/hankel1.png" src="../_images/hankel1.png" /> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Hankel function H1_n(z) in the complex plane</span> <span class="n">cplot</span><span class="p">(</span><span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">hankel1</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="n">points</span><span class="o">=</span><span class="mi">50000</span><span class="p">)</span> </pre></div> </div> <img alt="../_images/hankel1_c.png" src="../_images/hankel1_c.png" /> <p><strong>Examples</strong></p> <p>The Hankel function is generally complex-valued:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">hankel1</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="n">pi</span><span class="p">)</span> <span class="go">(0.4854339326315091097054957 - 0.0999007139290278787734903j)</span> <span class="gp">>>> </span><span class="n">hankel1</span><span class="p">(</span><span class="mf">3.5</span><span class="p">,</span> <span class="n">pi</span><span class="p">)</span> <span class="go">(0.2340002029630507922628888 - 0.6419643823412927142424049j)</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="hankel2"> <h3><tt class="xref docutils literal"><span class="pre">hankel2()</span></tt><a class="headerlink" href="#hankel2" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.hankel2"> <tt class="descclassname">mpmath.</tt><tt class="descname">hankel2</tt><big>(</big><em>n</em>, <em>x</em><big>)</big><a class="headerlink" href="#mpmath.hankel2" title="Permalink to this definition">¶</a></dt> <dd><p><tt class="docutils literal"><span class="pre">hankel2(n,x)</span></tt> computes the Hankel function of the second kind, which is the complex combination of Bessel functions given by</p> <div class="math"> <p><img src="../_images/math/af57e9a9e268f0523c7f7b8631a1c3f11e3593bd.png" alt="H_n^{(2)}(x) = J_n(x) - i Y_n(x)." /></p> </div><p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Hankel function H2_n(x) on the real line for n=0,1,2,3</span> <span class="n">h0</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">hankel2</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">h1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">hankel2</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">h2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">hankel2</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">h3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">hankel2</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">h0</span><span class="p">,</span><span class="n">h1</span><span class="p">,</span><span class="n">h2</span><span class="p">,</span><span class="n">h3</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">6</span><span class="p">],[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/hankel2.png" src="../_images/hankel2.png" /> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Hankel function H2_n(z) in the complex plane</span> <span class="n">cplot</span><span class="p">(</span><span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">hankel2</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="n">points</span><span class="o">=</span><span class="mi">50000</span><span class="p">)</span> </pre></div> </div> <img alt="../_images/hankel2_c.png" src="../_images/hankel2_c.png" /> <p><strong>Examples</strong></p> <p>The Hankel function is generally complex-valued:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">hankel2</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="n">pi</span><span class="p">)</span> <span class="go">(0.4854339326315091097054957 + 0.0999007139290278787734903j)</span> <span class="gp">>>> </span><span class="n">hankel2</span><span class="p">(</span><span class="mf">3.5</span><span class="p">,</span> <span class="n">pi</span><span class="p">)</span> <span class="go">(0.2340002029630507922628888 + 0.6419643823412927142424049j)</span> </pre></div> </div> </dd></dl> </div> </div> <div class="section" id="kelvin-functions"> <h2>Kelvin functions<a class="headerlink" href="#kelvin-functions" title="Permalink to this headline">¶</a></h2> <div class="section" id="ber"> <h3><tt class="xref docutils literal"><span class="pre">ber()</span></tt><a class="headerlink" href="#ber" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.ber"> <tt class="descclassname">mpmath.</tt><tt class="descname">ber</tt><big>(</big><em>ctx</em>, <em>n</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.ber" title="Permalink to this definition">¶</a></dt> <dd><p>Computes the Kelvin function ber, which for real arguments gives the real part of the Bessel J function of a rotated argument</p> <div class="math"> <p><img src="../_images/math/ab279e41abc242f2fe94083dc6d22fc657ee21ee.png" alt="J_n\left(x e^{3\pi i/4}\right) = \mathrm{ber}_n(x) + i \mathrm{bei}_n(x)." /></p> </div><p>The imaginary part is given by <a title="mpmath.bei" class="reference internal" href="#mpmath.bei"><tt class="xref docutils literal"><span class="pre">bei()</span></tt></a>.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Kelvin functions ber_n(x) and bei_n(x) on the real line for n=0,2</span> <span class="n">f0</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">ber</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">f1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">bei</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">f2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">ber</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">f3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">bei</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">f0</span><span class="p">,</span><span class="n">f1</span><span class="p">,</span><span class="n">f2</span><span class="p">,</span><span class="n">f3</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">10</span><span class="p">],[</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/ber.png" src="../_images/ber.png" /> <p><strong>Examples</strong></p> <p>Verifying the defining relation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">n</span><span class="p">,</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> <span class="mf">3.5</span> <span class="gp">>>> </span><span class="n">ber</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="go">1.442338852571888752631129</span> <span class="gp">>>> </span><span class="n">bei</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="go">-0.948359035324558320217678</span> <span class="gp">>>> </span><span class="n">besselj</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">x</span><span class="o">*</span><span class="n">root</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">8</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span> <span class="go">(1.442338852571888752631129 - 0.948359035324558320217678j)</span> </pre></div> </div> <p>The ber and bei functions are also defined by analytic continuation for complex arguments:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">ber</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">j</span><span class="p">,</span> <span class="mi">2</span><span class="o">+</span><span class="mi">3</span><span class="n">j</span><span class="p">)</span> <span class="go">(4.675445984756614424069563 - 15.84901771719130765656316j)</span> <span class="gp">>>> </span><span class="n">bei</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">j</span><span class="p">,</span> <span class="mi">2</span><span class="o">+</span><span class="mi">3</span><span class="n">j</span><span class="p">)</span> <span class="go">(15.83886679193707699364398 + 4.684053288183046528703611j)</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="bei"> <h3><tt class="xref docutils literal"><span class="pre">bei()</span></tt><a class="headerlink" href="#bei" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.bei"> <tt class="descclassname">mpmath.</tt><tt class="descname">bei</tt><big>(</big><em>ctx</em>, <em>n</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.bei" title="Permalink to this definition">¶</a></dt> <dd>Computes the Kelvin function bei, which for real arguments gives the imaginary part of the Bessel J function of a rotated argument. See <a title="mpmath.ber" class="reference internal" href="#mpmath.ber"><tt class="xref docutils literal"><span class="pre">ber()</span></tt></a>.</dd></dl> </div> <div class="section" id="ker"> <h3><tt class="xref docutils literal"><span class="pre">ker()</span></tt><a class="headerlink" href="#ker" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.ker"> <tt class="descclassname">mpmath.</tt><tt class="descname">ker</tt><big>(</big><em>ctx</em>, <em>n</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.ker" title="Permalink to this definition">¶</a></dt> <dd><p>Computes the Kelvin function ker, which for real arguments gives the real part of the (rescaled) Bessel K function of a rotated argument</p> <div class="math"> <p><img src="../_images/math/6835a9effd204ccf7d99d29b02276163f571e1de.png" alt="e^{-\pi i/2} K_n\left(x e^{3\pi i/4}\right) = \mathrm{ker}_n(x) + i \mathrm{kei}_n(x)." /></p> </div><p>The imaginary part is given by <a title="mpmath.kei" class="reference internal" href="#mpmath.kei"><tt class="xref docutils literal"><span class="pre">kei()</span></tt></a>.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Kelvin functions ker_n(x) and kei_n(x) on the real line for n=0,2</span> <span class="n">f0</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">ker</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">f1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">kei</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">f2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">ker</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">f3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">kei</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">f0</span><span class="p">,</span><span class="n">f1</span><span class="p">,</span><span class="n">f2</span><span class="p">,</span><span class="n">f3</span><span class="p">],[</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">],[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">4</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/ker.png" src="../_images/ker.png" /> <p><strong>Examples</strong></p> <p>Verifying the defining relation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">n</span><span class="p">,</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> <span class="mf">4.5</span> <span class="gp">>>> </span><span class="n">ker</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="go">0.02542895201906369640249801</span> <span class="gp">>>> </span><span class="n">kei</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="go">-0.02074960467222823237055351</span> <span class="gp">>>> </span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">n</span><span class="o">*</span><span class="n">pi</span><span class="o">*</span><span class="n">j</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> <span class="o">*</span> <span class="n">besselk</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">x</span><span class="o">*</span><span class="n">root</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">8</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span> <span class="go">(0.02542895201906369640249801 - 0.02074960467222823237055351j)</span> </pre></div> </div> <p>The ker and kei functions are also defined by analytic continuation for complex arguments:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">ker</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">j</span><span class="p">,</span> <span class="mi">3</span><span class="o">+</span><span class="mi">4</span><span class="n">j</span><span class="p">)</span> <span class="go">(1.586084268115490421090533 - 2.939717517906339193598719j)</span> <span class="gp">>>> </span><span class="n">kei</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">j</span><span class="p">,</span> <span class="mi">3</span><span class="o">+</span><span class="mi">4</span><span class="n">j</span><span class="p">)</span> <span class="go">(-2.940403256319453402690132 - 1.585621643835618941044855j)</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="kei"> <h3><tt class="xref docutils literal"><span class="pre">kei()</span></tt><a class="headerlink" href="#kei" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.kei"> <tt class="descclassname">mpmath.</tt><tt class="descname">kei</tt><big>(</big><em>ctx</em>, <em>n</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.kei" title="Permalink to this definition">¶</a></dt> <dd>Computes the Kelvin function kei, which for real arguments gives the imaginary part of the (rescaled) Bessel K function of a rotated argument. See <a title="mpmath.ker" class="reference internal" href="#mpmath.ker"><tt class="xref docutils literal"><span class="pre">ker()</span></tt></a>.</dd></dl> </div> </div> <div class="section" id="struve-functions"> <h2>Struve functions<a class="headerlink" href="#struve-functions" title="Permalink to this headline">¶</a></h2> <div class="section" id="struveh"> <h3><tt class="xref docutils literal"><span class="pre">struveh()</span></tt><a class="headerlink" href="#struveh" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.struveh"> <tt class="descclassname">mpmath.</tt><tt class="descname">struveh</tt><big>(</big><em>ctx</em>, <em>n</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.struveh" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the Struve function</p> <div class="math"> <p><img src="../_images/math/d64cfc8f9cb22a2f19804242d820eee7ce13e5c3.png" alt="\,\mathbf{H}_n(z) = \sum_{k=0}^\infty \frac{(-1)^k}{\Gamma(k+\frac{3}{2}) \Gamma(k+n+\frac{3}{2})} {\left({\frac{z}{2}}\right)}^{2k+n+1}" /></p> </div><p>which is a solution to the Struve differential equation</p> <div class="math"> <p><img src="../_images/math/2328be0e93e0e602950202978444ff812b5eaf72.png" alt="z^2 f''(z) + z f'(z) + (z^2-n^2) f(z) = \frac{2 z^{n+1}}{\pi (2n-1)!!}." /></p> </div><p><strong>Examples</strong></p> <p>Evaluation for arbitrary real and complex arguments:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">struveh</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">)</span> <span class="go">0.3608207733778295024977797</span> <span class="gp">>>> </span><span class="n">struveh</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="go">-0.255212719726956768034732</span> <span class="gp">>>> </span><span class="n">struveh</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mf">100.5</span><span class="p">)</span> <span class="go">0.5819566816797362287502246</span> <span class="gp">>>> </span><span class="n">struveh</span><span class="p">(</span><span class="mf">2.5</span><span class="p">,</span> <span class="mi">10000000000000</span><span class="p">)</span> <span class="go">3153915652525200060.308937</span> <span class="gp">>>> </span><span class="n">struveh</span><span class="p">(</span><span class="mf">2.5</span><span class="p">,</span> <span class="o">-</span><span class="mi">10000000000000</span><span class="p">)</span> <span class="go">(0.0 - 3153915652525200060.308937j)</span> <span class="gp">>>> </span><span class="n">struveh</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">j</span><span class="p">,</span> <span class="mi">1000000</span><span class="o">+</span><span class="mi">4000000</span><span class="n">j</span><span class="p">)</span> <span class="go">(-3.066421087689197632388731e+1737173 - 1.596619701076529803290973e+1737173j)</span> </pre></div> </div> <p>A Struve function of half-integer order is elementary; for example:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="mi">3</span> <span class="gp">>>> </span><span class="n">struveh</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> <span class="go">0.9167076867564138178671595</span> <span class="gp">>>> </span><span class="n">sqrt</span><span class="p">(</span><span class="mi">2</span><span class="o">/</span><span class="p">(</span><span class="n">pi</span><span class="o">*</span><span class="n">z</span><span class="p">))</span><span class="o">*</span><span class="p">(</span><span class="mi">1</span><span class="o">-</span><span class="n">cos</span><span class="p">(</span><span class="n">z</span><span class="p">))</span> <span class="go">0.9167076867564138178671595</span> </pre></div> </div> <p>Numerically verifying the differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">4.5</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">n</span> <span class="o">=</span> <span class="mi">3</span> <span class="gp">>>> </span><span class="n">f</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">struveh</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">lhs</span> <span class="o">=</span> <span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">z</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="o">-</span><span class="n">n</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">f</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">rhs</span> <span class="o">=</span> <span class="mi">2</span><span class="o">*</span><span class="n">z</span><span class="o">**</span><span class="p">(</span><span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="n">fac2</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="n">pi</span> <span class="gp">>>> </span><span class="n">lhs</span> <span class="go">17.40359302709875496632744</span> <span class="gp">>>> </span><span class="n">rhs</span> <span class="go">17.40359302709875496632744</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="struvel"> <h3><tt class="xref docutils literal"><span class="pre">struvel()</span></tt><a class="headerlink" href="#struvel" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.struvel"> <tt class="descclassname">mpmath.</tt><tt class="descname">struvel</tt><big>(</big><em>ctx</em>, <em>n</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.struvel" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the modified Struve function</p> <div class="math"> <p><img src="../_images/math/a985f5e56e4575ebad6974c7f99149e13b51d98d.png" alt="\,\mathbf{L}_n(z) = -i e^{-n\pi i/2} \mathbf{H}_n(i z)" /></p> </div><p>which solves to the modified Struve differential equation</p> <div class="math"> <p><img src="../_images/math/95a82208859bd36392c8a63aae6e3f3258138f49.png" alt="z^2 f''(z) + z f'(z) - (z^2+n^2) f(z) = \frac{2 z^{n+1}}{\pi (2n-1)!!}." /></p> </div><p><strong>Examples</strong></p> <p>Evaluation for arbitrary real and complex arguments:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">struvel</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">)</span> <span class="go">7.180846515103737996249972</span> <span class="gp">>>> </span><span class="n">struvel</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="go">2670.994904980850550721511</span> <span class="gp">>>> </span><span class="n">struvel</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mf">100.5</span><span class="p">)</span> <span class="go">1.757089288053346261497686e+42</span> <span class="gp">>>> </span><span class="n">struvel</span><span class="p">(</span><span class="mf">2.5</span><span class="p">,</span> <span class="mi">10000000000000</span><span class="p">)</span> <span class="go">4.160893281017115450519948e+4342944819025</span> <span class="gp">>>> </span><span class="n">struvel</span><span class="p">(</span><span class="mf">2.5</span><span class="p">,</span> <span class="o">-</span><span class="mi">10000000000000</span><span class="p">)</span> <span class="go">(0.0 - 4.160893281017115450519948e+4342944819025j)</span> <span class="gp">>>> </span><span class="n">struvel</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">j</span><span class="p">,</span> <span class="mi">700</span><span class="n">j</span><span class="p">)</span> <span class="go">(-0.1721150049480079451246076 + 0.1240770953126831093464055j)</span> <span class="gp">>>> </span><span class="n">struvel</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">j</span><span class="p">,</span> <span class="mi">1000000</span><span class="o">+</span><span class="mi">4000000</span><span class="n">j</span><span class="p">)</span> <span class="go">(-2.973341637511505389128708e+434290 - 5.164633059729968297147448e+434290j)</span> </pre></div> </div> <p>Numerically verifying the differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">3.5</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">n</span> <span class="o">=</span> <span class="mi">3</span> <span class="gp">>>> </span><span class="n">f</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">struvel</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">lhs</span> <span class="o">=</span> <span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">z</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">n</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">f</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">rhs</span> <span class="o">=</span> <span class="mi">2</span><span class="o">*</span><span class="n">z</span><span class="o">**</span><span class="p">(</span><span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="n">fac2</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="n">pi</span> <span class="gp">>>> </span><span class="n">lhs</span> <span class="go">6.368850306060678353018165</span> <span class="gp">>>> </span><span class="n">rhs</span> <span class="go">6.368850306060678353018165</span> </pre></div> </div> </dd></dl> </div> </div> <div class="section" id="anger-weber-functions"> <h2>Anger-Weber functions<a class="headerlink" href="#anger-weber-functions" title="Permalink to this headline">¶</a></h2> <div class="section" id="angerj"> <h3><tt class="xref docutils literal"><span class="pre">angerj()</span></tt><a class="headerlink" href="#angerj" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.angerj"> <tt class="descclassname">mpmath.</tt><tt class="descname">angerj</tt><big>(</big><em>ctx</em>, <em>v</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.angerj" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the Anger function</p> <div class="math"> <p><img src="../_images/math/3c8fdbc20ec94c10eb1e83ab7671563df6a05fcf.png" alt="\mathbf{J}_{\nu}(z) = \frac{1}{\pi} \int_0^{\pi} \cos(\nu t - z \sin t) dt" /></p> </div><p>which is an entire function of both the parameter <img class="math" src="../_images/math/d6a7ccf879c4a4fe694033606332cb83806db296.png" alt="\nu"/> and the argument <img class="math" src="../_images/math/b13f21416d84e13708696f34dea81026cda583c9.png" alt="z"/>. It solves the inhomogeneous Bessel differential equation</p> <div class="math"> <p><img src="../_images/math/14903886f7fb80640a1cc5d0f0f062014e00d1c0.png" alt="f''(z) + \frac{1}{z}f'(z) + \left(1-\frac{\nu^2}{z^2}\right) f(z) = \frac{(z-\nu)}{\pi z^2} \sin(\pi \nu)." /></p> </div><p><strong>Examples</strong></p> <p>Evaluation for real and complex parameter and argument:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">angerj</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span> <span class="go">0.4860912605858910769078311</span> <span class="gp">>>> </span><span class="n">angerj</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span><span class="o">+</span><span class="mi">4</span><span class="n">j</span><span class="p">,</span> <span class="mi">2</span><span class="o">+</span><span class="mi">5</span><span class="n">j</span><span class="p">)</span> <span class="go">(-5033.358320403384472395612 + 585.8011892476145118551756j)</span> <span class="gp">>>> </span><span class="n">angerj</span><span class="p">(</span><span class="mf">3.25</span><span class="p">,</span> <span class="mf">1e6</span><span class="n">j</span><span class="p">)</span> <span class="go">(4.630743639715893346570743e+434290 - 1.117960409887505906848456e+434291j)</span> <span class="gp">>>> </span><span class="n">angerj</span><span class="p">(</span><span class="o">-</span><span class="mf">1.5</span><span class="p">,</span> <span class="mf">1e6</span><span class="p">)</span> <span class="go">0.0002795719747073879393087011</span> </pre></div> </div> <p>The Anger function coincides with the Bessel J-function when <img class="math" src="../_images/math/d6a7ccf879c4a4fe694033606332cb83806db296.png" alt="\nu"/> is an integer:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">angerj</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">);</span> <span class="n">besselj</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span> <span class="go">0.3390589585259364589255146</span> <span class="go">0.3390589585259364589255146</span> <span class="gp">>>> </span><span class="n">angerj</span><span class="p">(</span><span class="mf">1.5</span><span class="p">,</span><span class="mi">3</span><span class="p">);</span> <span class="n">besselj</span><span class="p">(</span><span class="mf">1.5</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span> <span class="go">0.4088969848691080859328847</span> <span class="go">0.4777182150870917715515015</span> </pre></div> </div> <p>Verifying the differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">v</span><span class="p">,</span><span class="n">z</span> <span class="o">=</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">2.25</span><span class="p">),</span> <span class="mf">0.75</span> <span class="gp">>>> </span><span class="n">f</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">angerj</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">/</span><span class="n">z</span> <span class="o">+</span> <span class="p">(</span><span class="mi">1</span><span class="o">-</span><span class="p">(</span><span class="n">v</span><span class="o">/</span><span class="n">z</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">f</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="go">-0.6002108774380707130367995</span> <span class="gp">>>> </span><span class="p">(</span><span class="n">z</span><span class="o">-</span><span class="n">v</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">pi</span><span class="o">*</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> <span class="o">*</span> <span class="n">sinpi</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="go">-0.6002108774380707130367995</span> </pre></div> </div> <p>Verifying the integral representation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">angerj</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">0.1145380759919333180900501</span> <span class="gp">>>> </span><span class="n">quad</span><span class="p">(</span><span class="k">lambda</span> <span class="n">t</span><span class="p">:</span> <span class="n">cos</span><span class="p">(</span><span class="n">v</span><span class="o">*</span><span class="n">t</span><span class="o">-</span><span class="n">z</span><span class="o">*</span><span class="n">sin</span><span class="p">(</span><span class="n">t</span><span class="p">))</span><span class="o">/</span><span class="n">pi</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="n">pi</span><span class="p">])</span> <span class="go">0.1145380759919333180900501</span> </pre></div> </div> <p><strong>References</strong></p> <ol class="arabic simple"> <li><a class="reference external" href="../references.html#dlmf">[DLMF]</a> section 11.10: Anger-Weber Functions</li> </ol> </dd></dl> </div> <div class="section" id="webere"> <h3><tt class="xref docutils literal"><span class="pre">webere()</span></tt><a class="headerlink" href="#webere" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.webere"> <tt class="descclassname">mpmath.</tt><tt class="descname">webere</tt><big>(</big><em>ctx</em>, <em>v</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.webere" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the Weber function</p> <div class="math"> <p><img src="../_images/math/b6b7c80000fc5103e000a437d4719eed2298705c.png" alt="\mathbf{E}_{\nu}(z) = \frac{1}{\pi} \int_0^{\pi} \sin(\nu t - z \sin t) dt" /></p> </div><p>which is an entire function of both the parameter <img class="math" src="../_images/math/d6a7ccf879c4a4fe694033606332cb83806db296.png" alt="\nu"/> and the argument <img class="math" src="../_images/math/b13f21416d84e13708696f34dea81026cda583c9.png" alt="z"/>. It solves the inhomogeneous Bessel differential equation</p> <div class="math"> <p><img src="../_images/math/539b752f77d10de73e2de2fd01b93fa7dd964c78.png" alt="f''(z) + \frac{1}{z}f'(z) + \left(1-\frac{\nu^2}{z^2}\right) f(z) = -\frac{1}{\pi z^2} (z+\nu+(z-\nu)\cos(\pi \nu))." /></p> </div><p><strong>Examples</strong></p> <p>Evaluation for real and complex parameter and argument:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">webere</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span> <span class="go">-0.1057668973099018425662646</span> <span class="gp">>>> </span><span class="n">webere</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span><span class="o">+</span><span class="mi">4</span><span class="n">j</span><span class="p">,</span> <span class="mi">2</span><span class="o">+</span><span class="mi">5</span><span class="n">j</span><span class="p">)</span> <span class="go">(-585.8081418209852019290498 - 5033.314488899926921597203j)</span> <span class="gp">>>> </span><span class="n">webere</span><span class="p">(</span><span class="mf">3.25</span><span class="p">,</span> <span class="mf">1e6</span><span class="n">j</span><span class="p">)</span> <span class="go">(-1.117960409887505906848456e+434291 - 4.630743639715893346570743e+434290j)</span> <span class="gp">>>> </span><span class="n">webere</span><span class="p">(</span><span class="mf">3.25</span><span class="p">,</span> <span class="mf">1e6</span><span class="p">)</span> <span class="go">-0.00002812518265894315604914453</span> </pre></div> </div> <p>Up to addition of a rational function of <img class="math" src="../_images/math/b13f21416d84e13708696f34dea81026cda583c9.png" alt="z"/>, the Weber function coincides with the Struve H-function when <img class="math" src="../_images/math/d6a7ccf879c4a4fe694033606332cb83806db296.png" alt="\nu"/> is an integer:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">webere</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">);</span> <span class="mi">2</span><span class="o">/</span><span class="n">pi</span><span class="o">-</span><span class="n">struveh</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span> <span class="go">-0.3834897968188690177372881</span> <span class="go">-0.3834897968188690177372881</span> <span class="gp">>>> </span><span class="n">webere</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">3</span><span class="p">);</span> <span class="mi">26</span><span class="o">/</span><span class="p">(</span><span class="mi">35</span><span class="o">*</span><span class="n">pi</span><span class="p">)</span><span class="o">-</span><span class="n">struveh</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span> <span class="go">0.2009680659308154011878075</span> <span class="go">0.2009680659308154011878075</span> </pre></div> </div> <p>Verifying the differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">v</span><span class="p">,</span><span class="n">z</span> <span class="o">=</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">2.25</span><span class="p">),</span> <span class="mf">0.75</span> <span class="gp">>>> </span><span class="n">f</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">webere</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">/</span><span class="n">z</span> <span class="o">+</span> <span class="p">(</span><span class="mi">1</span><span class="o">-</span><span class="p">(</span><span class="n">v</span><span class="o">/</span><span class="n">z</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">f</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="go">-1.097441848875479535164627</span> <span class="gp">>>> </span><span class="o">-</span><span class="p">(</span><span class="n">z</span><span class="o">+</span><span class="n">v</span><span class="o">+</span><span class="p">(</span><span class="n">z</span><span class="o">-</span><span class="n">v</span><span class="p">)</span><span class="o">*</span><span class="n">cospi</span><span class="p">(</span><span class="n">v</span><span class="p">))</span><span class="o">/</span><span class="p">(</span><span class="n">pi</span><span class="o">*</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> <span class="go">-1.097441848875479535164627</span> </pre></div> </div> <p>Verifying the integral representation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">webere</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">0.1486507351534283744485421</span> <span class="gp">>>> </span><span class="n">quad</span><span class="p">(</span><span class="k">lambda</span> <span class="n">t</span><span class="p">:</span> <span class="n">sin</span><span class="p">(</span><span class="n">v</span><span class="o">*</span><span class="n">t</span><span class="o">-</span><span class="n">z</span><span class="o">*</span><span class="n">sin</span><span class="p">(</span><span class="n">t</span><span class="p">))</span><span class="o">/</span><span class="n">pi</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="n">pi</span><span class="p">])</span> <span class="go">0.1486507351534283744485421</span> </pre></div> </div> <p><strong>References</strong></p> <ol class="arabic simple"> <li><a class="reference external" href="../references.html#dlmf">[DLMF]</a> section 11.10: Anger-Weber Functions</li> </ol> </dd></dl> </div> </div> <div class="section" id="lommel-functions"> <h2>Lommel functions<a class="headerlink" href="#lommel-functions" title="Permalink to this headline">¶</a></h2> <div class="section" id="lommels1"> <h3><tt class="xref docutils literal"><span class="pre">lommels1()</span></tt><a class="headerlink" href="#lommels1" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.lommels1"> <tt class="descclassname">mpmath.</tt><tt class="descname">lommels1</tt><big>(</big><em>ctx</em>, <em>u</em>, <em>v</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.lommels1" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the Lommel function <img class="math" src="../_images/math/266a9f154a42e28e1e04dc1d63e7f2aa3ef871ef.png" alt="s_{\mu,\nu}"/> or <img class="math" src="../_images/math/83eb1c211ac94e9e9ac469b4c8668fffbf212b01.png" alt="s^{(1)}_{\mu,\nu}"/></p> <div class="math"> <p><img src="../_images/math/c9564328a038bedd71c1ca647c05e01bb68e6e63.png" alt="s_{\mu,\nu}(z) = \frac{z^{\mu+1}}{(\mu-\nu+1)(\mu+\nu+1)} \,_1F_2\left(1; \frac{\mu-\nu+3}{2}, \frac{\mu+\nu+3}{2}; -\frac{z^2}{4} \right)" /></p> </div><p>which solves the inhomogeneous Bessel equation</p> <div class="math"> <p><img src="../_images/math/b1e9bad08c081f7a21e05525ea03427fdba32e4b.png" alt="z^2 f''(z) + z f'(z) + (z^2-\nu^2) f(z) = z^{\mu+1}." /></p> </div><p>A second solution is given by <a title="mpmath.lommels2" class="reference internal" href="#mpmath.lommels2"><tt class="xref docutils literal"><span class="pre">lommels2()</span></tt></a>.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Lommel function s_(u,v)(x) on the real line for a few different u,v</span> <span class="n">f1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">lommels1</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mf">2.5</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">f2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">lommels1</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mf">0.5</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">f3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">lommels1</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">f4</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">lommels1</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">f1</span><span class="p">,</span><span class="n">f2</span><span class="p">,</span><span class="n">f3</span><span class="p">,</span><span class="n">f4</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">20</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/lommels1.png" src="../_images/lommels1.png" /> <p><strong>Examples</strong></p> <p>An integral representation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">u</span><span class="p">,</span><span class="n">v</span><span class="p">,</span><span class="n">z</span> <span class="o">=</span> <span class="mf">0.25</span><span class="p">,</span> <span class="mf">0.125</span><span class="p">,</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">0.75</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">lommels1</span><span class="p">(</span><span class="n">u</span><span class="p">,</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">0.4276243877565150372999126</span> <span class="gp">>>> </span><span class="p">(</span><span class="n">bessely</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">quad</span><span class="p">(</span><span class="k">lambda</span> <span class="n">t</span><span class="p">:</span> <span class="n">t</span><span class="o">**</span><span class="n">u</span><span class="o">*</span><span class="n">besselj</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">t</span><span class="p">),</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="n">z</span><span class="p">])</span> <span class="o">-</span> \ <span class="gp">... </span> <span class="n">besselj</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">quad</span><span class="p">(</span><span class="k">lambda</span> <span class="n">t</span><span class="p">:</span> <span class="n">t</span><span class="o">**</span><span class="n">u</span><span class="o">*</span><span class="n">bessely</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">t</span><span class="p">),</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="n">z</span><span class="p">]))</span><span class="o">*</span><span class="p">(</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> <span class="go">0.4276243877565150372999126</span> </pre></div> </div> <p>A special value:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">lommels1</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">0.5461221367746048054932553</span> <span class="gp">>>> </span><span class="n">gamma</span><span class="p">(</span><span class="n">v</span><span class="o">+</span><span class="mf">0.5</span><span class="p">)</span><span class="o">*</span><span class="n">sqrt</span><span class="p">(</span><span class="n">pi</span><span class="p">)</span><span class="o">*</span><span class="n">power</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">v</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">struveh</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">0.5461221367746048054932553</span> </pre></div> </div> <p>Verifying the differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">f</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">lommels1</span><span class="p">(</span><span class="n">u</span><span class="p">,</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">z</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="o">-</span><span class="n">v</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">f</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="go">0.6979536443265746992059141</span> <span class="gp">>>> </span><span class="n">z</span><span class="o">**</span><span class="p">(</span><span class="n">u</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="go">0.6979536443265746992059141</span> </pre></div> </div> <p><strong>References</strong></p> <ol class="arabic simple"> <li><a class="reference external" href="../references.html#gradshteynryzhik">[GradshteynRyzhik]</a></li> <li><a class="reference external" href="../references.html#weisstein">[Weisstein]</a> <a class="reference external" href="http://mathworld.wolfram.com/LommelFunction.html">http://mathworld.wolfram.com/LommelFunction.html</a></li> </ol> </dd></dl> </div> <div class="section" id="lommels2"> <h3><tt class="xref docutils literal"><span class="pre">lommels2()</span></tt><a class="headerlink" href="#lommels2" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.lommels2"> <tt class="descclassname">mpmath.</tt><tt class="descname">lommels2</tt><big>(</big><em>ctx</em>, <em>u</em>, <em>v</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.lommels2" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the second Lommel function <img class="math" src="../_images/math/37b539edd09d78c7f1cdd7ef39878705706e0fb7.png" alt="S_{\mu,\nu}"/> or <img class="math" src="../_images/math/685e5f0198e26220004ea4842477f9a9a2dbb77d.png" alt="s^{(2)}_{\mu,\nu}"/></p> <div class="math"> <p><img src="../_images/math/8dab34e5a26af52e94b51683d8b3f42ad6a5df59.png" alt="S_{\mu,\nu}(z) = s_{\mu,\nu}(z) + 2^{\mu-1} \Gamma\left(\tfrac{1}{2}(\mu-\nu+1)\right) \Gamma\left(\tfrac{1}{2}(\mu+\nu+1)\right) \times \left[\sin(\tfrac{1}{2}(\mu-\nu)\pi) J_{\nu}(z) - \cos(\tfrac{1}{2}(\mu-\nu)\pi) Y_{\nu}(z) \right]" /></p> </div><p>which solves the same differential equation as <a title="mpmath.lommels1" class="reference internal" href="#mpmath.lommels1"><tt class="xref docutils literal"><span class="pre">lommels1()</span></tt></a>.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Lommel function S_(u,v)(x) on the real line for a few different u,v</span> <span class="n">f1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">lommels2</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mf">2.5</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">f2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">lommels2</span><span class="p">(</span><span class="mf">1.5</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">f3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">lommels2</span><span class="p">(</span><span class="mf">2.5</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">f4</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">lommels2</span><span class="p">(</span><span class="mf">3.5</span><span class="p">,</span><span class="o">-</span><span class="mf">0.5</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">f1</span><span class="p">,</span><span class="n">f2</span><span class="p">,</span><span class="n">f3</span><span class="p">,</span><span class="n">f4</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/lommels2.png" src="../_images/lommels2.png" /> <p><strong>Examples</strong></p> <p>For large <img class="math" src="../_images/math/77888cf7d3c4635b8bc8c06ee89dc2a2d2f86538.png" alt="|z|"/>, <img class="math" src="../_images/math/3e4b5182e3540d104620d9ec8548b2d7861e73f2.png" alt="S_{\mu,\nu} \sim z^{\mu-1}"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">lommels2</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">30000</span><span class="p">)</span> <span class="go">1.968299831601008419949804e+40</span> <span class="gp">>>> </span><span class="n">power</span><span class="p">(</span><span class="mi">30000</span><span class="p">,</span><span class="mi">9</span><span class="p">)</span> <span class="go">1.9683e+40</span> </pre></div> </div> <p>A special value:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">u</span><span class="p">,</span><span class="n">v</span><span class="p">,</span><span class="n">z</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.125</span><span class="p">,</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">0.75</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">lommels2</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">0.9589683199624672099969765</span> <span class="gp">>>> </span><span class="p">(</span><span class="n">struveh</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">-</span><span class="n">bessely</span><span class="p">(</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">))</span><span class="o">*</span><span class="n">power</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">v</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">sqrt</span><span class="p">(</span><span class="n">pi</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="n">v</span><span class="o">+</span><span class="mf">0.5</span><span class="p">)</span> <span class="go">0.9589683199624672099969765</span> </pre></div> </div> <p>Verifying the differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">f</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">lommels2</span><span class="p">(</span><span class="n">u</span><span class="p">,</span><span class="n">v</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">z</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="o">-</span><span class="n">v</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">f</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="go">0.6495190528383289850727924</span> <span class="gp">>>> </span><span class="n">z</span><span class="o">**</span><span class="p">(</span><span class="n">u</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="go">0.6495190528383289850727924</span> </pre></div> </div> <p><strong>References</strong></p> <ol class="arabic simple"> <li><a class="reference external" href="../references.html#gradshteynryzhik">[GradshteynRyzhik]</a></li> <li><a class="reference external" href="../references.html#weisstein">[Weisstein]</a> <a class="reference external" href="http://mathworld.wolfram.com/LommelFunction.html">http://mathworld.wolfram.com/LommelFunction.html</a></li> </ol> </dd></dl> </div> </div> <div class="section" id="airy-and-scorer-functions"> <h2>Airy and Scorer functions<a class="headerlink" href="#airy-and-scorer-functions" title="Permalink to this headline">¶</a></h2> <div class="section" id="airyai"> <h3><tt class="xref docutils literal"><span class="pre">airyai()</span></tt><a class="headerlink" href="#airyai" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.airyai"> <tt class="descclassname">mpmath.</tt><tt class="descname">airyai</tt><big>(</big><em>z</em>, <em>derivative=0</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.airyai" title="Permalink to this definition">¶</a></dt> <dd><p>Computes the Airy function <img class="math" src="../_images/math/83dc69f3fcec06b02be9d8ea32f1b5a44934bb1d.png" alt="\operatorname{Ai}(z)"/>, which is the solution of the Airy differential equation <img class="math" src="../_images/math/11795609d974cf0d284cc6e72d7ecdf62bbf6de2.png" alt="f''(z) - z f(z) = 0"/> with initial conditions</p> <div class="math"> <p><img src="../_images/math/b34e1617441bd9f7060ef599f2c9bbc9fde0d283.png" alt="\operatorname{Ai}(0) = \frac{1}{3^{2/3}\Gamma\left(\frac{2}{3}\right)} \operatorname{Ai}'(0) = -\frac{1}{3^{1/3}\Gamma\left(\frac{1}{3}\right)}." /></p> </div><p>Other common ways of defining the Ai-function include integrals such as</p> <div class="math"> <p><img src="../_images/math/61421edc7f7e9b23921f27ec39a39181e2a6ed45.png" alt="\operatorname{Ai}(x) = \frac{1}{\pi} \int_0^{\infty} \cos\left(\frac{1}{3}t^3+xt\right) dt \qquad x \in \mathbb{R} \operatorname{Ai}(z) = \frac{\sqrt{3}}{2\pi} \int_0^{\infty} \exp\left(-\frac{t^3}{3}-\frac{z^3}{3t^3}\right) dt." /></p> </div><p>The Ai-function is an entire function with a turning point, behaving roughly like a slowly decaying sine wave for <img class="math" src="../_images/math/159e62c3ee4145025e4c27a532515dd95470d1e4.png" alt="z < 0"/> and like a rapidly decreasing exponential for <img class="math" src="../_images/math/e6fe34b68f40e868401176cee1a4dc1dca3ff74b.png" alt="z > 0"/>. A second solution of the Airy differential equation is given by <img class="math" src="../_images/math/d453abf49881efb587a2ff04acc4738370f18975.png" alt="\operatorname{Bi}(z)"/> (see <a title="mpmath.airybi" class="reference internal" href="#mpmath.airybi"><tt class="xref docutils literal"><span class="pre">airybi()</span></tt></a>).</p> <p>Optionally, with <em>derivative=alpha</em>, <tt class="xref docutils literal"><span class="pre">airyai()</span></tt> can compute the <img class="math" src="../_images/math/10f32377ac67d94f764f12a15ea987e88c85d3e1.png" alt="\alpha"/>-th order fractional derivative with respect to <img class="math" src="../_images/math/b13f21416d84e13708696f34dea81026cda583c9.png" alt="z"/>. For <img class="math" src="../_images/math/1e1d78a78d56e16206f493b3c0cb9091497f324e.png" alt="\alpha = n = 1,2,3,\ldots"/> this gives the derivative <img class="math" src="../_images/math/1d3eb09008922bfe0e3d17089696d832fc12b489.png" alt="\operatorname{Ai}^{(n)}(z)"/>, and for <img class="math" src="../_images/math/8d69cd4319218f38464f2e22d91480b8180b67db.png" alt="\alpha = -n = -1,-2,-3,\ldots"/> this gives the <img class="math" src="../_images/math/174fadd07fd54c9afe288e96558c92e0c1da733a.png" alt="n"/>-fold iterated integral</p> <div class="math"> <p><img src="../_images/math/c15a41c9791b02a05d59d6481b7577676b61c2d9.png" alt="f_0(z) = \operatorname{Ai}(z) f_n(z) = \int_0^z f_{n-1}(t) dt." /></p> </div><p>The Ai-function has infinitely many zeros, all located along the negative half of the real axis. They can be computed with <a title="mpmath.airyaizero" class="reference internal" href="#mpmath.airyaizero"><tt class="xref docutils literal"><span class="pre">airyaizero()</span></tt></a>.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Airy function Ai(x), Ai'(x) and int_0^x Ai(t) dt on the real line</span> <span class="n">f</span> <span class="o">=</span> <span class="n">airyai</span> <span class="n">f_diff</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">airyai</span><span class="p">(</span><span class="n">z</span><span class="p">,</span> <span class="n">derivative</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="n">f_int</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">airyai</span><span class="p">(</span><span class="n">z</span><span class="p">,</span> <span class="n">derivative</span><span class="o">=-</span><span class="mi">1</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">f</span><span class="p">,</span> <span class="n">f_diff</span><span class="p">,</span> <span class="n">f_int</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span><span class="mi">5</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/ai.png" src="../_images/ai.png" /> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Airy function Ai(z) in the complex plane</span> <span class="n">cplot</span><span class="p">(</span><span class="n">airyai</span><span class="p">,</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="n">points</span><span class="o">=</span><span class="mi">50000</span><span class="p">)</span> </pre></div> </div> <img alt="../_images/ai_c.png" src="../_images/ai_c.png" /> <p><strong>Basic examples</strong></p> <p>Limits and values include:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span> <span class="mi">1</span><span class="o">/</span><span class="p">(</span><span class="n">power</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="s">'2/3'</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="s">'2/3'</span><span class="p">))</span> <span class="go">0.3550280538878172392600632</span> <span class="go">0.3550280538878172392600632</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="go">0.1352924163128814155241474</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">0.5355608832923521187995166</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="n">inf</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">)</span> <span class="go">0.0</span> <span class="go">0.0</span> </pre></div> </div> <p>Evaluation is supported for large magnitudes of the argument:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="mi">100</span><span class="p">)</span> <span class="go">0.1767533932395528780908311</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> <span class="go">2.634482152088184489550553e-291</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="mi">50</span><span class="o">+</span><span class="mi">50</span><span class="n">j</span><span class="p">)</span> <span class="go">(-5.31790195707456404099817e-68 - 1.163588003770709748720107e-67j)</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="mi">50</span><span class="o">+</span><span class="mi">50</span><span class="n">j</span><span class="p">)</span> <span class="go">(1.041242537363167632587245e+158 + 3.347525544923600321838281e+157j)</span> </pre></div> </div> <p>Huge arguments are also fine:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="mi">10</span><span class="o">**</span><span class="mi">10</span><span class="p">)</span> <span class="go">1.162235978298741779953693e-289529654602171</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="o">**</span><span class="mi">10</span><span class="p">)</span> <span class="go">0.0001736206448152818510510181</span> <span class="gp">>>> </span><span class="n">w</span> <span class="o">=</span> <span class="n">airyai</span><span class="p">(</span><span class="mi">10</span><span class="o">**</span><span class="mi">10</span><span class="o">*</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">j</span><span class="p">))</span> <span class="gp">>>> </span><span class="n">w</span><span class="o">.</span><span class="n">real</span> <span class="go">5.711508683721355528322567e-186339621747698</span> <span class="gp">>>> </span><span class="n">w</span><span class="o">.</span><span class="n">imag</span> <span class="go">1.867245506962312577848166e-186339621747697</span> </pre></div> </div> <p>The first root of the Ai-function is:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">findroot</span><span class="p">(</span><span class="n">airyai</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">)</span> <span class="go">-2.338107410459767038489197</span> <span class="gp">>>> </span><span class="n">airyaizero</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="go">-2.338107410459767038489197</span> </pre></div> </div> <p><strong>Properties and relations</strong></p> <p>Verifying the Airy differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="k">for</span> <span class="n">z</span> <span class="ow">in</span> <span class="p">[</span><span class="o">-</span><span class="mf">3.4</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mi">1</span><span class="o">+</span><span class="mi">2</span><span class="n">j</span><span class="p">]:</span> <span class="gp">... </span> <span class="n">chop</span><span class="p">(</span><span class="n">airyai</span><span class="p">(</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">-</span> <span class="n">z</span><span class="o">*</span><span class="n">airyai</span><span class="p">(</span><span class="n">z</span><span class="p">))</span> <span class="gp">...</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="go">0.0</span> </pre></div> </div> <p>The first few terms of the Taylor series expansion around <img class="math" src="../_images/math/aa9f0d97d2f39f78f05e05da40bf04f5a7c0726c.png" alt="z = 0"/> (every third term is zero):</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">nprint</span><span class="p">(</span><span class="n">taylor</span><span class="p">(</span><span class="n">airyai</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span> <span class="go">[0.355028, -0.258819, 0.0, 0.0591713, -0.0215683, 0.0]</span> </pre></div> </div> <p>The Airy functions satisfy the Wronskian relation <img class="math" src="../_images/math/d96c5507c237167921272ec35a569efbd6ebe971.png" alt="\operatorname{Ai}(z) \operatorname{Bi}'(z) - \operatorname{Ai}'(z) \operatorname{Bi}(z) = 1/\pi"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="o">-</span><span class="mf">0.5</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">airybi</span><span class="p">(</span><span class="n">z</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="o">-</span> <span class="n">airyai</span><span class="p">(</span><span class="n">z</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">airybi</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="go">0.3183098861837906715377675</span> <span class="gp">>>> </span><span class="mi">1</span><span class="o">/</span><span class="n">pi</span> <span class="go">0.3183098861837906715377675</span> </pre></div> </div> <p>The Airy functions can be expressed in terms of Bessel functions of order <img class="math" src="../_images/math/80cfedec6ffda865431b93fe664ba415422030e4.png" alt="\pm 1/3"/>. For <img class="math" src="../_images/math/94d55cd18c70d04de074938ac664a56adcf34599.png" alt="\Re[z] \le 0"/>, we have:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="o">-</span><span class="mi">3</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="go">-0.3788142936776580743472439</span> <span class="gp">>>> </span><span class="n">y</span> <span class="o">=</span> <span class="mi">2</span><span class="o">*</span><span class="n">power</span><span class="p">(</span><span class="o">-</span><span class="n">z</span><span class="p">,</span><span class="s">'3/2'</span><span class="p">)</span><span class="o">/</span><span class="mi">3</span> <span class="gp">>>> </span><span class="p">(</span><span class="n">sqrt</span><span class="p">(</span><span class="o">-</span><span class="n">z</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="n">besselj</span><span class="p">(</span><span class="s">'1/3'</span><span class="p">,</span><span class="n">y</span><span class="p">)</span> <span class="o">+</span> <span class="n">besselj</span><span class="p">(</span><span class="s">'-1/3'</span><span class="p">,</span><span class="n">y</span><span class="p">)))</span><span class="o">/</span><span class="mi">3</span> <span class="go">-0.3788142936776580743472439</span> </pre></div> </div> <p><strong>Derivatives and integrals</strong></p> <p>Derivatives of the Ai-function (directly and using <a title="mpmath.diff" class="reference external" href="../calculus/differentiation.html#mpmath.diff"><tt class="xref docutils literal"><span class="pre">diff()</span></tt></a>):</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">diff</span><span class="p">(</span><span class="n">airyai</span><span class="p">,</span><span class="o">-</span><span class="mi">3</span><span class="p">)</span> <span class="go">0.3145837692165988136507873</span> <span class="go">0.3145837692165988136507873</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span> <span class="n">diff</span><span class="p">(</span><span class="n">airyai</span><span class="p">,</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="go">1.136442881032974223041732</span> <span class="go">1.136442881032974223041732</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">diff</span><span class="p">(</span><span class="n">airyai</span><span class="p">,</span><span class="mi">1000</span><span class="p">)</span> <span class="go">-2.943133917910336090459748e-9156</span> <span class="go">-2.943133917910336090459748e-9156</span> </pre></div> </div> <p>Several derivatives at <img class="math" src="../_images/math/aa9f0d97d2f39f78f05e05da40bf04f5a7c0726c.png" alt="z = 0"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="go">0.3550280538878172392600632</span> <span class="go">-0.2588194037928067984051836</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">4</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> <span class="go">0.3550280538878172392600632</span> <span class="go">-0.5176388075856135968103671</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">15</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">16</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">17</span><span class="p">)</span> <span class="go">1292.30211615165475090663</span> <span class="go">-3188.655054727379756351861</span> <span class="go">0.0</span> </pre></div> </div> <p>The integral of the Ai-function:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="n">quad</span><span class="p">(</span><span class="n">airyai</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">])</span> <span class="go">0.3299203760070217725002701</span> <span class="go">0.3299203760070217725002701</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="n">quad</span><span class="p">(</span><span class="n">airyai</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">10</span><span class="p">])</span> <span class="go">-0.765698403134212917425148</span> <span class="go">-0.765698403134212917425148</span> </pre></div> </div> <p>Integrals of high or fractional order:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="mf">0.5</span><span class="p">);</span> <span class="n">differint</span><span class="p">(</span><span class="n">airyai</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="mf">0.5</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="go">(0.0 + 0.2453596101351438273844725j)</span> <span class="go">(0.0 + 0.2453596101351438273844725j)</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="o">-</span><span class="mi">4</span><span class="p">);</span> <span class="n">differint</span><span class="p">(</span><span class="n">airyai</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="o">-</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="go">0.2939176441636809580339365</span> <span class="go">0.2939176441636809580339365</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">3</span><span class="p">)</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="go">0.0</span> </pre></div> </div> <p>Integrals of the Ai-function can be evaluated at limit points:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="mi">1000000</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">-0.6666843728311539978751512</span> <span class="go">-0.6666666666666666666666667</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="o">+</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">0.3333333332991690159427932</span> <span class="go">0.3333333333333333333333333</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">+</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="o">+</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">3</span><span class="p">)</span> <span class="go">+inf</span> <span class="go">+inf</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="mi">1000000</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span> <span class="go">666666.4078472650651209742</span> <span class="go">+inf</span> <span class="gp">>>> </span><span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="mi">1000000</span><span class="p">,</span><span class="o">-</span><span class="mi">3</span><span class="p">);</span> <span class="n">airyai</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">3</span><span class="p">)</span> <span class="go">-333333074513.7520264995733</span> <span class="go">-inf</span> </pre></div> </div> <p><strong>References</strong></p> <ol class="arabic simple"> <li><a class="reference external" href="../references.html#dlmf">[DLMF]</a> Chapter 9: Airy and Related Functions</li> <li><a class="reference external" href="../references.html#wolframfunctions">[WolframFunctions]</a> section: Bessel-Type Functions</li> </ol> </dd></dl> </div> <div class="section" id="airybi"> <h3><tt class="xref docutils literal"><span class="pre">airybi()</span></tt><a class="headerlink" href="#airybi" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.airybi"> <tt class="descclassname">mpmath.</tt><tt class="descname">airybi</tt><big>(</big><em>z</em>, <em>derivative=0</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.airybi" title="Permalink to this definition">¶</a></dt> <dd><p>Computes the Airy function <img class="math" src="../_images/math/d453abf49881efb587a2ff04acc4738370f18975.png" alt="\operatorname{Bi}(z)"/>, which is the solution of the Airy differential equation <img class="math" src="../_images/math/11795609d974cf0d284cc6e72d7ecdf62bbf6de2.png" alt="f''(z) - z f(z) = 0"/> with initial conditions</p> <div class="math"> <p><img src="../_images/math/b170c1af25b88bc48dd46b59f9c7bc339daf721b.png" alt="\operatorname{Bi}(0) = \frac{1}{3^{1/6}\Gamma\left(\frac{2}{3}\right)} \operatorname{Bi}'(0) = \frac{3^{1/6}}{\Gamma\left(\frac{1}{3}\right)}." /></p> </div><p>Like the Ai-function (see <a title="mpmath.airyai" class="reference internal" href="#mpmath.airyai"><tt class="xref docutils literal"><span class="pre">airyai()</span></tt></a>), the Bi-function is oscillatory for <img class="math" src="../_images/math/159e62c3ee4145025e4c27a532515dd95470d1e4.png" alt="z < 0"/>, but it grows rather than decreases for <img class="math" src="../_images/math/e6fe34b68f40e868401176cee1a4dc1dca3ff74b.png" alt="z > 0"/>.</p> <p>Optionally, as for <a title="mpmath.airyai" class="reference internal" href="#mpmath.airyai"><tt class="xref docutils literal"><span class="pre">airyai()</span></tt></a>, derivatives, integrals and fractional derivatives can be computed with the <em>derivative</em> parameter.</p> <p>The Bi-function has infinitely many zeros along the negative half-axis, as well as complex zeros, which can all be computed with <a title="mpmath.airybizero" class="reference internal" href="#mpmath.airybizero"><tt class="xref docutils literal"><span class="pre">airybizero()</span></tt></a>.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Airy function Bi(x), Bi'(x) and int_0^x Bi(t) dt on the real line</span> <span class="n">f</span> <span class="o">=</span> <span class="n">airybi</span> <span class="n">f_diff</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">airybi</span><span class="p">(</span><span class="n">z</span><span class="p">,</span> <span class="n">derivative</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="n">f_int</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">airybi</span><span class="p">(</span><span class="n">z</span><span class="p">,</span> <span class="n">derivative</span><span class="o">=-</span><span class="mi">1</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">f</span><span class="p">,</span> <span class="n">f_diff</span><span class="p">,</span> <span class="n">f_int</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/bi.png" src="../_images/bi.png" /> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Airy function Bi(z) in the complex plane</span> <span class="n">cplot</span><span class="p">(</span><span class="n">airybi</span><span class="p">,</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="n">points</span><span class="o">=</span><span class="mi">50000</span><span class="p">)</span> </pre></div> </div> <img alt="../_images/bi_c.png" src="../_images/bi_c.png" /> <p><strong>Basic examples</strong></p> <p>Limits and values include:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span> <span class="mi">1</span><span class="o">/</span><span class="p">(</span><span class="n">power</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="s">'1/6'</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="s">'2/3'</span><span class="p">))</span> <span class="go">0.6149266274460007351509224</span> <span class="go">0.6149266274460007351509224</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="go">1.207423594952871259436379</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">0.10399738949694461188869</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="n">inf</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">)</span> <span class="go">+inf</span> <span class="go">0.0</span> </pre></div> </div> <p>Evaluation is supported for large magnitudes of the argument:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">100</span><span class="p">)</span> <span class="go">0.02427388768016013160566747</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> <span class="go">6.041223996670201399005265e+288</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="mi">50</span><span class="o">+</span><span class="mi">50</span><span class="n">j</span><span class="p">)</span> <span class="go">(-5.322076267321435669290334e+63 + 1.478450291165243789749427e+65j)</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">50</span><span class="o">+</span><span class="mi">50</span><span class="n">j</span><span class="p">)</span> <span class="go">(-3.347525544923600321838281e+157 + 1.041242537363167632587245e+158j)</span> </pre></div> </div> <p>Huge arguments:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="mi">10</span><span class="o">**</span><span class="mi">10</span><span class="p">)</span> <span class="go">1.369385787943539818688433e+289529654602165</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="o">**</span><span class="mi">10</span><span class="p">)</span> <span class="go">0.001775656141692932747610973</span> <span class="gp">>>> </span><span class="n">w</span> <span class="o">=</span> <span class="n">airybi</span><span class="p">(</span><span class="mi">10</span><span class="o">**</span><span class="mi">10</span><span class="o">*</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">j</span><span class="p">))</span> <span class="gp">>>> </span><span class="n">w</span><span class="o">.</span><span class="n">real</span> <span class="go">-6.559955931096196875845858e+186339621747689</span> <span class="gp">>>> </span><span class="n">w</span><span class="o">.</span><span class="n">imag</span> <span class="go">-6.822462726981357180929024e+186339621747690</span> </pre></div> </div> <p>The first real root of the Bi-function is:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">findroot</span><span class="p">(</span><span class="n">airybi</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="n">airybizero</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="go">-1.17371322270912792491998</span> <span class="go">-1.17371322270912792491998</span> </pre></div> </div> <p><strong>Properties and relations</strong></p> <p>Verifying the Airy differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="k">for</span> <span class="n">z</span> <span class="ow">in</span> <span class="p">[</span><span class="o">-</span><span class="mf">3.4</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mi">1</span><span class="o">+</span><span class="mi">2</span><span class="n">j</span><span class="p">]:</span> <span class="gp">... </span> <span class="n">chop</span><span class="p">(</span><span class="n">airybi</span><span class="p">(</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">-</span> <span class="n">z</span><span class="o">*</span><span class="n">airybi</span><span class="p">(</span><span class="n">z</span><span class="p">))</span> <span class="gp">...</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="go">0.0</span> </pre></div> </div> <p>The first few terms of the Taylor series expansion around <img class="math" src="../_images/math/aa9f0d97d2f39f78f05e05da40bf04f5a7c0726c.png" alt="z = 0"/> (every third term is zero):</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">nprint</span><span class="p">(</span><span class="n">taylor</span><span class="p">(</span><span class="n">airybi</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span> <span class="go">[0.614927, 0.448288, 0.0, 0.102488, 0.0373574, 0.0]</span> </pre></div> </div> <p>The Airy functions can be expressed in terms of Bessel functions of order <img class="math" src="../_images/math/80cfedec6ffda865431b93fe664ba415422030e4.png" alt="\pm 1/3"/>. For <img class="math" src="../_images/math/94d55cd18c70d04de074938ac664a56adcf34599.png" alt="\Re[z] \le 0"/>, we have:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="o">-</span><span class="mi">3</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="go">-0.1982896263749265432206449</span> <span class="gp">>>> </span><span class="n">p</span> <span class="o">=</span> <span class="mi">2</span><span class="o">*</span><span class="n">power</span><span class="p">(</span><span class="o">-</span><span class="n">z</span><span class="p">,</span><span class="s">'3/2'</span><span class="p">)</span><span class="o">/</span><span class="mi">3</span> <span class="gp">>>> </span><span class="n">sqrt</span><span class="p">(</span><span class="o">-</span><span class="n">mpf</span><span class="p">(</span><span class="n">z</span><span class="p">)</span><span class="o">/</span><span class="mi">3</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">besselj</span><span class="p">(</span><span class="s">'-1/3'</span><span class="p">,</span><span class="n">p</span><span class="p">)</span> <span class="o">-</span> <span class="n">besselj</span><span class="p">(</span><span class="s">'1/3'</span><span class="p">,</span><span class="n">p</span><span class="p">))</span> <span class="go">-0.1982896263749265432206449</span> </pre></div> </div> <p><strong>Derivatives and integrals</strong></p> <p>Derivatives of the Bi-function (directly and using <a title="mpmath.diff" class="reference external" href="../calculus/differentiation.html#mpmath.diff"><tt class="xref docutils literal"><span class="pre">diff()</span></tt></a>):</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">diff</span><span class="p">(</span><span class="n">airybi</span><span class="p">,</span><span class="o">-</span><span class="mi">3</span><span class="p">)</span> <span class="go">-0.675611222685258537668032</span> <span class="go">-0.675611222685258537668032</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span> <span class="n">diff</span><span class="p">(</span><span class="n">airybi</span><span class="p">,</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="go">0.5948688791247796296619346</span> <span class="go">0.5948688791247796296619346</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">diff</span><span class="p">(</span><span class="n">airybi</span><span class="p">,</span><span class="mi">1000</span><span class="p">)</span> <span class="go">1.710055114624614989262335e+9156</span> <span class="go">1.710055114624614989262335e+9156</span> </pre></div> </div> <p>Several derivatives at <img class="math" src="../_images/math/aa9f0d97d2f39f78f05e05da40bf04f5a7c0726c.png" alt="z = 0"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="go">0.6149266274460007351509224</span> <span class="go">0.4482883573538263579148237</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">4</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> <span class="go">0.6149266274460007351509224</span> <span class="go">0.8965767147076527158296474</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">15</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">16</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">17</span><span class="p">)</span> <span class="go">2238.332923903442675949357</span> <span class="go">5522.912562599140729510628</span> <span class="go">0.0</span> </pre></div> </div> <p>The integral of the Bi-function:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="n">quad</span><span class="p">(</span><span class="n">airybi</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">])</span> <span class="go">10.06200303130620056316655</span> <span class="go">10.06200303130620056316655</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="n">quad</span><span class="p">(</span><span class="n">airybi</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">10</span><span class="p">])</span> <span class="go">-0.01504042480614002045135483</span> <span class="go">-0.01504042480614002045135483</span> </pre></div> </div> <p>Integrals of high or fractional order:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="mf">0.5</span><span class="p">);</span> <span class="n">differint</span><span class="p">(</span><span class="n">airybi</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="go">(0.0 + 0.5019859055341699223453257j)</span> <span class="go">(0.0 + 0.5019859055341699223453257j)</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="o">-</span><span class="mi">4</span><span class="p">);</span> <span class="n">differint</span><span class="p">(</span><span class="n">airybi</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="o">-</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="go">0.2809314599922447252139092</span> <span class="go">0.2809314599922447252139092</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">3</span><span class="p">)</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="go">0.0</span> </pre></div> </div> <p>Integrals of the Bi-function can be evaluated at limit points:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">1000000</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">0.000002191261128063434047966873</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="o">+</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">147809803.1074067161675853</span> <span class="go">+inf</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">+</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="o">+</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">3</span><span class="p">)</span> <span class="go">+inf</span> <span class="go">+inf</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">1000000</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span> <span class="go">0.4482883750599908479851085</span> <span class="go">0.4482883573538263579148237</span> <span class="gp">>>> </span><span class="n">gamma</span><span class="p">(</span><span class="s">'2/3'</span><span class="p">)</span><span class="o">*</span><span class="n">power</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="s">'2/3'</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">pi</span><span class="p">)</span> <span class="go">0.4482883573538263579148237</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">100000</span><span class="p">,</span><span class="o">-</span><span class="mi">3</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">3</span><span class="p">)</span> <span class="go">-44828.52827206932872493133</span> <span class="go">-inf</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="mi">100000</span><span class="p">,</span><span class="o">-</span><span class="mi">4</span><span class="p">);</span> <span class="n">airybi</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">4</span><span class="p">)</span> <span class="go">2241411040.437759489540248</span> <span class="go">+inf</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="airyaizero"> <h3><tt class="xref docutils literal"><span class="pre">airyaizero()</span></tt><a class="headerlink" href="#airyaizero" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.airyaizero"> <tt class="descclassname">mpmath.</tt><tt class="descname">airyaizero</tt><big>(</big><em>k</em>, <em>derivative=0</em><big>)</big><a class="headerlink" href="#mpmath.airyaizero" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the <img class="math" src="../_images/math/8c325612684d41304b9751c175df7bcc0f61f64f.png" alt="k"/>-th zero of the Airy Ai-function, i.e. the <img class="math" src="../_images/math/8c325612684d41304b9751c175df7bcc0f61f64f.png" alt="k"/>-th number <img class="math" src="../_images/math/bea4d576937a04ec200b1037fc8ee33e8f744cb1.png" alt="a_k"/> ordered by magnitude for which <img class="math" src="../_images/math/fa2bbcefb340f06b69f8cb17ee953cc857f58a2e.png" alt="\operatorname{Ai}(a_k) = 0"/>.</p> <p>Optionally, with <em>derivative=1</em>, the corresponding zero <img class="math" src="../_images/math/7058de0fe13e26c458aaefa51949d45b96467dbf.png" alt="a'_k"/> of the derivative function, i.e. <img class="math" src="../_images/math/bd6d499f8164f7533eee059e753161fdf61142e7.png" alt="\operatorname{Ai}'(a'_k) = 0"/>, is computed.</p> <p><strong>Examples</strong></p> <p>Some values of <img class="math" src="../_images/math/bea4d576937a04ec200b1037fc8ee33e8f744cb1.png" alt="a_k"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">airyaizero</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="go">-2.338107410459767038489197</span> <span class="gp">>>> </span><span class="n">airyaizero</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="go">-4.087949444130970616636989</span> <span class="gp">>>> </span><span class="n">airyaizero</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="go">-5.520559828095551059129856</span> <span class="gp">>>> </span><span class="n">airyaizero</span><span class="p">(</span><span class="mi">1000</span><span class="p">)</span> <span class="go">-281.0315196125215528353364</span> </pre></div> </div> <p>Some values of <img class="math" src="../_images/math/7058de0fe13e26c458aaefa51949d45b96467dbf.png" alt="a'_k"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airyaizero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">-1.018792971647471089017325</span> <span class="gp">>>> </span><span class="n">airyaizero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">-3.248197582179836537875424</span> <span class="gp">>>> </span><span class="n">airyaizero</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">-4.820099211178735639400616</span> <span class="gp">>>> </span><span class="n">airyaizero</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">-280.9378080358935070607097</span> </pre></div> </div> <p>Verification:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">chop</span><span class="p">(</span><span class="n">airyai</span><span class="p">(</span><span class="n">airyaizero</span><span class="p">(</span><span class="mi">1</span><span class="p">)))</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">chop</span><span class="p">(</span><span class="n">airyai</span><span class="p">(</span><span class="n">airyaizero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span><span class="mi">1</span><span class="p">))</span> <span class="go">0.0</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="airybizero"> <h3><tt class="xref docutils literal"><span class="pre">airybizero()</span></tt><a class="headerlink" href="#airybizero" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.airybizero"> <tt class="descclassname">mpmath.</tt><tt class="descname">airybizero</tt><big>(</big><em>k</em>, <em>derivative=0</em>, <em>complex=0</em><big>)</big><a class="headerlink" href="#mpmath.airybizero" title="Permalink to this definition">¶</a></dt> <dd><p>With <em>complex=False</em>, gives the <img class="math" src="../_images/math/8c325612684d41304b9751c175df7bcc0f61f64f.png" alt="k"/>-th real zero of the Airy Bi-function, i.e. the <img class="math" src="../_images/math/8c325612684d41304b9751c175df7bcc0f61f64f.png" alt="k"/>-th number <img class="math" src="../_images/math/b6bdec4394870e8a713538ce428bea9d41c8775f.png" alt="b_k"/> ordered by magnitude for which <img class="math" src="../_images/math/aaa14755e03ecaaa04a3f70869731315c764b81f.png" alt="\operatorname{Bi}(b_k) = 0"/>.</p> <p>With <em>complex=True</em>, gives the <img class="math" src="../_images/math/8c325612684d41304b9751c175df7bcc0f61f64f.png" alt="k"/>-th complex zero in the upper half plane <img class="math" src="../_images/math/95c6c79b3e66577fea451cf1ab6d295b49f1bf68.png" alt="\beta_k"/>. Also the conjugate <img class="math" src="../_images/math/11697a40d8c4db4559bc9ef7ce7cbe6499faef4b.png" alt="\overline{\beta_k}"/> is a zero.</p> <p>Optionally, with <em>derivative=1</em>, the corresponding zero <img class="math" src="../_images/math/fff471691fdfc3407dd4c3d2e8a31be3d70f8d87.png" alt="b'_k"/> or <img class="math" src="../_images/math/102e9680626ab1d14927606280bf0aeaf6272085.png" alt="\beta'_k"/> of the derivative function, i.e. <img class="math" src="../_images/math/2069bc9bd46e8aebb7186059bfd4e5f617e4bdc9.png" alt="\operatorname{Bi}'(b'_k) = 0"/> or <img class="math" src="../_images/math/9da021afadba3b5f85b229ebffdf01ab902c7646.png" alt="\operatorname{Bi}'(\beta'_k) = 0"/>, is computed.</p> <p><strong>Examples</strong></p> <p>Some values of <img class="math" src="../_images/math/b6bdec4394870e8a713538ce428bea9d41c8775f.png" alt="b_k"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="go">-1.17371322270912792491998</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="go">-3.271093302836352715680228</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="go">-4.830737841662015932667709</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1000</span><span class="p">)</span> <span class="go">-280.9378112034152401578834</span> </pre></div> </div> <p>Some values of <img class="math" src="../_images/math/b6bdec4394870e8a713538ce428bea9d41c8775f.png" alt="b_k"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">-2.294439682614123246622459</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">-4.073155089071828215552369</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">-5.512395729663599496259593</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">-281.0315164471118527161362</span> </pre></div> </div> <p>Some values of <img class="math" src="../_images/math/95c6c79b3e66577fea451cf1ab6d295b49f1bf68.png" alt="\beta_k"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="nb">complex</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="go">(0.9775448867316206859469927 + 2.141290706038744575749139j)</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="nb">complex</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="go">(1.896775013895336346627217 + 3.627291764358919410440499j)</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="nb">complex</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="go">(2.633157739354946595708019 + 4.855468179979844983174628j)</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="nb">complex</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="go">(140.4978560578493018899793 + 243.3907724215792121244867j)</span> </pre></div> </div> <p>Some values of <img class="math" src="../_images/math/102e9680626ab1d14927606280bf0aeaf6272085.png" alt="\beta'_k"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="nb">complex</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="go">(0.2149470745374305676088329 + 1.100600143302797880647194j)</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="nb">complex</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="go">(1.458168309223507392028211 + 2.912249367458445419235083j)</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="nb">complex</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="go">(2.273760763013482299792362 + 4.254528549217097862167015j)</span> <span class="gp">>>> </span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="nb">complex</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="go">(140.4509972835270559730423 + 243.3096175398562811896208j)</span> </pre></div> </div> <p>Verification:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">chop</span><span class="p">(</span><span class="n">airybi</span><span class="p">(</span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1</span><span class="p">)))</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">chop</span><span class="p">(</span><span class="n">airybi</span><span class="p">(</span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span><span class="mi">1</span><span class="p">))</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">u</span> <span class="o">=</span> <span class="n">airybizero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="nb">complex</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">chop</span><span class="p">(</span><span class="n">airybi</span><span class="p">(</span><span class="n">u</span><span class="p">))</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">chop</span><span class="p">(</span><span class="n">airybi</span><span class="p">(</span><span class="n">conj</span><span class="p">(</span><span class="n">u</span><span class="p">)))</span> <span class="go">0.0</span> </pre></div> </div> <p>The complex zeros (in the upper and lower half-planes respectively) asymptotically approach the rays <img class="math" src="../_images/math/1e2cc8c61eababeb15fba356e3c1c08aa2c3ef70.png" alt="z = R \exp(\pm i \pi /3)"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">arg</span><span class="p">(</span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="nb">complex</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span> <span class="go">1.142532510286334022305364</span> <span class="gp">>>> </span><span class="n">arg</span><span class="p">(</span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="nb">complex</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span> <span class="go">1.047271114786212061583917</span> <span class="gp">>>> </span><span class="n">arg</span><span class="p">(</span><span class="n">airybizero</span><span class="p">(</span><span class="mi">1000000</span><span class="p">,</span><span class="nb">complex</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span> <span class="go">1.047197624741816183341355</span> <span class="gp">>>> </span><span class="n">pi</span><span class="o">/</span><span class="mi">3</span> <span class="go">1.047197551196597746154214</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="scorergi"> <h3><tt class="xref docutils literal"><span class="pre">scorergi()</span></tt><a class="headerlink" href="#scorergi" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.scorergi"> <tt class="descclassname">mpmath.</tt><tt class="descname">scorergi</tt><big>(</big><em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.scorergi" title="Permalink to this definition">¶</a></dt> <dd><p>Evaluates the Scorer function</p> <div class="math"> <p><img src="../_images/math/07e6947b1d054139a7a0553b85fc910346737f52.png" alt="\operatorname{Gi}(z) = \operatorname{Ai}(z) \int_0^z \operatorname{Bi}(t) dt + \operatorname{Bi}(z) \int_z^{\infty} \operatorname{Ai}(t) dt" /></p> </div><p>which gives a particular solution to the inhomogeneous Airy differential equation <img class="math" src="../_images/math/8c49a33291b28f91a87cc164a177c65bd9399749.png" alt="f''(z) - z f(z) = 1/\pi"/>. Another particular solution is given by the Scorer Hi-function (<a title="mpmath.scorerhi" class="reference internal" href="#mpmath.scorerhi"><tt class="xref docutils literal"><span class="pre">scorerhi()</span></tt></a>). The two functions are related as <img class="math" src="../_images/math/74e29e4452d3986f45f6c0e8d0e741058adbcc4b.png" alt="\operatorname{Gi}(z) + \operatorname{Hi}(z) = \operatorname{Bi}(z)"/>.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Scorer function Gi(x) and Gi'(x) on the real line</span> <span class="n">plot</span><span class="p">([</span><span class="n">scorergi</span><span class="p">,</span> <span class="n">diffun</span><span class="p">(</span><span class="n">scorergi</span><span class="p">)],</span> <span class="p">[</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/gi.png" src="../_images/gi.png" /> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Scorer function Gi(z) in the complex plane</span> <span class="n">cplot</span><span class="p">(</span><span class="n">scorergi</span><span class="p">,</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="n">points</span><span class="o">=</span><span class="mi">50000</span><span class="p">)</span> </pre></div> </div> <img alt="../_images/gi_c.png" src="../_images/gi_c.png" /> <p><strong>Examples</strong></p> <p>Some values and limits:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span> <span class="mi">1</span><span class="o">/</span><span class="p">(</span><span class="n">power</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="s">'7/6'</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="s">'2/3'</span><span class="p">))</span> <span class="go">0.2049755424820002450503075</span> <span class="go">0.2049755424820002450503075</span> <span class="gp">>>> </span><span class="n">diff</span><span class="p">(</span><span class="n">scorergi</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> <span class="mi">1</span><span class="o">/</span><span class="p">(</span><span class="n">power</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="s">'5/6'</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="s">'1/3'</span><span class="p">))</span> <span class="go">0.1494294524512754526382746</span> <span class="go">0.1494294524512754526382746</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="o">+</span><span class="n">inf</span><span class="p">);</span> <span class="n">scorergi</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">)</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="go">0.2352184398104379375986902</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">-0.1166722172960152826494198</span> </pre></div> </div> <p>Evaluation for large arguments:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="go">0.03189600510067958798062034</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> <span class="go">0.003183105228162961476590531</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="mi">1000000</span><span class="p">)</span> <span class="go">0.0000003183098861837906721743873</span> <span class="gp">>>> </span><span class="mi">1</span><span class="o">/</span><span class="p">(</span><span class="n">pi</span><span class="o">*</span><span class="mi">1000000</span><span class="p">)</span> <span class="go">0.0000003183098861837906715377675</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="o">-</span><span class="mi">1000</span><span class="p">)</span> <span class="go">-0.08358288400262780392338014</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="o">-</span><span class="mi">100000</span><span class="p">)</span> <span class="go">0.02886866118619660226809581</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="mi">50</span><span class="o">+</span><span class="mi">10</span><span class="n">j</span><span class="p">)</span> <span class="go">(0.0061214102799778578790984 - 0.001224335676457532180747917j)</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="o">-</span><span class="mi">50</span><span class="o">-</span><span class="mi">10</span><span class="n">j</span><span class="p">)</span> <span class="go">(5.236047850352252236372551e+29 - 3.08254224233701381482228e+29j)</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="mi">100000</span><span class="n">j</span><span class="p">)</span> <span class="go">(-8.806659285336231052679025e+6474077 + 8.684731303500835514850962e+6474077j)</span> </pre></div> </div> <p>Verifying the connection between Gi and Hi:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="mf">0.25</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="o">+</span> <span class="n">scorerhi</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="go">0.7287469039362150078694543</span> <span class="gp">>>> </span><span class="n">airybi</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="go">0.7287469039362150078694543</span> </pre></div> </div> <p>Verifying the differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="k">for</span> <span class="n">z</span> <span class="ow">in</span> <span class="p">[</span><span class="o">-</span><span class="mf">3.4</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mi">1</span><span class="o">+</span><span class="mi">2</span><span class="n">j</span><span class="p">]:</span> <span class="gp">... </span> <span class="n">chop</span><span class="p">(</span><span class="n">diff</span><span class="p">(</span><span class="n">scorergi</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">-</span> <span class="n">z</span><span class="o">*</span><span class="n">scorergi</span><span class="p">(</span><span class="n">z</span><span class="p">))</span> <span class="gp">...</span> <span class="go">-0.3183098861837906715377675</span> <span class="go">-0.3183098861837906715377675</span> <span class="go">-0.3183098861837906715377675</span> <span class="go">-0.3183098861837906715377675</span> </pre></div> </div> <p>Verifying the integral representation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="gp">>>> </span><span class="n">scorergi</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="go">0.2447210432765581976910539</span> <span class="gp">>>> </span><span class="n">Ai</span><span class="p">,</span><span class="n">Bi</span> <span class="o">=</span> <span class="n">airyai</span><span class="p">,</span><span class="n">airybi</span> <span class="gp">>>> </span><span class="n">Bi</span><span class="p">(</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">Ai</span><span class="p">(</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">Ai</span><span class="p">(</span><span class="n">z</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="o">+</span> <span class="n">Ai</span><span class="p">(</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">Bi</span><span class="p">(</span><span class="n">z</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">Bi</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="go">0.2447210432765581976910539</span> </pre></div> </div> <p><strong>References</strong></p> <ol class="arabic simple"> <li><a class="reference external" href="../references.html#dlmf">[DLMF]</a> section 9.12: Scorer Functions</li> </ol> </dd></dl> </div> <div class="section" id="scorerhi"> <h3><tt class="xref docutils literal"><span class="pre">scorerhi()</span></tt><a class="headerlink" href="#scorerhi" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.scorerhi"> <tt class="descclassname">mpmath.</tt><tt class="descname">scorerhi</tt><big>(</big><em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.scorerhi" title="Permalink to this definition">¶</a></dt> <dd><p>Evaluates the second Scorer function</p> <div class="math"> <p><img src="../_images/math/cca786197ce723c5570d2f559fc148228d00e277.png" alt="\operatorname{Hi}(z) = \operatorname{Bi}(z) \int_{-\infty}^z \operatorname{Ai}(t) dt - \operatorname{Ai}(z) \int_{-\infty}^z \operatorname{Bi}(t) dt" /></p> </div><p>which gives a particular solution to the inhomogeneous Airy differential equation <img class="math" src="../_images/math/8c49a33291b28f91a87cc164a177c65bd9399749.png" alt="f''(z) - z f(z) = 1/\pi"/>. See also <a title="mpmath.scorergi" class="reference internal" href="#mpmath.scorergi"><tt class="xref docutils literal"><span class="pre">scorergi()</span></tt></a>.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Scorer function Hi(x) and Hi'(x) on the real line</span> <span class="n">plot</span><span class="p">([</span><span class="n">scorerhi</span><span class="p">,</span> <span class="n">diffun</span><span class="p">(</span><span class="n">scorerhi</span><span class="p">)],</span> <span class="p">[</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/hi.png" src="../_images/hi.png" /> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Scorer function Hi(z) in the complex plane</span> <span class="n">cplot</span><span class="p">(</span><span class="n">scorerhi</span><span class="p">,</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">,</span><span class="mi">8</span><span class="p">],</span> <span class="n">points</span><span class="o">=</span><span class="mi">50000</span><span class="p">)</span> </pre></div> </div> <img alt="../_images/hi_c.png" src="../_images/hi_c.png" /> <p><strong>Examples</strong></p> <p>Some values and limits:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span> <span class="mi">2</span><span class="o">/</span><span class="p">(</span><span class="n">power</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="s">'7/6'</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="s">'2/3'</span><span class="p">))</span> <span class="go">0.4099510849640004901006149</span> <span class="go">0.4099510849640004901006149</span> <span class="gp">>>> </span><span class="n">diff</span><span class="p">(</span><span class="n">scorerhi</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span> <span class="mi">2</span><span class="o">/</span><span class="p">(</span><span class="n">power</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="s">'5/6'</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="s">'1/3'</span><span class="p">))</span> <span class="go">0.2988589049025509052765491</span> <span class="go">0.2988589049025509052765491</span> <span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="o">+</span><span class="n">inf</span><span class="p">);</span> <span class="n">scorerhi</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">)</span> <span class="go">+inf</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="go">0.9722051551424333218376886</span> <span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">0.2206696067929598945381098</span> </pre></div> </div> <p>Evaluation for large arguments:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="go">455641153.5163291358991077</span> <span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> <span class="go">6.041223996670201399005265e+288</span> <span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="mi">1000000</span><span class="p">)</span> <span class="go">7.138269638197858094311122e+289529652</span> <span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="p">)</span> <span class="go">0.0317685352825022727415011</span> <span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="o">-</span><span class="mi">100</span><span class="p">)</span> <span class="go">0.003183092495767499864680483</span> <span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="mi">100</span><span class="n">j</span><span class="p">)</span> <span class="go">(-6.366197716545672122983857e-9 + 0.003183098861710582761688475j)</span> <span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="mi">50</span><span class="o">+</span><span class="mi">50</span><span class="n">j</span><span class="p">)</span> <span class="go">(-5.322076267321435669290334e+63 + 1.478450291165243789749427e+65j)</span> <span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="o">-</span><span class="mi">1000</span><span class="o">-</span><span class="mi">1000</span><span class="n">j</span><span class="p">)</span> <span class="go">(0.0001591549432510502796565538 - 0.000159154943091895334973109j)</span> </pre></div> </div> <p>Verifying the differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="k">for</span> <span class="n">z</span> <span class="ow">in</span> <span class="p">[</span><span class="o">-</span><span class="mf">3.4</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="o">+</span><span class="mi">2</span><span class="n">j</span><span class="p">]:</span> <span class="gp">... </span> <span class="n">chop</span><span class="p">(</span><span class="n">diff</span><span class="p">(</span><span class="n">scorerhi</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">-</span> <span class="n">z</span><span class="o">*</span><span class="n">scorerhi</span><span class="p">(</span><span class="n">z</span><span class="p">))</span> <span class="gp">...</span> <span class="go">0.3183098861837906715377675</span> <span class="go">0.3183098861837906715377675</span> <span class="go">0.3183098861837906715377675</span> <span class="go">0.3183098861837906715377675</span> </pre></div> </div> <p>Verifying the integral representation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="gp">>>> </span><span class="n">scorerhi</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="go">0.6095559998265972956089949</span> <span class="gp">>>> </span><span class="n">Ai</span><span class="p">,</span><span class="n">Bi</span> <span class="o">=</span> <span class="n">airyai</span><span class="p">,</span><span class="n">airybi</span> <span class="gp">>>> </span><span class="n">Bi</span><span class="p">(</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">Ai</span><span class="p">(</span><span class="n">z</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">Ai</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="o">-</span> <span class="n">Ai</span><span class="p">(</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">Bi</span><span class="p">(</span><span class="n">z</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">Bi</span><span class="p">(</span><span class="o">-</span><span class="n">inf</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="go">0.6095559998265972956089949</span> </pre></div> </div> </dd></dl> </div> </div> <div class="section" id="coulomb-wave-functions"> <h2>Coulomb wave functions<a class="headerlink" href="#coulomb-wave-functions" title="Permalink to this headline">¶</a></h2> <div class="section" id="coulombf"> <h3><tt class="xref docutils literal"><span class="pre">coulombf()</span></tt><a class="headerlink" href="#coulombf" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.coulombf"> <tt class="descclassname">mpmath.</tt><tt class="descname">coulombf</tt><big>(</big><em>l</em>, <em>eta</em>, <em>z</em><big>)</big><a class="headerlink" href="#mpmath.coulombf" title="Permalink to this definition">¶</a></dt> <dd><p>Calculates the regular Coulomb wave function</p> <div class="math"> <p><img src="../_images/math/a283b8ab62fae81fb619684a0e66d3e6bfe3a8b5.png" alt="F_l(\eta,z) = C_l(\eta) z^{l+1} e^{-iz} \,_1F_1(l+1-i\eta, 2l+2, 2iz)" /></p> </div><p>where the normalization constant <img class="math" src="../_images/math/ef1e239b81b7e33781f3acc96f651ebc3e611e92.png" alt="C_l(\eta)"/> is as calculated by <a title="mpmath.coulombc" class="reference internal" href="#mpmath.coulombc"><tt class="xref docutils literal"><span class="pre">coulombc()</span></tt></a>. This function solves the differential equation</p> <div class="math"> <p><img src="../_images/math/891948d264024bc981d13563beb41c78d9ce05a2.png" alt="f''(z) + \left(1-\frac{2\eta}{z}-\frac{l(l+1)}{z^2}\right) f(z) = 0." /></p> </div><p>A second linearly independent solution is given by the irregular Coulomb wave function <img class="math" src="../_images/math/199aaa88a228d74f2bb4939a64e2e63130284634.png" alt="G_l(\eta,z)"/> (see <a title="mpmath.coulombg" class="reference internal" href="#mpmath.coulombg"><tt class="xref docutils literal"><span class="pre">coulombg()</span></tt></a>) and thus the general solution is <img class="math" src="../_images/math/2ea86802c72956bcc750e677f83d5c8e3a8ad736.png" alt="f(z) = C_1 F_l(\eta,z) + C_2 G_l(\eta,z)"/> for arbitrary constants <img class="math" src="../_images/math/70b97eb4ad6e4e7a5a97e2547d9ed6e965960d0c.png" alt="C_1"/>, <img class="math" src="../_images/math/b65e6facfe122c182fe14d503aeace2c52a9739d.png" alt="C_2"/>. Physically, the Coulomb wave functions give the radial solution to the Schrodinger equation for a point particle in a <img class="math" src="../_images/math/d13313d0c14b154544f20ab44394efcae6445964.png" alt="1/z"/> potential; <img class="math" src="../_images/math/b13f21416d84e13708696f34dea81026cda583c9.png" alt="z"/> is then the radius and <img class="math" src="../_images/math/9b25f8e64b484493fda944d25cad453423041fe6.png" alt="l"/>, <img class="math" src="../_images/math/03a45952f8115322d2879f7d090126f059757ba0.png" alt="\eta"/> are quantum numbers.</p> <p>The Coulomb wave functions with real parameters are defined in Abramowitz & Stegun, section 14. However, all parameters are permitted to be complex in this implementation (see references).</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Regular Coulomb wave functions -- equivalent to figure 14.3 in A&S</span> <span class="n">F1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">coulombf</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">F2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">coulombf</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">F3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">coulombf</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">F4</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">coulombf</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">F5</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">coulombf</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">F1</span><span class="p">,</span><span class="n">F2</span><span class="p">,</span><span class="n">F3</span><span class="p">,</span><span class="n">F4</span><span class="p">,</span><span class="n">F5</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">25</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mf">1.2</span><span class="p">,</span><span class="mf">1.6</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/coulombf.png" src="../_images/coulombf.png" /> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Regular Coulomb wave function in the complex plane</span> <span class="n">cplot</span><span class="p">(</span><span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">coulombf</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="n">points</span><span class="o">=</span><span class="mi">50000</span><span class="p">)</span> </pre></div> </div> <img alt="../_images/coulombf_c.png" src="../_images/coulombf_c.png" /> <p><strong>Examples</strong></p> <p>Evaluation is supported for arbitrary magnitudes of <img class="math" src="../_images/math/b13f21416d84e13708696f34dea81026cda583c9.png" alt="z"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">coulombf</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">)</span> <span class="go">0.4080998961088761187426445</span> <span class="gp">>>> </span><span class="n">coulombf</span><span class="p">(</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">)</span> <span class="go">0.7103040849492536747533465</span> <span class="gp">>>> </span><span class="n">coulombf</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="s">'1e-10'</span><span class="p">)</span> <span class="go">4.143324917492256448770769e-33</span> <span class="gp">>>> </span><span class="n">coulombf</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span> <span class="go">0.4482623140325567050716179</span> <span class="gp">>>> </span><span class="n">coulombf</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mi">10</span><span class="o">**</span><span class="mi">10</span><span class="p">)</span> <span class="go">-0.066804196437694360046619</span> </pre></div> </div> <p>Verifying the differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">l</span><span class="p">,</span> <span class="n">eta</span><span class="p">,</span> <span class="n">z</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">2.75</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">A</span><span class="p">,</span> <span class="n">B</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span> <span class="gp">>>> </span><span class="n">f</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">A</span><span class="o">*</span><span class="n">coulombf</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="o">+</span> <span class="n">B</span><span class="o">*</span><span class="n">coulombg</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">chop</span><span class="p">(</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="mi">1</span><span class="o">-</span><span class="mi">2</span><span class="o">*</span><span class="n">eta</span><span class="o">/</span><span class="n">z</span> <span class="o">-</span> <span class="n">l</span><span class="o">*</span><span class="p">(</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">f</span><span class="p">(</span><span class="n">z</span><span class="p">))</span> <span class="go">0.0</span> </pre></div> </div> <p>A Wronskian relation satisfied by the Coulomb wave functions:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">l</span> <span class="o">=</span> <span class="mi">2</span> <span class="gp">>>> </span><span class="n">eta</span> <span class="o">=</span> <span class="mf">1.5</span> <span class="gp">>>> </span><span class="n">F</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">coulombf</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">coulombg</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="k">for</span> <span class="n">z</span> <span class="ow">in</span> <span class="p">[</span><span class="mf">3.5</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="o">+</span><span class="mi">3</span><span class="n">j</span><span class="p">]:</span> <span class="gp">... </span> <span class="n">chop</span><span class="p">(</span><span class="n">diff</span><span class="p">(</span><span class="n">F</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">G</span><span class="p">(</span><span class="n">z</span><span class="p">)</span> <span class="o">-</span> <span class="n">F</span><span class="p">(</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">G</span><span class="p">,</span><span class="n">z</span><span class="p">))</span> <span class="gp">...</span> <span class="go">1.0</span> <span class="go">1.0</span> <span class="go">1.0</span> </pre></div> </div> <p>Another Wronskian relation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">F</span> <span class="o">=</span> <span class="n">coulombf</span> <span class="gp">>>> </span><span class="n">G</span> <span class="o">=</span> <span class="n">coulombg</span> <span class="gp">>>> </span><span class="k">for</span> <span class="n">z</span> <span class="ow">in</span> <span class="p">[</span><span class="mf">3.5</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="o">+</span><span class="mi">3</span><span class="n">j</span><span class="p">]:</span> <span class="gp">... </span> <span class="n">chop</span><span class="p">(</span><span class="n">F</span><span class="p">(</span><span class="n">l</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">G</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">-</span><span class="n">F</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">G</span><span class="p">(</span><span class="n">l</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="o">-</span> <span class="n">l</span><span class="o">/</span><span class="n">sqrt</span><span class="p">(</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">eta</span><span class="o">**</span><span class="mi">2</span><span class="p">))</span> <span class="gp">...</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="go">0.0</span> </pre></div> </div> <p>An integral identity connecting the regular and irregular wave functions:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">l</span><span class="p">,</span> <span class="n">eta</span><span class="p">,</span> <span class="n">z</span> <span class="o">=</span> <span class="mi">4</span><span class="o">+</span><span class="n">j</span><span class="p">,</span> <span class="mi">2</span><span class="o">-</span><span class="n">j</span><span class="p">,</span> <span class="mi">5</span><span class="o">+</span><span class="mi">2</span><span class="n">j</span> <span class="gp">>>> </span><span class="n">coulombf</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="o">+</span> <span class="n">j</span><span class="o">*</span><span class="n">coulombg</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">(0.7997977752284033239714479 + 0.9294486669502295512503127j)</span> <span class="gp">>>> </span><span class="n">g</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">t</span><span class="p">:</span> <span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">t</span><span class="p">)</span><span class="o">*</span><span class="n">t</span><span class="o">**</span><span class="p">(</span><span class="n">l</span><span class="o">-</span><span class="n">j</span><span class="o">*</span><span class="n">eta</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">t</span><span class="o">+</span><span class="mi">2</span><span class="o">*</span><span class="n">j</span><span class="o">*</span><span class="n">z</span><span class="p">)</span><span class="o">**</span><span class="p">(</span><span class="n">l</span><span class="o">+</span><span class="n">j</span><span class="o">*</span><span class="n">eta</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">j</span><span class="o">*</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">j</span><span class="o">*</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">z</span><span class="o">**</span><span class="p">(</span><span class="o">-</span><span class="n">l</span><span class="p">)</span><span class="o">/</span><span class="n">fac</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="n">coulombc</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">)</span><span class="o">*</span><span class="n">quad</span><span class="p">(</span><span class="n">g</span><span class="p">,</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="n">inf</span><span class="p">])</span> <span class="go">(0.7997977752284033239714479 + 0.9294486669502295512503127j)</span> </pre></div> </div> <p>Some test case with complex parameters, taken from Michel [2]:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">15</span> <span class="gp">>>> </span><span class="n">coulombf</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="mf">0.1</span><span class="n">j</span><span class="p">,</span> <span class="mi">50</span><span class="o">+</span><span class="mi">50</span><span class="n">j</span><span class="p">,</span> <span class="mf">100.156</span><span class="p">)</span> <span class="go">(-1.02107292320897e+15 - 2.83675545731519e+15j)</span> <span class="gp">>>> </span><span class="n">coulombg</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="mf">0.1</span><span class="n">j</span><span class="p">,</span> <span class="mi">50</span><span class="o">+</span><span class="mi">50</span><span class="n">j</span><span class="p">,</span> <span class="mf">100.156</span><span class="p">)</span> <span class="go">(2.83675545731519e+15 - 1.02107292320897e+15j)</span> <span class="gp">>>> </span><span class="n">coulombf</span><span class="p">(</span><span class="mf">1e-5</span><span class="n">j</span><span class="p">,</span> <span class="mi">10</span><span class="o">+</span><span class="mf">1e-5</span><span class="n">j</span><span class="p">,</span> <span class="mf">0.1</span><span class="o">+</span><span class="mf">1e-6</span><span class="n">j</span><span class="p">)</span> <span class="go">(4.30566371247811e-14 - 9.03347835361657e-19j)</span> <span class="gp">>>> </span><span class="n">coulombg</span><span class="p">(</span><span class="mf">1e-5</span><span class="n">j</span><span class="p">,</span> <span class="mi">10</span><span class="o">+</span><span class="mf">1e-5</span><span class="n">j</span><span class="p">,</span> <span class="mf">0.1</span><span class="o">+</span><span class="mf">1e-6</span><span class="n">j</span><span class="p">)</span> <span class="go">(778709182061.134 + 18418936.2660553j)</span> </pre></div> </div> <p>The following reproduces a table in Abramowitz & Stegun, at twice the precision:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">10</span> <span class="gp">>>> </span><span class="n">eta</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="n">z</span> <span class="o">=</span> <span class="mi">5</span> <span class="gp">>>> </span><span class="k">for</span> <span class="n">l</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">]:</span> <span class="gp">... </span> <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">l</span><span class="p">,</span> <span class="n">coulombf</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="gp">... </span> <span class="n">diff</span><span class="p">(</span><span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">coulombf</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="n">z</span><span class="p">)))</span> <span class="gp">...</span> <span class="go">5 0.09079533488 0.1042553261</span> <span class="go">4 0.2148205331 0.2029591779</span> <span class="go">3 0.4313159311 0.320534053</span> <span class="go">2 0.7212774133 0.3952408216</span> <span class="go">1 0.9935056752 0.3708676452</span> <span class="go">0 1.143337392 0.2937960375</span> </pre></div> </div> <p><strong>References</strong></p> <ol class="arabic simple"> <li>I.J. Thompson & A.R. Barnett, “Coulomb and Bessel Functions of Complex Arguments and Order”, J. Comp. Phys., vol 64, no. 2, June 1986.</li> <li>N. Michel, “Precise Coulomb wave functions for a wide range of complex <img class="math" src="../_images/math/9b25f8e64b484493fda944d25cad453423041fe6.png" alt="l"/>, <img class="math" src="../_images/math/03a45952f8115322d2879f7d090126f059757ba0.png" alt="\eta"/> and <img class="math" src="../_images/math/b13f21416d84e13708696f34dea81026cda583c9.png" alt="z"/>“, <a class="reference external" href="http://arxiv.org/abs/physics/0702051v1">http://arxiv.org/abs/physics/0702051v1</a></li> </ol> </dd></dl> </div> <div class="section" id="coulombg"> <h3><tt class="xref docutils literal"><span class="pre">coulombg()</span></tt><a class="headerlink" href="#coulombg" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.coulombg"> <tt class="descclassname">mpmath.</tt><tt class="descname">coulombg</tt><big>(</big><em>l</em>, <em>eta</em>, <em>z</em><big>)</big><a class="headerlink" href="#mpmath.coulombg" title="Permalink to this definition">¶</a></dt> <dd><p>Calculates the irregular Coulomb wave function</p> <div class="math"> <p><img src="../_images/math/e3061cc807e8e45364e20ea9937ba4c6f4903fdf.png" alt="G_l(\eta,z) = \frac{F_l(\eta,z) \cos(\chi) - F_{-l-1}(\eta,z)}{\sin(\chi)}" /></p> </div><p>where <img class="math" src="../_images/math/3d69b2aac14535042a5118dd762d76bc924541dc.png" alt="\chi = \sigma_l - \sigma_{-l-1} - (l+1/2) \pi"/> and <img class="math" src="../_images/math/1e5f2cda9f30e017ceef9b0e1d0940e6d442b101.png" alt="\sigma_l(\eta) = (\ln \Gamma(1+l+i\eta)-\ln \Gamma(1+l-i\eta))/(2i)"/>.</p> <p>See <a title="mpmath.coulombf" class="reference internal" href="#mpmath.coulombf"><tt class="xref docutils literal"><span class="pre">coulombf()</span></tt></a> for additional information.</p> <p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Irregular Coulomb wave functions -- equivalent to figure 14.5 in A&S</span> <span class="n">F1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">coulombg</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">F2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">coulombg</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">F3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">coulombg</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">F4</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">coulombg</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">F5</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">coulombg</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">F1</span><span class="p">,</span><span class="n">F2</span><span class="p">,</span><span class="n">F3</span><span class="p">,</span><span class="n">F4</span><span class="p">,</span><span class="n">F5</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">30</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/coulombg.png" src="../_images/coulombg.png" /> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Irregular Coulomb wave function in the complex plane</span> <span class="n">cplot</span><span class="p">(</span><span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">coulombg</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="n">points</span><span class="o">=</span><span class="mi">50000</span><span class="p">)</span> </pre></div> </div> <img alt="../_images/coulombg_c.png" src="../_images/coulombg_c.png" /> <p><strong>Examples</strong></p> <p>Evaluation is supported for arbitrary magnitudes of <img class="math" src="../_images/math/b13f21416d84e13708696f34dea81026cda583c9.png" alt="z"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">coulombg</span><span class="p">(</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">)</span> <span class="go">1.380011900612186346255524</span> <span class="gp">>>> </span><span class="n">coulombg</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">)</span> <span class="go">1.919153700722748795245926</span> <span class="gp">>>> </span><span class="n">coulombg</span><span class="p">(</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="s">'1e-10'</span><span class="p">)</span> <span class="go">201126715824.7329115106793</span> <span class="gp">>>> </span><span class="n">coulombg</span><span class="p">(</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span> <span class="go">0.1802071520691149410425512</span> <span class="gp">>>> </span><span class="n">coulombg</span><span class="p">(</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mi">10</span><span class="o">**</span><span class="mi">10</span><span class="p">)</span> <span class="go">0.652103020061678070929794</span> </pre></div> </div> <p>The following reproduces a table in Abramowitz & Stegun, at twice the precision:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">10</span> <span class="gp">>>> </span><span class="n">eta</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="n">z</span> <span class="o">=</span> <span class="mi">5</span> <span class="gp">>>> </span><span class="k">for</span> <span class="n">l</span> <span class="ow">in</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">]:</span> <span class="gp">... </span> <span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">l</span><span class="p">,</span> <span class="n">coulombg</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="gp">... </span> <span class="o">-</span><span class="n">diff</span><span class="p">(</span><span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">coulombg</span><span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">eta</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="n">z</span><span class="p">)))</span> <span class="gp">...</span> <span class="go">1 1.08148276 0.6028279961</span> <span class="go">2 1.496877075 0.5661803178</span> <span class="go">3 2.048694714 0.7959909551</span> <span class="go">4 3.09408669 1.731802374</span> <span class="go">5 5.629840456 4.549343289</span> </pre></div> </div> <p>Evaluation close to the singularity at <img class="math" src="../_images/math/aa9f0d97d2f39f78f05e05da40bf04f5a7c0726c.png" alt="z = 0"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">15</span> <span class="gp">>>> </span><span class="n">coulombg</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="go">3088184933.67358</span> <span class="gp">>>> </span><span class="n">coulombg</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="s">'1e-10'</span><span class="p">)</span> <span class="go">5554866000719.8</span> <span class="gp">>>> </span><span class="n">coulombg</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="s">'1e-100'</span><span class="p">)</span> <span class="go">5554866221524.1</span> </pre></div> </div> <p>Evaluation with a half-integer value for <img class="math" src="../_images/math/9b25f8e64b484493fda944d25cad453423041fe6.png" alt="l"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">coulombg</span><span class="p">(</span><span class="mf">1.5</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="go">0.852320038297334</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="coulombc"> <h3><tt class="xref docutils literal"><span class="pre">coulombc()</span></tt><a class="headerlink" href="#coulombc" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.coulombc"> <tt class="descclassname">mpmath.</tt><tt class="descname">coulombc</tt><big>(</big><em>l</em>, <em>eta</em><big>)</big><a class="headerlink" href="#mpmath.coulombc" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the normalizing Gamow constant for Coulomb wave functions,</p> <div class="math"> <p><img src="../_images/math/26d0b364726fbe56802ea8af9b4d5ad755594b7f.png" alt="C_l(\eta) = 2^l \exp\left(-\pi \eta/2 + [\ln \Gamma(1+l+i\eta) + \ln \Gamma(1+l-i\eta)]/2 - \ln \Gamma(2l+2)\right)," /></p> </div><p>where the log gamma function with continuous imaginary part away from the negative half axis (see <a title="mpmath.loggamma" class="reference external" href="gamma.html#mpmath.loggamma"><tt class="xref docutils literal"><span class="pre">loggamma()</span></tt></a>) is implied.</p> <p>This function is used internally for the calculation of Coulomb wave functions, and automatically cached to make multiple evaluations with fixed <img class="math" src="../_images/math/9b25f8e64b484493fda944d25cad453423041fe6.png" alt="l"/>, <img class="math" src="../_images/math/03a45952f8115322d2879f7d090126f059757ba0.png" alt="\eta"/> fast.</p> </dd></dl> </div> </div> <div class="section" id="confluent-u-and-whittaker-functions"> <h2>Confluent U and Whittaker functions<a class="headerlink" href="#confluent-u-and-whittaker-functions" title="Permalink to this headline">¶</a></h2> <div class="section" id="hyperu"> <h3><tt class="xref docutils literal"><span class="pre">hyperu()</span></tt><a class="headerlink" href="#hyperu" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.hyperu"> <tt class="descclassname">mpmath.</tt><tt class="descname">hyperu</tt><big>(</big><em>a</em>, <em>b</em>, <em>z</em><big>)</big><a class="headerlink" href="#mpmath.hyperu" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the Tricomi confluent hypergeometric function <img class="math" src="../_images/math/e2bbebb3bd73f1ae5c64098ab0244f739abf7ca4.png" alt="U"/>, also known as the Kummer or confluent hypergeometric function of the second kind. This function gives a second linearly independent solution to the confluent hypergeometric differential equation (the first is provided by <img class="math" src="../_images/math/ba4af6c1dfcc5d743f9d1fe0958e045fe27b68db.png" alt="\,_1F_1"/> – see <a title="mpmath.hyp1f1" class="reference external" href="hypergeometric.html#mpmath.hyp1f1"><tt class="xref docutils literal"><span class="pre">hyp1f1()</span></tt></a>).</p> <p><strong>Examples</strong></p> <p>Evaluation for arbitrary complex arguments:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">hyperu</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">)</span> <span class="go">0.0625</span> <span class="gp">>>> </span><span class="n">hyperu</span><span class="p">(</span><span class="mf">0.25</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span> <span class="go">0.1779949416140579573763523</span> <span class="gp">>>> </span><span class="n">hyperu</span><span class="p">(</span><span class="mf">0.25</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="o">-</span><span class="mi">1000</span><span class="p">)</span> <span class="go">(0.1256256609322773150118907 - 0.1256256609322773150118907j)</span> </pre></div> </div> <p>The <img class="math" src="../_images/math/e2bbebb3bd73f1ae5c64098ab0244f739abf7ca4.png" alt="U"/> function may be singular at <img class="math" src="../_images/math/aa9f0d97d2f39f78f05e05da40bf04f5a7c0726c.png" alt="z = 0"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">hyperu</span><span class="p">(</span><span class="mf">1.5</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="go">+inf</span> <span class="gp">>>> </span><span class="n">hyperu</span><span class="p">(</span><span class="mf">1.5</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="go">0.1719434921288400112603671</span> </pre></div> </div> <p>Verifying the differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">a</span><span class="p">,</span> <span class="n">b</span> <span class="o">=</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mi">2</span> <span class="gp">>>> </span><span class="n">f</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">hyperu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="k">for</span> <span class="n">z</span> <span class="ow">in</span> <span class="p">[</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="o">+</span><span class="mi">4</span><span class="n">j</span><span class="p">]:</span> <span class="gp">... </span> <span class="n">chop</span><span class="p">(</span><span class="n">z</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="n">b</span><span class="o">-</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="o">-</span> <span class="n">a</span><span class="o">*</span><span class="n">f</span><span class="p">(</span><span class="n">z</span><span class="p">))</span> <span class="gp">...</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="go">0.0</span> </pre></div> </div> <p>An integral representation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="n">z</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">,</span> <span class="mf">4.25</span> <span class="gp">>>> </span><span class="n">hyperu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">0.06674960718150520648014567</span> <span class="gp">>>> </span><span class="n">quad</span><span class="p">(</span><span class="k">lambda</span> <span class="n">t</span><span class="p">:</span> <span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">z</span><span class="o">*</span><span class="n">t</span><span class="p">)</span><span class="o">*</span><span class="n">t</span><span class="o">**</span><span class="p">(</span><span class="n">a</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="n">t</span><span class="p">)</span><span class="o">**</span><span class="p">(</span><span class="n">b</span><span class="o">-</span><span class="n">a</span><span class="o">-</span><span class="mi">1</span><span class="p">),[</span><span class="mi">0</span><span class="p">,</span><span class="n">inf</span><span class="p">])</span> <span class="o">/</span> <span class="n">gamma</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="go">0.06674960718150520648014567</span> </pre></div> </div> <p>[1] <a class="reference external" href="http://www.math.ucla.edu/~cbm/aands/page_504.htm">http://www.math.ucla.edu/~cbm/aands/page_504.htm</a></p> </dd></dl> </div> <div class="section" id="whitm"> <h3><tt class="xref docutils literal"><span class="pre">whitm()</span></tt><a class="headerlink" href="#whitm" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.whitm"> <tt class="descclassname">mpmath.</tt><tt class="descname">whitm</tt><big>(</big><em>k</em>, <em>m</em>, <em>z</em><big>)</big><a class="headerlink" href="#mpmath.whitm" title="Permalink to this definition">¶</a></dt> <dd><p>Evaluates the Whittaker function <img class="math" src="../_images/math/f667b8389bb3a81eb990a2dd11109ff978b31edd.png" alt="M(k,m,z)"/>, which gives a solution to the Whittaker differential equation</p> <div class="math"> <p><img src="../_images/math/d7363950ed14fc98684745e1e689614201c440da.png" alt="\frac{d^2f}{dz^2} + \left(-\frac{1}{4}+\frac{k}{z}+ \frac{(\frac{1}{4}-m^2)}{z^2}\right) f = 0." /></p> </div><p>A second solution is given by <a title="mpmath.whitw" class="reference internal" href="#mpmath.whitw"><tt class="xref docutils literal"><span class="pre">whitw()</span></tt></a>.</p> <p>The Whittaker functions are defined in Abramowitz & Stegun, section 13.1. They are alternate forms of the confluent hypergeometric functions <img class="math" src="../_images/math/ba4af6c1dfcc5d743f9d1fe0958e045fe27b68db.png" alt="\,_1F_1"/> and <img class="math" src="../_images/math/e2bbebb3bd73f1ae5c64098ab0244f739abf7ca4.png" alt="U"/>:</p> <div class="math"> <p><img src="../_images/math/ae4e335d65642c095b55a39216463758b6292363.png" alt="M(k,m,z) = e^{-\frac{1}{2}z} z^{\frac{1}{2}+m} \,_1F_1(\tfrac{1}{2}+m-k, 1+2m, z) W(k,m,z) = e^{-\frac{1}{2}z} z^{\frac{1}{2}+m} U(\tfrac{1}{2}+m-k, 1+2m, z)." /></p> </div><p><strong>Examples</strong></p> <p>Evaluation for arbitrary real and complex arguments is supported:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">whitm</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="go">0.7302596799460411820509668</span> <span class="gp">>>> </span><span class="n">whitm</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">(0.0 - 1.417977827655098025684246j)</span> <span class="gp">>>> </span><span class="n">whitm</span><span class="p">(</span><span class="n">j</span><span class="p">,</span> <span class="n">j</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="o">+</span><span class="mi">3</span><span class="n">j</span><span class="p">)</span> <span class="go">(3.245477713363581112736478 - 0.822879187542699127327782j)</span> <span class="gp">>>> </span><span class="n">whitm</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">100000</span><span class="p">)</span> <span class="go">4.303985255686378497193063e+21707</span> </pre></div> </div> <p>Evaluation at zero:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">whitm</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span> <span class="n">whitm</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mf">0.5</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span> <span class="n">whitm</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="go">+inf</span> <span class="go">nan</span> <span class="go">0.0</span> </pre></div> </div> <p>We can verify that <a title="mpmath.whitm" class="reference internal" href="#mpmath.whitm"><tt class="xref docutils literal"><span class="pre">whitm()</span></tt></a> numerically satisfies the differential equation for arbitrarily chosen values:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">k</span> <span class="o">=</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">0.25</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">m</span> <span class="o">=</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">1.5</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">f</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">whitm</span><span class="p">(</span><span class="n">k</span><span class="p">,</span><span class="n">m</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="k">for</span> <span class="n">z</span> <span class="ow">in</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="o">+</span><span class="mi">2</span><span class="n">j</span><span class="p">]:</span> <span class="gp">... </span> <span class="n">chop</span><span class="p">(</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="o">-</span><span class="mf">0.25</span> <span class="o">+</span> <span class="n">k</span><span class="o">/</span><span class="n">z</span> <span class="o">+</span> <span class="p">(</span><span class="mf">0.25</span><span class="o">-</span><span class="n">m</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">f</span><span class="p">(</span><span class="n">z</span><span class="p">))</span> <span class="gp">...</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="go">0.0</span> </pre></div> </div> <p>An integral involving both <a title="mpmath.whitm" class="reference internal" href="#mpmath.whitm"><tt class="xref docutils literal"><span class="pre">whitm()</span></tt></a> and <a title="mpmath.whitw" class="reference internal" href="#mpmath.whitw"><tt class="xref docutils literal"><span class="pre">whitw()</span></tt></a>, verifying evaluation along the real axis:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">quad</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">x</span><span class="p">)</span><span class="o">*</span><span class="n">whitm</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span><span class="o">*</span><span class="n">whitw</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">),</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="n">inf</span><span class="p">])</span> <span class="go">3.438869842576800225207341</span> <span class="gp">>>> </span><span class="mi">128</span><span class="o">/</span><span class="p">(</span><span class="mi">21</span><span class="o">*</span><span class="n">sqrt</span><span class="p">(</span><span class="n">pi</span><span class="p">))</span> <span class="go">3.438869842576800225207341</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="whitw"> <h3><tt class="xref docutils literal"><span class="pre">whitw()</span></tt><a class="headerlink" href="#whitw" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.whitw"> <tt class="descclassname">mpmath.</tt><tt class="descname">whitw</tt><big>(</big><em>k</em>, <em>m</em>, <em>z</em><big>)</big><a class="headerlink" href="#mpmath.whitw" title="Permalink to this definition">¶</a></dt> <dd><p>Evaluates the Whittaker function <img class="math" src="../_images/math/8a02d41253012b7698ca872a35b6e043f8214474.png" alt="W(k,m,z)"/>, which gives a second solution to the Whittaker differential equation. (See <a title="mpmath.whitm" class="reference internal" href="#mpmath.whitm"><tt class="xref docutils literal"><span class="pre">whitm()</span></tt></a>.)</p> <p><strong>Examples</strong></p> <p>Evaluation for arbitrary real and complex arguments is supported:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">whitw</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="go">1.19532063107581155661012</span> <span class="gp">>>> </span><span class="n">whitw</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="go">(-0.9424875979222187313924639 - 0.2607738054097702293308689j)</span> <span class="gp">>>> </span><span class="n">whitw</span><span class="p">(</span><span class="n">j</span><span class="p">,</span> <span class="n">j</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="o">+</span><span class="mi">3</span><span class="n">j</span><span class="p">)</span> <span class="go">(0.1782899315111033879430369 - 0.01609578360403649340169406j)</span> <span class="gp">>>> </span><span class="n">whitw</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">100000</span><span class="p">)</span> <span class="go">1.887705114889527446891274e-21705</span> <span class="gp">>>> </span><span class="n">whitw</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span> <span class="go">1.905250692824046162462058e-24</span> </pre></div> </div> <p>Evaluation at zero:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mi">1</span><span class="p">]:</span> <span class="gp">... </span> <span class="n">whitw</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">m</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="gp">...</span> <span class="go">+inf</span> <span class="go">nan</span> <span class="go">0.0</span> <span class="go">nan</span> <span class="go">+inf</span> </pre></div> </div> <p>We can verify that <a title="mpmath.whitw" class="reference internal" href="#mpmath.whitw"><tt class="xref docutils literal"><span class="pre">whitw()</span></tt></a> numerically satisfies the differential equation for arbitrarily chosen values:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">k</span> <span class="o">=</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">0.25</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">m</span> <span class="o">=</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">1.5</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">f</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">whitw</span><span class="p">(</span><span class="n">k</span><span class="p">,</span><span class="n">m</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="k">for</span> <span class="n">z</span> <span class="ow">in</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="o">+</span><span class="mi">2</span><span class="n">j</span><span class="p">]:</span> <span class="gp">... </span> <span class="n">chop</span><span class="p">(</span><span class="n">diff</span><span class="p">(</span><span class="n">f</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="o">-</span><span class="mf">0.25</span> <span class="o">+</span> <span class="n">k</span><span class="o">/</span><span class="n">z</span> <span class="o">+</span> <span class="p">(</span><span class="mf">0.25</span><span class="o">-</span><span class="n">m</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">f</span><span class="p">(</span><span class="n">z</span><span class="p">))</span> <span class="gp">...</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="go">0.0</span> <span class="go">0.0</span> </pre></div> </div> </dd></dl> </div> </div> <div class="section" id="parabolic-cylinder-functions"> <h2>Parabolic cylinder functions<a class="headerlink" href="#parabolic-cylinder-functions" title="Permalink to this headline">¶</a></h2> <div class="section" id="pcfd"> <h3><tt class="xref docutils literal"><span class="pre">pcfd()</span></tt><a class="headerlink" href="#pcfd" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.pcfd"> <tt class="descclassname">mpmath.</tt><tt class="descname">pcfd</tt><big>(</big><em>n</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.pcfd" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the parabolic cylinder function in Whittaker’s notation <img class="math" src="../_images/math/73b8ff47a1869477d0af351f94215e435c710aee.png" alt="D_n(z) = U(-n-1/2, z)"/> (see <a title="mpmath.pcfu" class="reference internal" href="#mpmath.pcfu"><tt class="xref docutils literal"><span class="pre">pcfu()</span></tt></a>). It solves the differential equation</p> <div class="math"> <p><img src="../_images/math/b28cf128fc51c9c9169370bbe7f7bb1b4655c0da.png" alt="y'' + \left(n + \frac{1}{2} - \frac{1}{4} z^2\right) y = 0." /></p> </div><p>and can be represented in terms of Hermite polynomials (see <a title="mpmath.hermite" class="reference external" href="orthogonal.html#mpmath.hermite"><tt class="xref docutils literal"><span class="pre">hermite()</span></tt></a>) as</p> <div class="math"> <p><img src="../_images/math/972945b0d6508b426aff9c67e6a5e10030734f29.png" alt="D_n(z) = 2^{-n/2} e^{-z^2/4} H_n\left(\frac{z}{\sqrt{2}}\right)." /></p> </div><p><strong>Plots</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="c"># Parabolic cylinder function D_n(x) on the real line for n=0,1,2,3,4</span> <span class="n">d0</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">pcfd</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">d1</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">pcfd</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">d2</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">pcfd</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">d3</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">pcfd</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">d4</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">pcfd</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="n">x</span><span class="p">)</span> <span class="n">plot</span><span class="p">([</span><span class="n">d0</span><span class="p">,</span><span class="n">d1</span><span class="p">,</span><span class="n">d2</span><span class="p">,</span><span class="n">d3</span><span class="p">,</span><span class="n">d4</span><span class="p">],[</span><span class="o">-</span><span class="mi">7</span><span class="p">,</span><span class="mi">7</span><span class="p">])</span> </pre></div> </div> <img alt="../_images/pcfd.png" src="../_images/pcfd.png" /> <p><strong>Examples</strong></p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">pcfd</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span> <span class="n">pcfd</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span> <span class="n">pcfd</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span> <span class="n">pcfd</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="go">1.0</span> <span class="go">0.0</span> <span class="go">-1.0</span> <span class="go">0.0</span> <span class="gp">>>> </span><span class="n">pcfd</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span> <span class="n">pcfd</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="go">3.0</span> <span class="go">0.6266570686577501256039413</span> <span class="gp">>>> </span><span class="n">pcfd</span><span class="p">(</span><span class="s">'1/2'</span><span class="p">,</span> <span class="mi">2</span><span class="o">+</span><span class="mi">3</span><span class="n">j</span><span class="p">)</span> <span class="go">(-5.363331161232920734849056 - 3.858877821790010714163487j)</span> <span class="gp">>>> </span><span class="n">pcfd</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">10</span><span class="p">)</span> <span class="go">1.374906442631438038871515e-9</span> </pre></div> </div> <p>Verifying the differential equation:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">n</span> <span class="o">=</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">2.5</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">y</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">pcfd</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="mf">1.75</span> <span class="gp">>>> </span><span class="n">chop</span><span class="p">(</span><span class="n">diff</span><span class="p">(</span><span class="n">y</span><span class="p">,</span><span class="n">z</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="n">n</span><span class="o">+</span><span class="mf">0.5</span><span class="o">-</span><span class="mf">0.25</span><span class="o">*</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">y</span><span class="p">(</span><span class="n">z</span><span class="p">))</span> <span class="go">0.0</span> </pre></div> </div> <p>Rational Taylor series expansion when <img class="math" src="../_images/math/174fadd07fd54c9afe288e96558c92e0c1da733a.png" alt="n"/> is an integer:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">taylor</span><span class="p">(</span><span class="k">lambda</span> <span class="n">z</span><span class="p">:</span> <span class="n">pcfd</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="n">z</span><span class="p">),</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">7</span><span class="p">)</span> <span class="go">[0.0, 15.0, 0.0, -13.75, 0.0, 3.96875, 0.0, -0.6015625]</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="pcfu"> <h3><tt class="xref docutils literal"><span class="pre">pcfu()</span></tt><a class="headerlink" href="#pcfu" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.pcfu"> <tt class="descclassname">mpmath.</tt><tt class="descname">pcfu</tt><big>(</big><em>a</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.pcfu" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the parabolic cylinder function <img class="math" src="../_images/math/a17bbe3da7ecf6b0d707ea207a4fe65625089ec6.png" alt="U(a,z)"/>, which may be defined for <img class="math" src="../_images/math/adaa7d65602c807aea530bf7e2db1a7897dd68bd.png" alt="\Re(z) > 0"/> in terms of the confluent U-function (see <a title="mpmath.hyperu" class="reference internal" href="#mpmath.hyperu"><tt class="xref docutils literal"><span class="pre">hyperu()</span></tt></a>) by</p> <div class="math"> <p><img src="../_images/math/be808d05ea4cb0a0e2e906e6090ff93d9a102269.png" alt="U(a,z) = 2^{-\frac{1}{4}-\frac{a}{2}} e^{-\frac{1}{4} z^2} U\left(\frac{a}{2}+\frac{1}{4}, \frac{1}{2}, \frac{1}{2}z^2\right)" /></p> </div><p>or, for arbitrary <img class="math" src="../_images/math/b13f21416d84e13708696f34dea81026cda583c9.png" alt="z"/>,</p> <div class="math"> <p><img src="../_images/math/bef7fadc683250e6e68e38a3c7a5859ce36d4d6e.png" alt="e^{-\frac{1}{4}z^2} U(a,z) = U(a,0) \,_1F_1\left(-\tfrac{a}{2}+\tfrac{1}{4}; \tfrac{1}{2}; -\tfrac{1}{2}z^2\right) + U'(a,0) z \,_1F_1\left(-\tfrac{a}{2}+\tfrac{3}{4}; \tfrac{3}{2}; -\tfrac{1}{2}z^2\right)." /></p> </div><p><strong>Examples</strong></p> <p>Connection to other functions:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="n">mpf</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">pcfu</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">0.03210358129311151450551963</span> <span class="gp">>>> </span><span class="n">sqrt</span><span class="p">(</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">exp</span><span class="p">(</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="mi">4</span><span class="p">)</span><span class="o">*</span><span class="n">erfc</span><span class="p">(</span><span class="n">z</span><span class="o">/</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span> <span class="go">0.03210358129311151450551963</span> <span class="gp">>>> </span><span class="n">pcfu</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span><span class="o">-</span><span class="n">z</span><span class="p">)</span> <span class="go">23.75012332835297233711255</span> <span class="gp">>>> </span><span class="n">sqrt</span><span class="p">(</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">exp</span><span class="p">(</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="mi">4</span><span class="p">)</span><span class="o">*</span><span class="n">erfc</span><span class="p">(</span><span class="o">-</span><span class="n">z</span><span class="o">/</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span> <span class="go">23.75012332835297233711255</span> <span class="gp">>>> </span><span class="n">pcfu</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span><span class="o">-</span><span class="n">z</span><span class="p">)</span> <span class="go">23.75012332835297233711255</span> <span class="gp">>>> </span><span class="n">sqrt</span><span class="p">(</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">exp</span><span class="p">(</span><span class="n">z</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="mi">4</span><span class="p">)</span><span class="o">*</span><span class="n">erfc</span><span class="p">(</span><span class="o">-</span><span class="n">z</span><span class="o">/</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span> <span class="go">23.75012332835297233711255</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="pcfv"> <h3><tt class="xref docutils literal"><span class="pre">pcfv()</span></tt><a class="headerlink" href="#pcfv" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.pcfv"> <tt class="descclassname">mpmath.</tt><tt class="descname">pcfv</tt><big>(</big><em>a</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.pcfv" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the parabolic cylinder function <img class="math" src="../_images/math/b42b729312947f9bbe63b7c432de39b47840ca1f.png" alt="V(a,z)"/>, which can be represented in terms of <a title="mpmath.pcfu" class="reference internal" href="#mpmath.pcfu"><tt class="xref docutils literal"><span class="pre">pcfu()</span></tt></a> as</p> <div class="math"> <p><img src="../_images/math/99402d561549693b7a3e67a5356968b5342b7b94.png" alt="V(a,z) = \frac{\Gamma(a+\tfrac{1}{2}) (U(a,-z)-\sin(\pi a) U(a,z)}{\pi}." /></p> </div><p><strong>Examples</strong></p> <p>Wronskian relation between <img class="math" src="../_images/math/e2bbebb3bd73f1ae5c64098ab0244f739abf7ca4.png" alt="U"/> and <img class="math" src="../_images/math/12d58aa29201da09d8e620f8698e3a37547f6b4a.png" alt="V"/>:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">a</span><span class="p">,</span> <span class="n">z</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span> <span class="gp">>>> </span><span class="n">pcfu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">pcfv</span><span class="p">,(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">),(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span><span class="o">-</span><span class="n">diff</span><span class="p">(</span><span class="n">pcfu</span><span class="p">,(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">),(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span><span class="o">*</span><span class="n">pcfv</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">0.7978845608028653558798921</span> <span class="gp">>>> </span><span class="n">sqrt</span><span class="p">(</span><span class="mi">2</span><span class="o">/</span><span class="n">pi</span><span class="p">)</span> <span class="go">0.7978845608028653558798921</span> <span class="gp">>>> </span><span class="n">a</span><span class="p">,</span> <span class="n">z</span> <span class="o">=</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mi">3</span> <span class="gp">>>> </span><span class="n">pcfu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">pcfv</span><span class="p">,(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">),(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span><span class="o">-</span><span class="n">diff</span><span class="p">(</span><span class="n">pcfu</span><span class="p">,(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">),(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span><span class="o">*</span><span class="n">pcfv</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">0.7978845608028653558798921</span> <span class="gp">>>> </span><span class="n">a</span><span class="p">,</span> <span class="n">z</span> <span class="o">=</span> <span class="mf">0.25</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span> <span class="gp">>>> </span><span class="n">pcfu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">pcfv</span><span class="p">,(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">),(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span><span class="o">-</span><span class="n">diff</span><span class="p">(</span><span class="n">pcfu</span><span class="p">,(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">),(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span><span class="o">*</span><span class="n">pcfv</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">)</span> <span class="go">0.7978845608028653558798921</span> <span class="gp">>>> </span><span class="n">a</span><span class="p">,</span> <span class="n">z</span> <span class="o">=</span> <span class="mi">2</span><span class="o">+</span><span class="mi">1</span><span class="n">j</span><span class="p">,</span> <span class="mi">2</span><span class="o">+</span><span class="mi">3</span><span class="n">j</span> <span class="gp">>>> </span><span class="n">chop</span><span class="p">(</span><span class="n">pcfu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">)</span><span class="o">*</span><span class="n">diff</span><span class="p">(</span><span class="n">pcfv</span><span class="p">,(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">),(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span><span class="o">-</span><span class="n">diff</span><span class="p">(</span><span class="n">pcfu</span><span class="p">,(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">),(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span><span class="o">*</span><span class="n">pcfv</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">z</span><span class="p">))</span> <span class="go">0.7978845608028653558798921</span> </pre></div> </div> </dd></dl> </div> <div class="section" id="pcfw"> <h3><tt class="xref docutils literal"><span class="pre">pcfw()</span></tt><a class="headerlink" href="#pcfw" title="Permalink to this headline">¶</a></h3> <dl class="function"> <dt id="mpmath.pcfw"> <tt class="descclassname">mpmath.</tt><tt class="descname">pcfw</tt><big>(</big><em>a</em>, <em>z</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mpmath.pcfw" title="Permalink to this definition">¶</a></dt> <dd><p>Gives the parabolic cylinder function <img class="math" src="../_images/math/518c2ddfedbff19348a82c33afee5e68dabf267d.png" alt="W(a,z)"/> defined in (DLMF 12.14).</p> <p><strong>Examples</strong></p> <p>Value at the origin:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">mp</span><span class="o">.</span><span class="n">dps</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span> <span class="n">mp</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="bp">True</span> <span class="gp">>>> </span><span class="n">a</span> <span class="o">=</span> <span class="n">mpf</span><span class="p">(</span><span class="mf">0.25</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">pcfw</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="go">0.9722833245718180765617104</span> <span class="gp">>>> </span><span class="n">power</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="o">-</span><span class="mf">0.75</span><span class="p">)</span><span class="o">*</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">abs</span><span class="p">(</span><span class="n">gamma</span><span class="p">(</span><span class="mf">0.25</span><span class="o">+</span><span class="mf">0.5</span><span class="n">j</span><span class="o">*</span><span class="n">a</span><span class="p">)</span><span class="o">/</span><span class="n">gamma</span><span class="p">(</span><span class="mf">0.75</span><span class="o">+</span><span class="mf">0.5</span><span class="n">j</span><span class="o">*</span><span class="n">a</span><span class="p">)))</span> <span class="go">0.9722833245718180765617104</span> <span class="gp">>>> </span><span class="n">diff</span><span class="p">(</span><span class="n">pcfw</span><span class="p">,(</span><span class="n">a</span><span class="p">,</span><span class="mi">0</span><span class="p">),(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span> <span class="go">-0.5142533944210078966003624</span> <span class="gp">>>> </span><span class="o">-</span><span class="n">power</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="o">-</span><span class="mf">0.25</span><span class="p">)</span><span class="o">*</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">abs</span><span class="p">(</span><span class="n">gamma</span><span class="p">(</span><span class="mf">0.75</span><span class="o">+</span><span class="mf">0.5</span><span class="n">j</span><span class="o">*</span><span class="n">a</span><span class="p">)</span><span class="o">/</span><span class="n">gamma</span><span class="p">(</span><span class="mf">0.25</span><span class="o">+</span><span class="mf">0.5</span><span class="n">j</span><span class="o">*</span><span class="n">a</span><span class="p">)))</span> <span class="go">-0.5142533944210078966003624</span> </pre></div> </div> </dd></dl> </div> </div> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h3><a href="../index.html">Table Of Contents</a></h3> <ul> <li><a class="reference external" href="#">Bessel functions and related functions</a><ul> <li><a class="reference external" href="#bessel-functions">Bessel functions</a><ul> <li><a class="reference external" href="#besselj"><tt class="docutils literal"><span class="pre">besselj()</span></tt></a></li> <li><a class="reference external" href="#bessely"><tt class="docutils literal"><span class="pre">bessely()</span></tt></a></li> <li><a class="reference external" href="#besseli"><tt class="docutils literal"><span class="pre">besseli()</span></tt></a></li> <li><a class="reference external" href="#besselk"><tt class="docutils literal"><span class="pre">besselk()</span></tt></a></li> </ul> </li> <li><a class="reference external" href="#bessel-function-zeros">Bessel function zeros</a><ul> <li><a class="reference external" href="#besseljzero"><tt class="docutils literal"><span class="pre">besseljzero()</span></tt></a></li> <li><a class="reference external" href="#besselyzero"><tt class="docutils literal"><span class="pre">besselyzero()</span></tt></a></li> </ul> </li> <li><a class="reference external" href="#hankel-functions">Hankel functions</a><ul> <li><a class="reference external" href="#hankel1"><tt class="docutils literal"><span class="pre">hankel1()</span></tt></a></li> <li><a class="reference external" href="#hankel2"><tt class="docutils literal"><span class="pre">hankel2()</span></tt></a></li> </ul> </li> <li><a class="reference external" href="#kelvin-functions">Kelvin functions</a><ul> <li><a class="reference external" href="#ber"><tt class="docutils literal"><span class="pre">ber()</span></tt></a></li> <li><a class="reference external" href="#bei"><tt class="docutils literal"><span class="pre">bei()</span></tt></a></li> <li><a class="reference external" href="#ker"><tt class="docutils literal"><span class="pre">ker()</span></tt></a></li> <li><a class="reference external" href="#kei"><tt class="docutils literal"><span class="pre">kei()</span></tt></a></li> </ul> </li> <li><a class="reference external" href="#struve-functions">Struve functions</a><ul> <li><a class="reference external" href="#struveh"><tt class="docutils literal"><span class="pre">struveh()</span></tt></a></li> <li><a class="reference external" href="#struvel"><tt class="docutils literal"><span class="pre">struvel()</span></tt></a></li> </ul> </li> <li><a class="reference external" href="#anger-weber-functions">Anger-Weber functions</a><ul> <li><a class="reference external" href="#angerj"><tt class="docutils literal"><span class="pre">angerj()</span></tt></a></li> <li><a class="reference external" href="#webere"><tt class="docutils literal"><span class="pre">webere()</span></tt></a></li> </ul> </li> <li><a class="reference external" href="#lommel-functions">Lommel functions</a><ul> <li><a class="reference external" href="#lommels1"><tt class="docutils literal"><span class="pre">lommels1()</span></tt></a></li> <li><a class="reference external" href="#lommels2"><tt class="docutils literal"><span class="pre">lommels2()</span></tt></a></li> </ul> </li> <li><a class="reference external" href="#airy-and-scorer-functions">Airy and Scorer functions</a><ul> <li><a class="reference external" href="#airyai"><tt class="docutils literal"><span class="pre">airyai()</span></tt></a></li> <li><a class="reference external" href="#airybi"><tt class="docutils literal"><span class="pre">airybi()</span></tt></a></li> <li><a class="reference external" href="#airyaizero"><tt class="docutils literal"><span class="pre">airyaizero()</span></tt></a></li> <li><a class="reference external" href="#airybizero"><tt class="docutils literal"><span class="pre">airybizero()</span></tt></a></li> <li><a class="reference external" href="#scorergi"><tt class="docutils literal"><span class="pre">scorergi()</span></tt></a></li> <li><a class="reference external" href="#scorerhi"><tt class="docutils literal"><span class="pre">scorerhi()</span></tt></a></li> </ul> </li> <li><a class="reference external" href="#coulomb-wave-functions">Coulomb wave functions</a><ul> <li><a class="reference external" href="#coulombf"><tt class="docutils literal"><span class="pre">coulombf()</span></tt></a></li> <li><a class="reference external" href="#coulombg"><tt class="docutils literal"><span class="pre">coulombg()</span></tt></a></li> <li><a class="reference external" href="#coulombc"><tt class="docutils literal"><span class="pre">coulombc()</span></tt></a></li> </ul> </li> <li><a class="reference external" href="#confluent-u-and-whittaker-functions">Confluent U and Whittaker functions</a><ul> <li><a class="reference external" href="#hyperu"><tt class="docutils literal"><span class="pre">hyperu()</span></tt></a></li> <li><a class="reference external" href="#whitm"><tt class="docutils literal"><span class="pre">whitm()</span></tt></a></li> <li><a class="reference external" href="#whitw"><tt class="docutils literal"><span class="pre">whitw()</span></tt></a></li> </ul> </li> <li><a class="reference external" href="#parabolic-cylinder-functions">Parabolic cylinder functions</a><ul> <li><a class="reference external" href="#pcfd"><tt class="docutils literal"><span class="pre">pcfd()</span></tt></a></li> <li><a class="reference external" href="#pcfu"><tt class="docutils literal"><span class="pre">pcfu()</span></tt></a></li> <li><a class="reference external" href="#pcfv"><tt class="docutils literal"><span class="pre">pcfv()</span></tt></a></li> <li><a class="reference external" href="#pcfw"><tt class="docutils literal"><span class="pre">pcfw()</span></tt></a></li> </ul> </li> </ul> </li> </ul> <h4>Previous topic</h4> <p class="topless"><a href="expintegrals.html" title="previous chapter">Exponential integrals and error functions</a></p> <h4>Next topic</h4> <p class="topless"><a href="orthogonal.html" title="next chapter">Orthogonal polynomials</a></p> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="../_sources/functions/bessel.txt" rel="nofollow">Show Source</a></li> </ul> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="../search.html" method="get"> <input type="text" name="q" size="18" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> Enter search terms or a module, class or function name. </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="../modindex.html" title="Global Module Index" >modules</a> |</li> <li class="right" > <a href="orthogonal.html" title="Orthogonal polynomials" >next</a> |</li> <li class="right" > <a href="expintegrals.html" title="Exponential integrals and error functions" >previous</a> |</li> <li><a href="../index.html">mpmath v0.17 documentation</a> »</li> <li><a href="index.html" >Mathematical functions</a> »</li> </ul> </div> <div class="footer"> © Copyright 2010, Fredrik Johansson. Last updated on Feb 06, 2011. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.6. </div> </body> </html>