Mathematical Function Properties

Adam Strzeboński, Wolfram Research Inc.

Join the Conversation #WolframTechConf

ABSTRACT

I will present new Mathematica functionality for computing properties of mathematical functions. The functionality, which is currently under development, includes computation of several classes of function properties. The new capabilities for computing set-theoretical properties include testing for injectivity, surjectivity, and bijectivity, as well as improvements in computation of function domain and range.  Topological and analytic properties computed include continuity, holomorphicity, meromorphicity, singularities, and discontinuities. For real functions, the new features include computation of sign, monotonicity, and convexity. In my talk I will introduce the new Mathematica functions and discuss methods they use.

Mathematical Function Properties

Set-theoretical properties

• FunctionDomain

• FunctionRange

• InjectiveFunctionC

• SurjectiveFunctionC

• BijectiveFunctionC

Topological and analytic properties

• FunctionDiscontinuities

• FunctionSingularities

• ContinuousFunctionC

• HolomorphicFunctionC

• MeromorphicFunctionC

Sign properties of real functions

• FunctionSign

• FunctionMonotonicity

• FunctionConvexity

InjectiveFunctionC

A function f:X->Y is injective if for any y∈Y the equation f(x)==y has at most one solution x∈X.

Equivalently, a function f is injective if for any a≠b we have f(a)≠f(b).

InjectiveFunctionC[E^x,x]

Plot[{E^x,-2,2},{x,-3,3}]

InjectiveFunctionC[x^2,x]

Plot[{x^2,-2,2},{x,-3,3}]

Injectivity depends on the specification of sets X and Y.

InjectiveFunctionC[E^x,x,Complexes]

InjectiveFunctionC[{x^2,x>0},x]

InjectiveFunctionC[{x^3-x,True,y>1/2},x,y]

Plot[{x^3-x,1/2},{x,-2,2}]

Injectivity of a function with symbolic parameters.

InjectiveFunctionC[x^3+a x^2+b x+1,x]

Injectivity of a mapping.

InjectiveFunctionC[{x+1,y^3+Sin[x]},{x,y}]

Full syntax: 
InjectiveFunctionC[{funs,xcons,ycons},xvars,yvars,dom] 
returns True if the mapping funs(Subscript[|, S⋂(funs^(-1))(T)]):S⋂(funs^(-1))(T)->T is injective, where S is the solution set of xcons and T is the solution set of ycons over the domain dom = (Reals) or (Complexes).

SurjectiveFunctionC

A function f:X->Y is surjective if for any y∈Y the equation f(x)==y has at least one solution x∈X.

SurjectiveFunctionC[E^x,x]

Plot[{E^x,-2,2},{x,-3,3}]

SurjectiveFunctionC[Tan[x],x]

Plot[{Tan[x],-2,2},{x,-2Pi,2Pi}]

Surjectivity depends on the specification of sets X and Y.

SurjectiveFunctionC[{E^x,x>0,y>1},x,y]

SurjectiveFunctionC[Tan[x],x,Complexes]

FunctionRange[Tan[x],x,y,Complexes]

SurjectiveFunctionC[{Tan[x],True,y^2≠-1},x,y,Complexes]

Full syntax: 
SurjectiveFunctionC[{funs,xcons,ycons},xvars,yvars,dom] 
returns True if the mapping funs(Subscript[|, S⋂(funs^(-1))(T)]):S⋂(funs^(-1))(T)->T is surjective, where S is the solution set of xcons and T is the solution set of ycons over the domain dom = (Reals) or (Complexes).

BijectiveFunctionC

A function f:X->Y is bijective if for any y∈Y the equation f(x)==y has exactly one solution x∈X.

Equivalently, a function f is bijective if it is injective and surjective.

BijectiveFunctionC[x E^x^2,x]

Plot[{x E^x^2,-2,2},{x,-2,2}]

BijectiveFunctionC[Tan[x],x]

Plot[{Tan[x],-2,2},{x,-2Pi,2Pi}]

Bijectivity depends on the specification of sets X and Y.

BijectiveFunctionC[x E^x^2,x,Complexes]

BijectiveFunctionC[{Tan[x],-Pi/2<x<Pi/2},x]

Full syntax: 
BijectiveFunctionC[{funs,xcons,ycons},xvars,yvars,dom] 
returns True if the mapping funs(Subscript[|, S⋂(funs^(-1))(T)]):S⋂(funs^(-1))(T)->T is bijective, where S is the solution set of xcons and T is the solution set of ycons over the domain dom = (Reals) or (Complexes).

BijectiveFunctionC[Log[x],x]

FunctionDiscontinuities

FunctionDiscontinuities[f, vars, dom] gives a condition cond  in vars such that  f  is continuous for vars outside the solution set of cond over the domain dom =  (Reals) or (Complexes).

FunctionDiscontinuities[Floor[x],x]

FunctionDiscontinuities[Tan[Log[x]],x,Complexes]

The solution set of  cond  is not guaranteed to be minimal.

FunctionDiscontinuities[x^2UnitStep[x] Gamma[x],x]

Plot[x^2 UnitStep[x] Gamma[x],{x,-3,3}]

The solution set of  cond  includes points at which the function is undefined (over the specified domain).

FunctionDiscontinuities[ArcSin[x],x]

FunctionSingularities

FunctionSingularities[f, vars, dom] gives a condition cond  in vars such that  f  is analytic for vars outside the solution set of cond over the domain dom =  (Reals) or (Complexes).

FunctionSingularities[Gamma[x],x]

FunctionSingularities[1/ArcSin[x],x,Complexes]

FunctionSingularities[Hypergeometric2F1[a,b,c,z],{a,b,c,z}]

Plot[Hypergeometric2F1[1,2,3,z],{z,-3,3}]

Plot[Hypergeometric2F1[1,2,c,-1],{c,-3,3}]

FunctionSingularities[Hypergeometric2F1[a,b,c,z],{a,b,c,z},Complexes]

ComplexPlot[Hypergeometric2F1[1,2,3,z],{z,-I,2+I}]

FunctionSingularities[Abs[x],x]

FunctionSingularities[Re[x],x,Complexes]

FunctionDiscontinuities[Re[x],x,Complexes]

ContinuousFunctionC

Test whether a function is continuous over the specified domain (by default ℝ).

ContinuousFunctionC[Max[Log[Abs[x]+1],x Sin[x]],x]

Plot[Max[Log[Abs[x]+1],x Sin[x]],{x,-20,20}]

ContinuousFunctionC[Sin[x]/x,x]

ContinuousFunctionC[Piecewise[{{Sin[x]/x,x≠0}},1],x]

ContinuousFunctionC[Piecewise[{{Sin[x]/x,x≠0}},a],x]

The function must be defined over the specified domain (by default Reals).

ContinuousFunctionC[Log[x],x]

ContinuousFunctionC[{Log[x],x>0},x]

ContinuousFunctionC[ArcTan[x],x]

ContinuousFunctionC[ArcTan[x],x,Complexes]

A multivariate continuous function.

ContinuousFunctionC[{x^y,x>0},{x,y}]

Full syntax: 
ContinuousFunctionC[{funs,cons},vars,dom] 
returns True if the mapping funs is continuous on the solution set of cons over the domain dom = (Reals) or (Complexes).

HolomorphicFunctionC

Test whether a function is holomorphic (real analytic) over the specified domain (by default ℂ).

HolomorphicFunctionC[Sin[E^x]^2+x,x]

HolomorphicFunctionC[ArcTan[x],x]

HolomorphicFunctionC[ArcTan[x],x,Reals]

FunctionSingularities[ArcTan[x],x,Complexes]

HolomorphicFunctionC[{ArcTan[x],Re[x]>0},x]

A multivariate holomorphic function.

HolomorphicFunctionC[Hypergeometric0F1Regularized[E^(x+y),y^2],{x,y}]

Full syntax: 
HolomorphicFunctionC[{funs,cons},vars,dom] 
returns True if the mapping funs is holomorphic (real analytic) on an open set containing the solution set of cons over the domain dom = (Reals) or (Complexes).

MeromorphicFunctionC

Test whether a function is meromorphic (locally a ratio of real analytic functions) over the specified domain (by default ℂ).

MeromorphicFunctionC[Tan[x^2]+1/x,x]

MeromorphicFunctionC[1/Log[x],x]

MeromorphicFunctionC[{1/Log[x],Re[x]>0},x]

MeromorphicFunctionC[E^(1/(x^2+1))/x,x]

MeromorphicFunctionC[E^(1/(x^2+1))/x,x,Reals]

A multivariate meromorphic function.

MeromorphicFunctionC[WeberE[x,y,z],{x,y,z}]

FunctionSingularities[WeberE[x,y,z],{x,y,z},Complexes]

Full syntax: 
MeromorphicFunctionC[{funs,cons},vars,dom] 
returns True if the mapping funs is meromorphic (locally a ratio of real analytic functions) on an open set containing the solution set of cons over the domain dom = (Reals) or (Complexes).

FunctionSign

Find the sign of a function (0 if f≡0, 1 if f≥0, -1 if f≤0, and Indeterminate otherwise).

FunctionSign[x^2,x]

FunctionSign[Sin[x],x]

Find the strict sign of a function (1 if f>0, -1 if f<0, and Indeterminate otherwise).

FunctionSign[x^2,x,Strictness->True]

FunctionSign[2^x,x,Strictness->True]

Find the sign of a function on the solution set of constraints.

FunctionSign[{Log[x],0<x<1},x]

Find the sign of a multivariate function.

FunctionSign[x^2-x y+y^2,{x,y}]

Sign of functions with symbolic parameters.

FunctionSign[a x^2+b x y+c y^2,{x,y}]

FunctionSign[a^x,x,Assumptions->a>0]

Full syntax: 
FunctionSign[{f,cons},vars,dom] 
find the real sign of f with variables vars in the domain dom⊆ℝ and restricted by the constraints cons.

FunctionMonotonicity

Find the monotonicity of a function (0 if f is constant, 1 if f is nondecreasing, -1 if f nonincreasing, and Indeterminate otherwise).

FunctionMonotonicity[Ramp[x],x]

Plot[Ramp[x],{x,-1,1},PlotStyle->Thick]

FunctionMonotonicity[Sin[x],x]

Find the strict monotonicity of a function (1 if f is increasing, -1 if f is decreasing, and Indeterminate otherwise).

FunctionMonotonicity[Ramp[x],x,Strictness->True]

FunctionMonotonicity[2^x,x,Strictness->True]

Find the monotonicity of a function on the solution set of constraints.

FunctionMonotonicity[{Log[x],x>0},x]

FunctionMonotonicity[x Cos[2Pi x],x,Integers]

Show[{Plot[x Cos[2Pi x],{x,-7,7}],Graphics[{Red,Point[Table[{k,k},{k,-7,7}]]}]}]

Monotonicity of functions with symbolic parameters.

FunctionMonotonicity[a^x,x,Assumptions->a>0]

Full syntax: 
FunctionMonotonicity[{f,cons},x,dom] 
find the monotonicity of f(x) with x in the domain dom⊆ℝ and restricted by the constraints cons.

FunctionConvexity

Find the convexity of a function (0 if f is affine, 1 if f is convex, -1 if f is concave, and Indeterminate otherwise).

FunctionConvexity[Max[Abs[x],x^2],x]

Plot[Max[Abs[x],x^2],{x,-2,2}]

FunctionConvexity[Sin[x],x]

Find the strict convexity of a function (1 if f is strictly convex, -1 if f is strictly concave, and Indeterminate otherwise).

FunctionConvexity[Max[Abs[x],x^2],x,Strictness->True]

FunctionConvexity[x^2,x,Strictness->True]

Find the convexity of a function on the solution set of constraints.

FunctionConvexity[{Cos[x],-Pi/2<x<Pi/2},x]

Find the convexity of a multivariate function.

FunctionConvexity[Log[3^(2x+3 y)+5^(5x-4y)],{x,y}]

Plot3D[Log[3^(2x+3 y)+5^(5x-4y)],{x,-2,2},{y,-2,2}]

Convexity of functions with symbolic parameters.

FunctionConvexity[a x^2+b y^2+c x y,{x,y}]

FunctionConvexity[Norm[{x,y},p],{x,y},Assumptions->p≥1]

Full syntax: 
FunctionConvexity[{f,cons},vars] 
find the convexity of f with variables vars restricted by the constraints cons.

Methods

• Collected information about properties of mathematical functions

• Closure properties

• Computational criteria (require equation & inequality solving, quantifier elimination)