Sophie

Sophie

distrib > Fedora > 13 > i386 > media > updates > by-pkgid > f3eb4c16ba6256fe5a10e54bf649f01f > files > 1228

python-mpmath-doc-0.17-1.fc13.noarch.rpm

<!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 &mdash; 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> &raquo;</li>
          <li><a href="index.html" accesskey="U">Mathematical functions</a> &raquo;</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&#8217;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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="mi">10</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">n</span> <span class="o">=</span> <span class="mi">3</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="mf">2.3</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&#39;1e-1000&#39;</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 &amp; 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} &lt; j_{\nu,k} &lt; j'_{\nu,k+1}

j_{\nu,1} &lt; j_{\nu+1,2} &lt; j_{\nu,2} &lt; j_{\nu+1,2} &lt; j_{\nu,3} &lt; \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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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
&gt;&gt;&gt; besseljzero(1,1,1); besseljzero(1,2,1); besseljzero(1,3,1)
1.84118378134065930264363
5.331442773525032636884016
8.536316366346285834358961
&gt;&gt;&gt; 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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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} &lt; y'_{\nu,k} &lt; y_{\nu,k+1}

y_{\nu,1} &lt; y_{\nu+1,2} &lt; y_{\nu,2} &lt; y_{\nu+1,2} &lt; y_{\nu,3} &lt; \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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="mi">3</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">n</span> <span class="o">=</span> <span class="mi">3</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">lhs</span>
<span class="go">17.40359302709875496632744</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">n</span> <span class="o">=</span> <span class="mi">3</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">lhs</span>
<span class="go">6.368850306060678353018165</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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 &lt; 0"/> and
like a rapidly decreasing exponential for <img class="math" src="../_images/math/e6fe34b68f40e868401176cee1a4dc1dca3ff74b.png" alt="z &gt; 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&#39;(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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&#39;2/3&#39;</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="s">&#39;2/3&#39;</span><span class="p">))</span>
<span class="go">0.3550280538878172392600632</span>
<span class="go">0.3550280538878172392600632</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="o">-</span><span class="mf">0.5</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="o">-</span><span class="mi">3</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&#39;3/2&#39;</span><span class="p">)</span><span class="o">/</span><span class="mi">3</span>
<span class="gp">&gt;&gt;&gt; </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">&#39;1/3&#39;</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">&#39;-1/3&#39;</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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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 &lt; 0"/>, but it grows rather than decreases
for <img class="math" src="../_images/math/e6fe34b68f40e868401176cee1a4dc1dca3ff74b.png" alt="z &gt; 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&#39;(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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&#39;1/6&#39;</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="s">&#39;2/3&#39;</span><span class="p">))</span>
<span class="go">0.6149266274460007351509224</span>
<span class="go">0.6149266274460007351509224</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="o">-</span><span class="mi">3</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&#39;3/2&#39;</span><span class="p">)</span><span class="o">/</span><span class="mi">3</span>
<span class="gp">&gt;&gt;&gt; </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">&#39;-1/3&#39;</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">&#39;1/3&#39;</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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">gamma</span><span class="p">(</span><span class="s">&#39;2/3&#39;</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">&#39;2/3&#39;</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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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&#39;(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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&#39;7/6&#39;</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="s">&#39;2/3&#39;</span><span class="p">))</span>
<span class="go">0.2049755424820002450503075</span>
<span class="go">0.2049755424820002450503075</span>
<span class="gp">&gt;&gt;&gt; </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">&#39;5/6&#39;</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="s">&#39;1/3&#39;</span><span class="p">))</span>
<span class="go">0.1494294524512754526382746</span>
<span class="go">0.1494294524512754526382746</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="mf">0.25</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="mf">0.5</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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&#39;(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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&#39;7/6&#39;</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="s">&#39;2/3&#39;</span><span class="p">))</span>
<span class="go">0.4099510849640004901006149</span>
<span class="go">0.4099510849640004901006149</span>
<span class="gp">&gt;&gt;&gt; </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">&#39;5/6&#39;</span><span class="p">)</span><span class="o">*</span><span class="n">gamma</span><span class="p">(</span><span class="s">&#39;1/3&#39;</span><span class="p">))</span>
<span class="go">0.2988589049025509052765491</span>
<span class="go">0.2988589049025509052765491</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="mf">0.5</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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 &amp; 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&amp;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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&#39;1e-10&#39;</span><span class="p">)</span>
<span class="go">4.143324917492256448770769e-33</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">l</span> <span class="o">=</span> <span class="mi">2</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">eta</span> <span class="o">=</span> <span class="mf">1.5</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">F</span> <span class="o">=</span> <span class="n">coulombf</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span> <span class="o">=</span> <span class="n">coulombg</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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 &amp; Stegun, at twice
the precision:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&quot;</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">&quot;</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 &amp; A.R. Barnett, &#8220;Coulomb and Bessel Functions of Complex
Arguments and Order&#8221;, J. Comp. Phys., vol 64, no. 2, June 1986.</li>
<li>N. Michel, &#8220;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"/>&#8220;, <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&amp;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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&#39;1e-10&#39;</span><span class="p">)</span>
<span class="go">201126715824.7329115106793</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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 &amp; Stegun,
at twice the precision:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&quot;</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">&quot;</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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&#39;1e-10&#39;</span><span class="p">)</span>
<span class="go">5554866000719.8</span>
<span class="gp">&gt;&gt;&gt; </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">&#39;1e-100&#39;</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">&gt;&gt;&gt; </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"/>  &#8211;
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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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 &amp; 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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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&#8217;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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">pcfd</span><span class="p">(</span><span class="s">&#39;1/2&#39;</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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">z</span> <span class="o">=</span> <span class="mf">1.75</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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) &gt; 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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">mpmath</span> <span class="kn">import</span> <span class="o">*</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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> &raquo;</li>
          <li><a href="index.html" >Mathematical functions</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
      &copy; 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>