# Generalized functions#

Sage implements several generalized functions (also known as distributions) such as Dirac delta, Heaviside step functions. These generalized functions can be manipulated within Sage like any other symbolic functions.

AUTHORS:

• Golam Mortuza Hossain (2009-06-26): initial version

EXAMPLES:

Dirac delta function:

sage: dirac_delta(x)                                                                # needs sage.symbolic
dirac_delta(x)


Heaviside step function:

sage: heaviside(x)                                                                  # needs sage.symbolic
heaviside(x)


Unit step function:

sage: unit_step(x)                                                                  # needs sage.symbolic
unit_step(x)


Signum (sgn) function:

sage: sgn(x)                                                                        # needs sage.symbolic
sgn(x)


Kronecker delta function:

sage: m, n = var('m,n')                                                             # needs sage.symbolic
sage: kronecker_delta(m, n)                                                         # needs sage.symbolic
kronecker_delta(m, n)

class sage.functions.generalized.FunctionDiracDelta#

The Dirac delta (generalized) function, $$\delta(x)$$ (dirac_delta(x)).

INPUT:

• x - a real number or a symbolic expression

DEFINITION:

Dirac delta function $$\delta(x)$$, is defined in Sage as:

$$\delta(x) = 0$$ for real $$x \ne 0$$ and $$\int_{-\infty}^{\infty} \delta(x) dx = 1$$

Its alternate definition with respect to an arbitrary test function $$f(x)$$ is

$$\int_{-\infty}^{\infty} f(x) \delta(x-a) dx = f(a)$$

EXAMPLES:

sage: # needs sage.symbolic
sage: dirac_delta(1)
0
sage: dirac_delta(0)
dirac_delta(0)
sage: dirac_delta(x)
dirac_delta(x)
sage: integrate(dirac_delta(x), x, -1, 1, algorithm='sympy')                    # needs sympy
1


REFERENCES:

class sage.functions.generalized.FunctionHeaviside#

Bases: GinacFunction

The Heaviside step function, $$H(x)$$ (heaviside(x)).

INPUT:

• x - a real number or a symbolic expression

DEFINITION:

The Heaviside step function, $$H(x)$$ is defined in Sage as:

$$H(x) = 0$$ for $$x < 0$$ and $$H(x) = 1$$ for $$x > 0$$

EXAMPLES:

sage: # needs sage.symbolic
sage: heaviside(-1)
0
sage: heaviside(1)
1
sage: heaviside(0)
heaviside(0)
sage: heaviside(x)
heaviside(x)

sage: heaviside(-1/2)                                                           # needs sage.symbolic
0
sage: heaviside(exp(-1000000000000000000000))                                   # needs sage.symbolic
1


REFERENCES:

class sage.functions.generalized.FunctionKroneckerDelta#

The Kronecker delta function $$\delta_{m,n}$$ (kronecker_delta(m, n)).

INPUT:

• m - a number or a symbolic expression

• n - a number or a symbolic expression

DEFINITION:

Kronecker delta function $$\delta_{m,n}$$ is defined as:

$$\delta_{m,n} = 0$$ for $$m \ne n$$ and $$\delta_{m,n} = 1$$ for $$m = n$$

EXAMPLES:

sage: kronecker_delta(1,2)                                                      # needs sage.rings.complex_interval_field
0
sage: kronecker_delta(1,1)                                                      # needs sage.rings.complex_interval_field
1
sage: m, n = var('m,n')                                                         # needs sage.symbolic
sage: kronecker_delta(m, n)                                                     # needs sage.symbolic
kronecker_delta(m, n)


REFERENCES:

class sage.functions.generalized.FunctionSignum#

The signum or sgn function $$\mathrm{sgn}(x)$$ (sgn(x)).

INPUT:

• x - a real number or a symbolic expression

DEFINITION:

The sgn function, $$\mathrm{sgn}(x)$$ is defined as:

$$\mathrm{sgn}(x) = 1$$ for $$x > 0$$, $$\mathrm{sgn}(x) = 0$$ for $$x = 0$$ and $$\mathrm{sgn}(x) = -1$$ for $$x < 0$$

EXAMPLES:

sage: sgn(-1)
-1
sage: sgn(1)
1
sage: sgn(0)
0
sage: sgn(x)                                                                    # needs sage.symbolic
sgn(x)


We can also use sign:

sage: sign(1)
1
sage: sign(0)
0
sage: a = AA(-5).nth_root(7)                                                    # needs sage.rings.number_field
sage: sign(a)                                                                   # needs sage.rings.number_field
-1


REFERENCES:

class sage.functions.generalized.FunctionUnitStep#

Bases: GinacFunction

The unit step function, $$\mathrm{u}(x)$$ (unit_step(x)).

INPUT:

• x - a real number or a symbolic expression

DEFINITION:

The unit step function, $$\mathrm{u}(x)$$ is defined in Sage as:

$$\mathrm{u}(x) = 0$$ for $$x < 0$$ and $$\mathrm{u}(x) = 1$$ for $$x \geq 0$$

EXAMPLES:

sage: # needs sage.symbolic
sage: unit_step(-1)
0
sage: unit_step(1)
1
sage: unit_step(0)
1
sage: unit_step(x)
unit_step(x)
sage: unit_step(-exp(-10000000000000000000))
0