FunctionAdvisor/relate - Maple Programming Help

relate the two given mathematical functions

 Calling Sequence FunctionAdvisor(relate, math_function_1, math_function_2)

Parameters

 relate - literal name; 'relate' math_function_1 - Maple name of first mathematical function math_function_2 - Maple name of second mathematical function

Description

 • The FunctionAdvisor(relate, math_function_1, math_function_2) command attempts to relate the functions using the internal Maple algorithms. For more information, see convert[to_special_function].
 By default, the output has the simpler or more standard function on the left-hand side. This topic is similar to FunctionAdvisor/specialize, which allows you to specify which function is expressed in terms of the other one. This typically requires additional constraints in the function parameter(s) domain(s).

Examples

 > FunctionAdvisor( relate, sin, WhittakerM );
 ${\mathrm{sin}}{}\left({z}\right){=}{-}\frac{{I}}{{2}}{}{\mathrm{WhittakerM}}{}\left({0}{,}\frac{{1}}{{2}}{,}{2}{}{I}{}{z}\right)$ (1)
 > FunctionAdvisor( relate, KummerU, BesselK );
 ${\mathrm{BesselK}}{}\left({a}{,}{z}\right){=}\frac{\sqrt{{\mathrm{\pi }}}{}{\left({2}{}{z}\right)}^{{a}}{}{\mathrm{KummerU}}{}\left({a}{+}\frac{{1}}{{2}}{,}{2}{}{a}{+}{1}{,}{2}{}{z}\right)}{{{ⅇ}}^{{z}}}$ (2)
 > FunctionAdvisor( relate, HermiteH, erf );
 ${\mathrm{erf}}{}\left({z}\right){=}{-}\frac{{2}{}{\mathrm{HermiteH}}{}\left({-1}{,}{z}\right)}{\sqrt{{\mathrm{\pi }}}{}{{ⅇ}}^{{{z}}^{{2}}}}{+}{1}$ (3)
 > FunctionAdvisor( relate, HermiteH, LaguerreL );
 ${\mathrm{HermiteH}}{}\left({a}{,}{z}\right){=}{{2}}^{{a}}{}\sqrt{{\mathrm{\pi }}}{}\left(\frac{{\mathrm{LaguerreL}}{}\left(\frac{{a}}{{2}}{,}{-}\frac{{1}}{{2}}{,}{{z}}^{{2}}\right)}{\left(\genfrac{}{}{0}{}{{-}\frac{{1}}{{2}}{+}\frac{{a}}{{2}}}{\frac{{a}}{{2}}}\right){}{\mathrm{\Gamma }}{}\left(\frac{{1}}{{2}}{-}\frac{{a}}{{2}}\right)}{-}\frac{{2}{}{z}{}{\mathrm{LaguerreL}}{}\left({-}\frac{{1}}{{2}}{+}\frac{{a}}{{2}}{,}\frac{{1}}{{2}}{,}{{z}}^{{2}}\right)}{\left(\genfrac{}{}{0}{}{\frac{{a}}{{2}}}{{-}\frac{{1}}{{2}}{+}\frac{{a}}{{2}}}\right){}{\mathrm{\Gamma }}{}\left({-}\frac{{a}}{{2}}\right)}\right)$ (4)

Notice that a relation between KummerU and HermiteH does not exist for arbitrary values of their parameters.

 > FunctionAdvisor( relate, KummerU, Hermite );
 * Partial match of Hermite against topic HermiteH. Unable to establish a relation between KummerU and HermiteH

However, that relation does exist for a specialization of the function parameters

 > FunctionAdvisor(specialize, KummerU, HermiteH);
 $\left[{\mathrm{KummerU}}{}\left({a}{,}{b}{,}{z}\right){=}{\mathrm{HermiteH}}{}\left({-}{2}{}{a}{,}\sqrt{{z}}\right){}{{2}}^{{2}{}{a}}{,}{b}{=}\frac{{1}}{{2}}\right]{,}\left[{\mathrm{KummerU}}{}\left({a}{,}{b}{,}{z}\right){=}\frac{{\mathrm{HermiteH}}{}\left({-}{2}{}{a}{+}{1}{,}\sqrt{{z}}\right){}{{2}}^{{2}{}{a}}}{{2}{}\sqrt{{z}}}{,}{b}{=}\frac{{3}}{{2}}\right]$ (5)

and also the converse.

 > ex1:=FunctionAdvisor(specialize, HermiteH, KummerU);
 ${\mathrm{ex1}}{≔}\left[{\mathrm{HermiteH}}{}\left({a}{,}{z}\right){=}{{2}}^{{a}}{}{\mathrm{KummerU}}{}\left({-}\frac{{a}}{{2}}{,}\frac{{1}}{{2}}{,}{{z}}^{{2}}\right){,}{0}{<}{\mathrm{\Re }}{}\left({z}\right){\vee }\left({\mathrm{\Re }}{}\left({z}\right){=}{0}{\wedge }{0}{<}{\mathrm{\Im }}{}\left({z}\right)\right)\right]$ (6)

The variables used by the FunctionAdvisor command to create the function calling sequences are local variables. Therefore, the previous example does not depend on z.

 > depends([ex1], a), depends([ex1], b), depends([ex1], z);
 ${\mathrm{false}}{,}{\mathrm{false}}{,}{\mathrm{false}}$ (7)

To make the FunctionAdvisor command return results using global variables, pass the function call itself.

 > ex2:=FunctionAdvisor(specialize, HermiteH(a,z), KummerU);
 ${\mathrm{ex2}}{≔}\left[{\mathrm{HermiteH}}{}\left({a}{,}{z}\right){=}{{2}}^{{a}}{}{\mathrm{KummerU}}{}\left({-}\frac{{a}}{{2}}{,}\frac{{1}}{{2}}{,}{{z}}^{{2}}\right){,}{0}{<}{\mathrm{\Re }}{}\left({z}\right){\vee }\left({\mathrm{\Re }}{}\left({z}\right){=}{0}{\wedge }{0}{<}{\mathrm{\Im }}{}\left({z}\right)\right)\right]$ (8)
 > depends([ex2], a), depends([ex2], b), depends([ex2], z);
 ${\mathrm{true}}{,}{\mathrm{false}}{,}{\mathrm{true}}$ (9)

You can view the default hierarchy used when calling the FunctionAdvisor command with the keyword relate as first argument using the following

 > convert/to_special_function/hierarchy["function"];
 $\left[{\mathrm{sin}}{,}{\mathrm{cos}}{,}{\mathrm{tan}}{,}{\mathrm{csc}}{,}{\mathrm{sec}}{,}{\mathrm{cot}}{,}{\mathrm{sinh}}{,}{\mathrm{cosh}}{,}{\mathrm{tanh}}{,}{\mathrm{csch}}{,}{\mathrm{sech}}{,}{\mathrm{coth}}{,}{\mathrm{arcsin}}{,}{\mathrm{arccos}}{,}{\mathrm{arctan}}{,}{\mathrm{arccsc}}{,}{\mathrm{arcsec}}{,}{\mathrm{arccot}}{,}{\mathrm{arcsinh}}{,}{\mathrm{arccosh}}{,}{\mathrm{arctanh}}{,}{\mathrm{arccsch}}{,}{\mathrm{arcsech}}{,}{\mathrm{arccoth}}{,}{\mathrm{exp}}{,}{\mathrm{ln}}{,}{\mathrm{\Gamma }}{,}{\mathrm{lnGAMMA}}{,}{\mathrm{factorial}}{,}{\mathrm{binomial}}{,}{\mathrm{multinomial}}{,}{\mathrm{Β}}{,}{\mathrm{pochhammer}}{,}{\mathrm{doublefactorial}}{,}{\mathrm{\Psi }}{,}{\mathrm{harmonic}}{,}{\mathrm{KelvinBer}}{,}{\mathrm{KelvinBei}}{,}{\mathrm{KelvinKer}}{,}{\mathrm{KelvinKei}}{,}{\mathrm{KelvinHer}}{,}{\mathrm{KelvinHei}}{,}{\mathrm{AiryAi}}{,}{\mathrm{AiryBi}}{,}{\mathrm{HankelH1}}{,}{\mathrm{HankelH2}}{,}{\mathrm{BesselI}}{,}{\mathrm{BesselJ}}{,}{\mathrm{BesselK}}{,}{\mathrm{BesselY}}{,}{\mathrm{GegenbauerC}}{,}{\mathrm{HermiteH}}{,}{\mathrm{LaguerreL}}{,}{\mathrm{LegendreP}}{,}{\mathrm{ChebyshevT}}{,}{\mathrm{ChebyshevU}}{,}{\mathrm{JacobiP}}{,}{\mathrm{Ei}}{,}{\mathrm{Li}}{,}{\mathrm{Si}}{,}{\mathrm{Shi}}{,}{\mathrm{Ci}}{,}{\mathrm{Chi}}{,}{\mathrm{Ssi}}{,}{\mathrm{erf}}{,}{\mathrm{erfc}}{,}{\mathrm{erfi}}{,}{\mathrm{FresnelC}}{,}{\mathrm{FresnelS}}{,}{\mathrm{Fresnelf}}{,}{\mathrm{Fresnelg}}{,}{\mathrm{dawson}}{,}{\mathrm{KummerM}}{,}{\mathrm{KummerU}}{,}{\mathrm{WhittakerM}}{,}{\mathrm{WhittakerW}}{,}{\mathrm{CylinderD}}{,}{\mathrm{CylinderU}}{,}{\mathrm{CylinderV}}{,}{\mathrm{CoulombF}}{,}{\mathrm{EllipticE}}{,}{\mathrm{EllipticCE}}{,}{\mathrm{EllipticF}}{,}{\mathrm{InverseJacobiSN}}{,}{\mathrm{InverseJacobiAM}}{,}{\mathrm{EllipticK}}{,}{\mathrm{EllipticCK}}{,}{\mathrm{EllipticPi}}{,}{\mathrm{EllipticCPi}}{,}{\mathrm{EllipticModulus}}{,}{\mathrm{EllipticNome}}{,}{\mathrm{LegendreQ}}{,}{\mathrm{SphericalY}}{,}{\mathrm{LerchPhi}}{,}{\mathrm{GaussAGM}}{,}{\mathrm{LommelS1}}{,}{\mathrm{MeijerG}}{,}{\mathrm{hypergeom}}{,}{\mathrm{Hypergeom}}{,}{\mathrm{AppellF1}}{,}{\mathrm{AppellF2}}{,}{\mathrm{AppellF3}}{,}{\mathrm{AppellF4}}{,}{\mathrm{Sum}}{,}{\mathrm{sum}}{,}{\mathrm{LommelS2}}{,}{\mathrm{StruveH}}{,}{\mathrm{StruveL}}{,}{\mathrm{AngerJ}}{,}{\mathrm{WeberE}}{,}{\mathrm{dilog}}{,}{\mathrm{polylog}}{,}{\mathrm{JacobiAM}}{,}{\mathrm{JacobiSN}}{,}{\mathrm{JacobiCN}}{,}{\mathrm{JacobiDN}}{,}{\mathrm{JacobiNS}}{,}{\mathrm{JacobiNC}}{,}{\mathrm{JacobiND}}{,}{\mathrm{JacobiSC}}{,}{\mathrm{JacobiCS}}{,}{\mathrm{JacobiSD}}{,}{\mathrm{JacobiDS}}{,}{\mathrm{JacobiCD}}{,}{\mathrm{JacobiDC}}{,}{\mathrm{JacobiTheta1}}{,}{\mathrm{JacobiTheta2}}{,}{\mathrm{JacobiTheta3}}{,}{\mathrm{JacobiTheta4}}{,}{\mathrm{JacobiZeta}}{,}{\mathrm{InverseJacobiCN}}{,}{\mathrm{InverseJacobiDN}}{,}{\mathrm{InverseJacobiNS}}{,}{\mathrm{InverseJacobiNC}}{,}{\mathrm{InverseJacobiND}}{,}{\mathrm{InverseJacobiSC}}{,}{\mathrm{InverseJacobiCS}}{,}{\mathrm{InverseJacobiSD}}{,}{\mathrm{InverseJacobiDS}}{,}{\mathrm{InverseJacobiCD}}{,}{\mathrm{InverseJacobiDC}}{,}{\mathrm{WeierstrassP}}{,}{\mathrm{WeierstrassPPrime}}{,}{\mathrm{WeierstrassZeta}}{,}{\mathrm{WeierstrassSigma}}{,}{\mathrm{\zeta }}{,}{\mathrm{abs}}{,}{\mathrm{conjugate}}{,}{\mathrm{\Re }}{,}{\mathrm{\Im }}{,}{\mathrm{argument}}{,}{\mathrm{signum}}{,}{\mathrm{Dirac}}{,}{\mathrm{Heaviside}}{,}{\mathrm{max}}{,}{\mathrm{min}}{,}{\mathrm{piecewise}}{,}{\mathrm{LambertW}}{,}{\mathrm{Wrightomega}}{,}{\mathrm{unwindK}}{,}{\mathrm{euler}}{,}{\mathrm{bernoulli}}{,}{\mathrm{Stirling1}}{,}{\mathrm{Stirling2}}{,}{\mathrm{BellB}}{,}{\mathrm{CompleteBellB}}{,}{\mathrm{IncompleteBellB}}{,}{\mathrm{HeunT}}{,}{\mathrm{HeunB}}{,}{\mathrm{HeunD}}{,}{\mathrm{HeunC}}{,}{\mathrm{HeunG}}{,}{\mathrm{HeunTPrime}}{,}{\mathrm{HeunBPrime}}{,}{\mathrm{HeunDPrime}}{,}{\mathrm{HeunCPrime}}{,}{\mathrm{HeunGPrime}}{,}{\mathrm{MathieuC}}{,}{\mathrm{MathieuCPrime}}{,}{\mathrm{MathieuS}}{,}{\mathrm{MathieuSPrime}}{,}{\mathrm{MathieuCE}}{,}{\mathrm{MathieuCEPrime}}{,}{\mathrm{MathieuSE}}{,}{\mathrm{MathieuSEPrime}}{,}{\mathrm{MathieuFloquet}}{,}{\mathrm{MathieuFloquetPrime}}{,}{\mathrm{MathieuA}}{,}{\mathrm{MathieuB}}{,}{\mathrm{MathieuExponent}}{,}{\mathrm{GeneralizedPolylog}}{,}{\mathrm{MultiPolylog}}{,}{\mathrm{MultiZeta}}{,}{\mathrm{NielsenPolylog}}{,}{\mathrm{fourier}}{,}{\mathrm{invfourier}}{,}{\mathrm{fouriercos}}{,}{\mathrm{fouriersin}}{,}{\mathrm{hankel}}{,}{\mathrm{hilbert}}{,}{\mathrm{invhilbert}}{,}{\mathrm{laplace}}{,}{\mathrm{invlaplace}}{,}{\mathrm{mellin}}{,}{\mathrm{invmellin}}\right]$ (10)

where functions to the left are selected before functions to the right when constructing the left-hand side of the output.