Function Repository Resource:

NeumannO

Source Notebook

Evaluate the Neumann polynomial

Contributed by: Yury Brychkov and Jan Mangaldan

ResourceFunction["NeumannO"][n,z]

gives the Neumann polynomial On(z) .

Details

Mathematical function, suitable for both symbolic and numerical manipulation.
The Neumann polynomial is defined as:
Neumann polynomials satisfy the generalized generating function relation .
Neumann polynomials satisfy the integral representation .
Neumann polynomials satisfy the differential equation
Neumann polynomials are rational functions and not strictly polynomials.
ResourceFunction["NeumannO"] can be evaluated to arbitrary numerical precision.
ResourceFunction["NeumannO"] automatically threads over lists.

Examples

Basic Examples (3) 

Evaluate numerically:

In[1]:=
ResourceFunction["NeumannO"][3, 2.41]
Out[1]=

Evaluate Neumann polynomials for various orders:

In[2]:=
Table[ResourceFunction["NeumannO"][n, z], {n, -4, 4}] // Expand
Out[2]=

Plot with respect to z:

In[3]:=
Plot[ResourceFunction["NeumannO"][Range[0, 3], z] // Evaluate, {z, 0, 5}]
Out[3]=

Scope (3) 

Evaluate for complex arguments:

In[4]:=
ResourceFunction["NeumannO"][3, 2.1 I]
Out[4]=

Evaluate to high precision:

In[5]:=
N[ResourceFunction["NeumannO"][4, 9/2], 50]
Out[5]=

The precision of the output tracks the precision of the input:

In[6]:=
ResourceFunction["NeumannO"][4, 4.500000000000000000000000]
Out[6]=

NeumannO threads elementwise over lists:

In[7]:=
ResourceFunction["NeumannO"][-2, {0.5, 1.0, 1.5}]
Out[7]=

Applications (3) 

Define a function:

Use NeumannO to expand a function in a Bessel function series:

In[8]:=
(* order of approximation *)
ord = 19; coef = Table[1/(\[Pi] I)
    Integrate[
    f[z] ResourceFunction["NeumannO"][k, z], {z, -1, -I, 1, I, -1}], {k, 0, ord}];
approx = coef . BesselJ[Range[0, ord], z]
Out[8]=

Compare the function with its Bessel series approximation:

In[9]:=
Plot[{f[z], approx} // Evaluate, {z, 0, 2 \[Pi]}, PlotStyle -> {AbsoluteThickness[5], AbsoluteThickness[2]}]
Out[9]=

Properties and Relations (8) 

Derivatives of Neumann polynomials are related to the polynomials themselves via :

In[10]:=
Table[\!\(
\*SubscriptBox[\(\[PartialD]\), \({z, m}\)]\(\*
InterpretationBox[
TagBox[
DynamicModuleBox[{Typeset`open = False}, 
FrameBox[
PaneSelectorBox[{False->GridBox[{
{
PaneBox[GridBox[{
{
StyleBox[
StyleBox[
AdjustmentBox["\<\"[\[FilledSmallSquare]]\"\>",
BoxBaselineShift->-0.25,
BoxMargins->{{0, 0}, {-1, -1}}], "ResourceFunctionIcon",
FontColor->RGBColor[
                    0.8745098039215686, 0.2784313725490196, 0.03137254901960784]],
ShowStringCharacters->False,
FontFamily->"Source Sans Pro Black",
FontSize->0.6538461538461539 Inherited,
FontWeight->"Heavy",
PrivateFontOptions->{"OperatorSubstitution"->False}], 
StyleBox[
RowBox[{
StyleBox["NeumannO", "ResourceFunctionLabel",
FontFamily->"Source Sans Pro"], " "}],
ShowAutoStyles->False,
ShowStringCharacters->False,
FontSize->Rational[12, 13] Inherited,
FontColor->GrayLevel[0.1]]}
},
GridBoxSpacings->{"Columns" -> {{0.25}}}],
Alignment->Left,
BaseStyle->{LineSpacing -> {0, 0}, LineBreakWithin -> False},
BaselinePosition->Baseline,
FrameMargins->{{3, 0}, {0, 0}}], 
ItemBox[
PaneBox[
TogglerBox[Dynamic[Typeset`open], {True-> DynamicBox[FEPrivate`FrontEndResource[
                 "FEBitmaps", "IconizeCloser"],
ImageSizeCache->{11., {1., 10.}}], False-> DynamicBox[FEPrivate`FrontEndResource[
                 "FEBitmaps", "IconizeOpener"],
ImageSizeCache->{11., {1., 10.}}]},
Appearance->None,
BaselinePosition->Baseline,
ContentPadding->False,
FrameMargins->0],
Alignment->Left,
BaselinePosition->Baseline,
FrameMargins->{{1, 1}, {0, 0}}],
Frame->{{
RGBColor[
                 0.8313725490196079, 0.8470588235294118, 0.8509803921568627, 0.5], False}, {False, False}}]}
},
BaselinePosition->{1, 1},
GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Baseline}}},
GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
           
GridBoxSpacings->{"Columns" -> {{0}}, "Rows" -> {{0}}}], True->GridBox[{
{GridBox[{
{
PaneBox[GridBox[{
{
StyleBox[
StyleBox[
AdjustmentBox["\<\"[\[FilledSmallSquare]]\"\>",
BoxBaselineShift->-0.25,
BoxMargins->{{0, 0}, {-1, -1}}], "ResourceFunctionIcon",
FontColor->RGBColor[
                    0.8745098039215686, 0.2784313725490196, 0.03137254901960784]],
ShowStringCharacters->False,
FontFamily->"Source Sans Pro Black",
FontSize->0.6538461538461539 Inherited,
FontWeight->"Heavy",
PrivateFontOptions->{"OperatorSubstitution"->False}], 
StyleBox[
RowBox[{
StyleBox["NeumannO", "ResourceFunctionLabel",
FontFamily->"Source Sans Pro"], " "}],
ShowAutoStyles->False,
ShowStringCharacters->False,
FontSize->Rational[12, 13] Inherited,
FontColor->GrayLevel[0.1]]}
},
GridBoxSpacings->{"Columns" -> {{0.25}}}],
Alignment->Left,
BaseStyle->{LineSpacing -> {0, 0}, LineBreakWithin -> False},
BaselinePosition->Baseline,
FrameMargins->{{3, 0}, {0, 0}}], 
ItemBox[
PaneBox[
TogglerBox[Dynamic[Typeset`open], {True-> DynamicBox[FEPrivate`FrontEndResource[
                    "FEBitmaps", "IconizeCloser"]], False-> DynamicBox[FEPrivate`FrontEndResource[
                    "FEBitmaps", "IconizeOpener"]]},
Appearance->None,
BaselinePosition->Baseline,
ContentPadding->False,
FrameMargins->0],
Alignment->Left,
BaselinePosition->Baseline,
FrameMargins->{{1, 1}, {0, 0}}],
Frame->{{
RGBColor[
                    0.8313725490196079, 0.8470588235294118, 0.8509803921568627, 0.5], False}, {False, False}}]}
},
BaselinePosition->{1, 1},
GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Baseline}}},
GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
              
GridBoxSpacings->{"Columns" -> {{0}}, "Rows" -> {{0}}}]},
{
StyleBox[
PaneBox[GridBox[{
{
RowBox[{
TagBox["\<\"Version (latest): \"\>",
"IconizedLabel"], " ", 
TagBox["\<\"1.0.1\"\>",
"IconizedItem"]}]},
{
TagBox[
TemplateBox[{"\"Documentation »\"", "https://resources.wolframcloud.com/FunctionRepository/resources/70fbe704-230e-4c55-9223-d17ae371d128/"},
"HyperlinkURL"],
"IconizedItem"]}
},
DefaultBaseStyle->"Column",
GridBoxAlignment->{"Columns" -> {{Left}}},
GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
Alignment->Left,
BaselinePosition->Baseline,
FrameMargins->{{5, 4}, {0, 4}}], "DialogStyle",
FontFamily->"Roboto",
FontSize->11]}
},
BaselinePosition->{1, 1},
GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Baseline}}},
GridBoxDividers->{"Columns" -> {{None}}, "Rows" -> {False, {
GrayLevel[0.8]}, False}},
GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}]}, Dynamic[Typeset`open],
BaselinePosition->Baseline,
ImageSize->Automatic],
Background->RGBColor[
          0.9686274509803922, 0.9764705882352941, 0.984313725490196],
BaselinePosition->Baseline,
DefaultBaseStyle->{},
FrameMargins->{{0, 0}, {1, 0}},
FrameStyle->RGBColor[
          0.8313725490196079, 0.8470588235294118, 0.8509803921568627],
         
RoundingRadius->4]],
{"FunctionResourceBox", 
RGBColor[0.8745098039215686, 0.2784313725490196, 0.03137254901960784],
         "NeumannO"},
TagBoxNote->"FunctionResourceBox"],
ResourceFunction["NeumannO"],
BoxID -> "NeumannO",
Selectable->False][n, z]\)\) == 2^-m \!\(
\*UnderoverscriptBox[\(\[Sum]\), \(k = 0\), \(m\)]\(
\*SuperscriptBox[\((\(-1\))\), \(k\)]\ Binomial[m, k] \*
InterpretationBox[
TagBox[
DynamicModuleBox[{Typeset`open = False}, 
FrameBox[
PaneSelectorBox[{False->GridBox[{
{
PaneBox[GridBox[{
{
StyleBox[
StyleBox[
AdjustmentBox["\<\"[\[FilledSmallSquare]]\"\>",
BoxBaselineShift->-0.25,
BoxMargins->{{0, 0}, {-1, -1}}], "ResourceFunctionIcon",
FontColor->RGBColor[
                    0.8745098039215686, 0.2784313725490196, 0.03137254901960784]],
ShowStringCharacters->False,
FontFamily->"Source Sans Pro Black",
FontSize->0.6538461538461539 Inherited,
FontWeight->"Heavy",
PrivateFontOptions->{"OperatorSubstitution"->False}], 
StyleBox[
RowBox[{
StyleBox["NeumannO", "ResourceFunctionLabel",
FontFamily->"Source Sans Pro"], " "}],
ShowAutoStyles->False,
ShowStringCharacters->False,
FontSize->Rational[12, 13] Inherited,
FontColor->GrayLevel[0.1]]}
},
GridBoxSpacings->{"Columns" -> {{0.25}}}],
Alignment->Left,
BaseStyle->{LineSpacing -> {0, 0}, LineBreakWithin -> False},
BaselinePosition->Baseline,
FrameMargins->{{3, 0}, {0, 0}}], 
ItemBox[
PaneBox[
TogglerBox[Dynamic[Typeset`open], {True-> DynamicBox[FEPrivate`FrontEndResource[
                   "FEBitmaps", "IconizeCloser"],
ImageSizeCache->{11., {1., 10.}}], False-> DynamicBox[FEPrivate`FrontEndResource[
                   "FEBitmaps", "IconizeOpener"],
ImageSizeCache->{11., {1., 10.}}]},
Appearance->None,
BaselinePosition->Baseline,
ContentPadding->False,
FrameMargins->0],
Alignment->Left,
BaselinePosition->Baseline,
FrameMargins->{{1, 1}, {0, 0}}],
Frame->{{
RGBColor[
                   0.8313725490196079, 0.8470588235294118, 0.8509803921568627, 0.5], False}, {False, False}}]}
},
BaselinePosition->{1, 1},
GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Baseline}}},
GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
             
GridBoxSpacings->{"Columns" -> {{0}}, "Rows" -> {{0}}}], True->GridBox[{
{GridBox[{
{
PaneBox[GridBox[{
{
StyleBox[
StyleBox[
AdjustmentBox["\<\"[\[FilledSmallSquare]]\"\>",
BoxBaselineShift->-0.25,
BoxMargins->{{0, 0}, {-1, -1}}], "ResourceFunctionIcon",
FontColor->RGBColor[
                    0.8745098039215686, 0.2784313725490196, 0.03137254901960784]],
ShowStringCharacters->False,
FontFamily->"Source Sans Pro Black",
FontSize->0.6538461538461539 Inherited,
FontWeight->"Heavy",
PrivateFontOptions->{"OperatorSubstitution"->False}], 
StyleBox[
RowBox[{
StyleBox["NeumannO", "ResourceFunctionLabel",
FontFamily->"Source Sans Pro"], " "}],
ShowAutoStyles->False,
ShowStringCharacters->False,
FontSize->Rational[12, 13] Inherited,
FontColor->GrayLevel[0.1]]}
},
GridBoxSpacings->{"Columns" -> {{0.25}}}],
Alignment->Left,
BaseStyle->{LineSpacing -> {0, 0}, LineBreakWithin -> False},
BaselinePosition->Baseline,
FrameMargins->{{3, 0}, {0, 0}}], 
ItemBox[
PaneBox[
TogglerBox[Dynamic[Typeset`open], {True-> DynamicBox[FEPrivate`FrontEndResource[
                    "FEBitmaps", "IconizeCloser"]], False-> DynamicBox[FEPrivate`FrontEndResource[
                    "FEBitmaps", "IconizeOpener"]]},
Appearance->None,
BaselinePosition->Baseline,
ContentPadding->False,
FrameMargins->0],
Alignment->Left,
BaselinePosition->Baseline,
FrameMargins->{{1, 1}, {0, 0}}],
Frame->{{
RGBColor[
                    0.8313725490196079, 0.8470588235294118, 0.8509803921568627, 0.5], False}, {False, False}}]}
},
BaselinePosition->{1, 1},
GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Baseline}}},
GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
                
GridBoxSpacings->{"Columns" -> {{0}}, "Rows" -> {{0}}}]},
{
StyleBox[
PaneBox[GridBox[{
{
RowBox[{
TagBox["\<\"Version (latest): \"\>",
"IconizedLabel"], " ", 
TagBox["\<\"1.0.1\"\>",
"IconizedItem"]}]},
{
TagBox[
TemplateBox[{"\"Documentation »\"", "https://resources.wolframcloud.com/FunctionRepository/resources/70fbe704-230e-4c55-9223-d17ae371d128/"},
"HyperlinkURL"],
"IconizedItem"]}
},
DefaultBaseStyle->"Column",
GridBoxAlignment->{"Columns" -> {{Left}}},
GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
Alignment->Left,
BaselinePosition->Baseline,
FrameMargins->{{5, 4}, {0, 4}}], "DialogStyle",
FontFamily->"Roboto",
FontSize->11]}
},
BaselinePosition->{1, 1},
GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Baseline}}},
GridBoxDividers->{"Columns" -> {{None}}, "Rows" -> {False, {
GrayLevel[0.8]}, False}},
GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}]}, Dynamic[Typeset`open],
BaselinePosition->Baseline,
ImageSize->Automatic],
Background->RGBColor[
            0.9686274509803922, 0.9764705882352941, 0.984313725490196],
BaselinePosition->Baseline,
DefaultBaseStyle->{},
FrameMargins->{{0, 0}, {1, 0}},
FrameStyle->RGBColor[
            0.8313725490196079, 0.8470588235294118, 0.8509803921568627],
RoundingRadius->4]],
{"FunctionResourceBox", 
RGBColor[0.8745098039215686, 0.2784313725490196, 0.03137254901960784],
           "NeumannO"},
TagBoxNote->"FunctionResourceBox"],
ResourceFunction["NeumannO"],
BoxID -> "NeumannO",
Selectable->False][n - m + 2\ k, z]\)\), {m, 0, 3}, {n, 0, 3}] // Simplify
Out[10]=

Neumann polynomials satisfy the differential equation :

In[11]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/c4d86f8d-94e0-49fe-86ed-eceb741328fb"]
Out[11]=

Neumann polynomials satisfy the recurrence identity :

In[12]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/0d392399-d7b7-4caf-aec1-7a6a69281797"]
Out[12]=

The Neumann polynomials have the limiting behavior given by :

In[13]:=
Table[Limit[z^(n + 1) ResourceFunction["NeumannO"][n, z], z -> 0] == 2^(-1 + n + KroneckerDelta[n]) n!, {n, 0, 10}] // Simplify
Out[13]=

Neumann polynomials can be represented as the finite sum :

In[14]:=
Table[ResourceFunction["NeumannO"][n, z] == n/4 \!\(
\*UnderoverscriptBox[\(\[Sum]\), \(k = 0\), \(n\)]\(
\*FractionBox[\(Gamma[
\*FractionBox[\(n + k\), \(2\)]]\), \(Gamma[
\*FractionBox[\(n - k\), \(2\)] + 1]\)] 
\*SuperscriptBox[\(Cos[
\*FractionBox[\(\[Pi]\), \(2\)] \((n + k)\)]\), \(2\)] 
\*SuperscriptBox[\((
\*FractionBox[\(2\), \(z\)])\), \(k + 1\)]\)\), {n, 1, 10}] // Simplify
Out[14]=

The Neumann polynomials can be expressed in terms of HypergeometricPFQ through the formula :

In[15]:=
Table[ResourceFunction["NeumannO"][n, z] == n^((1 - (-1)^n)/2)/z^((3 - (-1)^n)/2)
     HypergeometricPFQ[{-\[LeftFloor]n/2\[RightFloor], \[LeftFloor](
       n + 1)/2\[RightFloor], 1}, {}, -(4/z^2)], {n, 1, 10}] // Simplify
Out[15]=

Neumann polynomials can be expressed in terms of the Lommel function:

In[16]:=
Table[ResourceFunction["NeumannO"][n, z] == Binomial[n, Mod[n, 2]]/
    z ResourceFunction["LommelS"][1 - Mod[n, 2], n, z], {n, 0, 10}] // Simplify
Out[16]=

Neumann polynomials can be expressed in terms of the Schläfli polynomial:

In[17]:=
Table[ResourceFunction["NeumannO"][n, z] == 1/4 (ResourceFunction["SchlaefliS"][n - 1, z] + ResourceFunction["SchlaefliS"][n + 1, z]), {n, 0, 10}] // Simplify
Out[17]=

Version History

  • 1.0.1 – 31 August 2021
  • 1.0.0 – 06 December 2019

Source Metadata

Related Resources

License Information