dirac
Dirac delta function
Description
Examples
Handle Expressions Involving Dirac and Heaviside Functions
Compute derivatives and integrals of expressions involving the Dirac delta and Heaviside functions.
Find the first and second derivatives of the Heaviside function. The result is the Dirac delta function and its first derivative.
syms x diff(heaviside(x), x) diff(heaviside(x), x, x)
ans = dirac(x) ans = dirac(1, x)
Find the indefinite integral of the Dirac delta function. The results returned by
int
do not include integration constants.
int(dirac(x), x)
ans = sign(x)/2
Find the integral of the sine function involving the Dirac delta function.
syms a int(dirac(x - a)*sin(x), x, -Inf, Inf)
ans = sin(a)
Use Assumptions on Variables
dirac
takes into account assumptions on
variables.
syms x real assumeAlso(x ~= 0) dirac(x)
ans = 0
For further computations, clear the assumptions on x
by
recreating it using syms
.
syms x
Evaluate Dirac Delta Function for Symbolic Matrix
Compute the Dirac delta function of x
and
its first three derivatives.
Use a vector n = [0,1,2,3]
to specify the order of derivatives.
The dirac
function expands the scalar into a vector of the same
size as n
and computes the result.
syms x n = [0,1,2,3]; d = dirac(n,x)
d = [ dirac(x), dirac(1, x), dirac(2, x), dirac(3, x)]
Substitute x
with 0
.
subs(d,x,0)
ans = [ Inf, -Inf, Inf, -Inf]
Plot Dirac Delta Function
You can use fplot
to plot the Dirac delta
function over the default interval [-5 5]
. However,
dirac(x)
returns Inf
at
x
equal to 0
, and
fplot
does not plot the infinity.
Declare a symbolic variable x
and plot the symbolic
expression dirac(x)
by using fplot
.
syms x fplot(dirac(x))
To handle the infinity at x
equal to 0
, use
numeric values instead of symbolic values. Set the Inf
value to
1
and plot the Dirac delta function by using
stem
.
x = -1:0.1:1; y = dirac(x); idx = y == Inf; % find Inf y(idx) = 1; % set Inf to finite value stem(x,y)
Input Arguments
More About
Tips
For complex values
x
with nonzero imaginary parts,dirac
returnsNaN
.dirac
returns floating-point results for numeric arguments that are not symbolic objects.dirac
acts element-wise on nonscalar inputs.The input arguments
x
andn
must be vectors or matrices of the same size, or else one of them must be a scalar. If one input argument is a scalar and the other one is a vector or a matrix, thendirac
expands the scalar into a vector or matrix of the same size as the other argument with all elements equal to that scalar.
Version History
Introduced before R2006a