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.BuiltinFunctionThe 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.BuiltinFunctionThe 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: heaviside(-1) 0 sage: heaviside(1) 1 sage: heaviside(0) heaviside(0) sage: heaviside(x) heaviside(x)
TESTS:
sage: heaviside(x)._sympy_() Heaviside(x)
REFERENCES:
-
class
sage.functions.generalized.FunctionKroneckerDelta¶ Bases:
sage.symbolic.function.BuiltinFunctionThe Kronecker delta function \(\delta_{m,n}\) (
kronecker_delta(m, n)).INPUT:
m- a number or a symbolic expressionn- 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.BuiltinFunctionThe 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
TESTS:
Check if conversion to sympy works trac ticket #11921:
sage: sgn(x)._sympy_() sign(x)
REFERENCES:
-
class
sage.functions.generalized.FunctionUnitStep¶ Bases:
sage.symbolic.function.BuiltinFunctionThe 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: unit_step(-1) 0 sage: unit_step(1) 1 sage: unit_step(0) 1 sage: unit_step(x) unit_step(x)
