ITS.Propagation.LFMF 1.1
Part of the NTIA/ITS Propagation Library
Loading...
Searching...
No Matches
WiRoot.cpp File Reference

Implements a function to find roots of equations involving Airy functions. More...

Functions

std::complex< double > ITS::Propagation::LFMF::WiRoot (const int i, std::complex< double > &DWi, const std::complex< double > q, std::complex< double > &Wi, const AiryKind kind, const AiryScaling scaling)
 Finds the roots to the equation \( Wi'(ti) - q*Wi(ti) = 0 \).
 

Detailed Description

Implements a function to find roots of equations involving Airy functions.

Function Documentation

◆ WiRoot()

std::complex< double > ITS::Propagation::LFMF::WiRoot ( const int i,
std::complex< double > & DWi,
const std::complex< double > q,
std::complex< double > & Wi,
const AiryKind kind,
const AiryScaling scaling )

Finds the roots to the equation \( Wi'(ti) - q*Wi(ti) = 0 \).

The parameter i selects the \(i\)-th root of the equation. The function \( Wi(ti) \) is the "Airy function of the third kind" as defined by Hufford [1] and Wait. The root is found by iteration starting from a real root.

Note
Although roots that are found for \( w_1 \) (Wait) and \( \mathrm{Wi}^{(2)} \) (Hufford) will be equal, and the roots found for \( w_2 \) (Wait) and \( \mathrm{Wi}^{(1)} \) (Hufford) will be equal, the return values for Wi and DWi will not be the same. The input parameters for kind and scale are used here as they are in Airy() for consistency.
Parameters
[in]iThe \( i \)-th complex root of \( Wi'^{(2)}(ti) - q*Wi^{(2)}(ti) \), starting with 1.
[in]qIntermediate value: \( -j \nu \delta \)
[in]kindKind of Airy function to use, either WONE or WTWO
[in]scalingType of scaling to use, either HUFFORD or WAIT
[out]DWiDerivative of "Airy function of the third kind" \( Wi'^{(2)}(ti) \)
[out]Wi"Airy function of the third kind" \( Wi^{(2)}(ti) \)
Returns
The \( i \)-th complex root of the "Airy function of the third kind"
Exceptions
std::invalid_argumentIf the values provided for i, kind, or scaling are not valid for this function.
std::runtime_errorIf the root finding algorithm fails to converge.

References

  • "Airy Functions of the third kind" are found in equation 38 of NTIA Report 87-219 "A General Theory of Radio Propagation through a Stratified Atmosphere", George Hufford, July 1987.
See also
ITS::Propagation::LFMF::AiryKind
ITS::Propagation::LFMF::AiryScaling
ITS::Propagation::LFMF::Airy
Privacy Policy FOIA Accessibility Information Quality