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)
dirac_delta(x)

Heaviside step function:

sage: heaviside(x)
heaviside(x)

Unit step function:

sage: unit_step(x)
unit_step(x)

Signum (sgn) function:

sage: sgn(x)
sgn(x)

Kronecker delta function:

sage: m,n=var('m,n')
sage: kronecker_delta(m,n)
kronecker_delta(m, n)
class sage.functions.generalized.FunctionDiracDelta

Bases: sage.symbolic.function.BuiltinFunction

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: 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')
1

REFERENCES:

class sage.functions.generalized.FunctionHeaviside

Bases: sage.symbolic.function.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\)

See also

unit_step()

EXAMPLES:

sage: heaviside(-1)
0
sage: heaviside(1)
1
sage: heaviside(0)
heaviside(0)
sage: heaviside(x)
heaviside(x)

sage: heaviside(-1/2)
0
sage: heaviside(exp(-1000000000000000000000))
1
sage: ex = heaviside(x)+1
sage: t = loads(dumps(ex)); t
heaviside(x) + 1
sage: bool(t == ex)
True
sage: t.subs(x=1)
2

REFERENCES:

class sage.functions.generalized.FunctionKroneckerDelta

Bases: sage.symbolic.function.BuiltinFunction

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)
0
sage: kronecker_delta(1,1)
1
sage: m,n=var('m,n')
sage: kronecker_delta(m,n)
kronecker_delta(m, n)

REFERENCES:

class sage.functions.generalized.FunctionSignum

Bases: sage.symbolic.function.BuiltinFunction

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)
sgn(x)

We can also use sign:

sage: sign(1)
1
sage: sign(0)
0
sage: a = AA(-5).nth_root(7)
sage: sign(a)
-1

REFERENCES:

class sage.functions.generalized.FunctionUnitStep

Bases: sage.symbolic.function.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\)

See also

heaviside()

EXAMPLES:

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