Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Dirac delta function

`dirac(x)`

`dirac(n,x)`

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 this expression involving the Dirac delta function.

syms a int(dirac(x - a)*sin(x), x, -Inf, Inf)

ans = sin(a)

`dirac`

takes into account
assumptions on variables.

syms x real assumeAlso(x ~= 0) dirac(x)

ans = 0

For further computations, clear the assumptions.

syms x clear

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.

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]

To handle the infinity at 0, use numeric values instead of
symbolic values. Continue plotting all other symbolic inputs symbolically by
using `fplot`

.

Set the `Inf`

value to `1`

and plot 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)

For complex values

`x`

with nonzero imaginary parts,`dirac`

returns`NaN`

.`dirac`

returns floating-point results for numeric arguments that are not symbolic objects.`dirac`

acts element-wise on nonscalar inputs.At least one input argument must be a scalar or both arguments must be vectors or matrices of the same size. If one input argument is a scalar and the other one is a vector or a matrix, then

`dirac`

expands the scalar into a vector or matrix of the same size as the other argument with all elements equal to that scalar.

Was this topic helpful?