## Orthogonal Polynomials | Extreme Optimization Numerical Libraries for .NET Professional |

Orthogonal polynomials arise in physics, engineering and other areas as the solutions to certain differential equations.

The **Extreme Optimization Numerical Libraries for .NET**
provide support for the most common types: Chebyshev polynomials of the first and
second kind, Hermite polynomials, Legendre polynomials, Laguerre and
generalized Laguerre polynomials, Gegenbauer polynomials, and Zernike polynomials.

Methods are provided for the evaluation of a single polynomial of the specified degree at a point, of a sequence of polynomials of increasing degree, and of a series or a linear combination of polynomials of increasing degree.

The names of these methods follow a consistent pattern. The base name is made up of the name of the polynomial followed by the conventional mathematical abbreviation. For example, the base name for Chebyshev polynomials of the first kind is ChebyshevT. The following table lists the base names for the supported polynomials:

Base name | Description |
---|---|

ChebyshevT | Chebyshev polynomials of the first kind, T |

ChebyshevU | Chebyshev polynomials of the second kind, U |

HermiteH | Hermite polynomials, H |

LaguerreL | Laguerre polynomials, L |

GegenbauerC | Gegenbauer polynomials,
C |

LegendreP | Legendre polynomials, P |

ZernikeR |
Radial Zernike polynomials,
R |

ZernikeZ |
Zernike polynomials,
Z |

The base method evaluates the polynomial of a specified degree at a point.
With Sequence appended to the base name, the
method evaluates a sequence of polynomials of increasing order.
Optional parameters let you specify the degree of the first polynomial
in the sequence and a
Vector

Method | Description |
---|---|

Evaluates the Chebyshev polynomial of the first kind. | |

Evaluates the Chebyshev polynomial of the first kind. | |

Evaluates a linear combination of Chebyshev polynomial of the first kind. |

The Zernike polynomials are somewhat different in that they are parameterized by a pair of integers: the radial degree and the azimuthal frequency. Several schemes exist to map these pairs to a linear sequence. The scheme must be passed as the first argument to any method that works with sequences or expansions of Zernike polynomials. It must take the form of a delegate that maps the radial degree and the azimuthal frequency to the linearized index. Several schemes are provided as fields of the Special class: ZernikeAnsiIndex, ZernikeNollIndex, and ZernikeWyantIndex.

In addition, the full Zernike polynomials take two arguments: a radial argument and an angular argument. The methods that evaluate Zernike polynomials or sequences or expansions thereof take an additional argument that specifies the angular component. So, for example, the ZernikeZ(Int32, Int32, Boolean, Double, Double) takes five arguments in all: two integers that specify the radial degree and azimuthal frequency, a boolean that specifies whether the polynomial should be normalized, and two real numbers that specify the radial and angular coordinate at which to evaluate the polynomial. By convention, a negative value for the azimuthal frequency indicates the sine component should be returned, while 0 or a positive value indicates the cosine component should be returned.

Copyright © 2004-2021,
Extreme Optimization. All rights reserved.

*Extreme Optimization,* *Complexity made simple*, *M#*, and *M
Sharp* are trademarks of ExoAnalytics Inc.

*Microsoft*, *Visual C#, Visual Basic, Visual Studio*, *Visual
Studio.NET*, and the *Optimized for Visual Studio* logo

are
registered trademarks of Microsoft Corporation.