主要内容

dirac

狄拉克 δ 函数

说明

d = dirac(x) 表示 x狄拉克 δ 函数

示例

d = dirac(n,x) 表示狄拉克 δ 函数在 x 处的 n 阶导数。

示例

示例

全部折叠

计算涉及狄拉克 δ 函数和海维赛德函数的表达式的导数和积分。

求海维赛德函数的一阶和二阶导数。结果是狄拉克 δ 函数及其一阶导数。

syms x
Dx = diff(heaviside(x), x)
Dx = δdirac(x)
D2x = diff(heaviside(x), x, x)
D2x = δdirac(x)

求狄拉克 δ 函数的不定积分。int 返回的结果不包含积分常数。

f = int(dirac(x), x)
f = 

sign(x)2

求涉及狄拉克 δ 函数的正弦函数的积分。

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

dirac 会考虑对变量的假设。

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

为了进一步的计算,请使用 syms 重新创建 x 以清除对它的假设。

syms x

计算 x 的狄拉克 δ 函数及其前三阶导数。

使用向量 n = [0,1,2,3] 来指定导数的阶数。dirac 函数将标量扩展为与 n 大小相同的向量,并计算结果。

syms x
n = [0,1,2,3];
d = dirac(n,x)
d = (δdirac(x)δdirac(x)δdirac(x)δdirac(x))

0 代入 x

d0 = subs(d,x,0)
d0 = (--)

您可以使用 fplot 绘制狄拉克 δ 函数在默认区间 [-5 5] 内的图。但是,当 x 等于 0 时,dirac(x) 返回 Inf,而 fplot 不会绘制无穷大。

声明一个符号变量 x,并使用 fplot 绘制符号表达式 dirac(x)

syms x
fplot(dirac(x))

Figure contains an axes object. The axes object contains an object of type functionline.

为了处理 x 等于 0 处的无穷大,请使用数值而不是符号值。将 Inf 的值设置为 1,并使用 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)

Figure contains an axes object. The axes object contains an object of type stem.

输入参数

全部折叠

输入,指定为数字、符号数、符号变量、符号表达式或符号函数,表示一个实数。此输入也可以是由数字、符号数、符号变量、符号表达式或符号函数组成的向量、矩阵或多维数组。

导数的阶数,指定为非负数,或者表示一个非负数的符号变量、符号表达式或符号函数。此输入也可以是由非负数、符号数、符号变量、符号表达式或符号函数组成的向量、矩阵或多维数组。

详细信息

全部折叠

提示

  • 对于虚部非零的复数值 xdirac 返回 NaN

  • 对于非符号对象数值参量,dirac 返回浮点结果。

  • dirac 对非标量输入按元素进行操作。

  • 输入参量 xn 必须是相同大小的向量或矩阵,否则其中一个参量必须是标量。如果一个输入参量是标量,另一个是向量或矩阵,则 dirac 将标量扩展为与另一个参量大小相同的向量或矩阵,其中所有元素都等于该标量。

版本历史记录

在 R2006a 之前推出