我是matlab新手。我不明白如何导出狄拉克三角函数,然后使用符号工具箱进行移位。使用Matlab符号工具箱导出dirac delta函数
syms t
x = dirac(t)
为什么我不能看到使用ezplot(x,[-10,10])
例如狄拉克函数?
我是matlab新手。我不明白如何导出狄拉克三角函数,然后使用符号工具箱进行移位。使用Matlab符号工具箱导出dirac delta函数
syms t
x = dirac(t)
为什么我不能看到使用ezplot(x,[-10,10])
例如狄拉克函数?
首先,我以前没有遇到过ezplot
;我必须阅读它。对于像你的x
这样的功能,这很方便,但你仍然必须意识到它正在给你它所承诺的东西:一个情节。
如果你有绘制狄拉克三角函数的工作,你会如何去做正确的?你不能。你必须找到一个注释你的情节的惯例,告诉你情节中有一个单独的,孤立的,无限的点。
用线图绘制东西因此不适用于除平滑函数(这是一个明确定义的术语)。 Dirac Delta绝对不是那种顺畅的功能类别。您通常会使用垂直线或某物来表示功能不为0的点。
它甚至可能不属于这类函数:-) –
@LuisMendo:是的,这是一个分布,它是是基于功能的广义概念;但你可以向OP解释;) –
正如其他人所指出的那样,Dirac delta function不是真正的功能,而是generalized function。为dirac
帮助说明这一点:
狄拉克(X)是不是严格意义上的功能,而是一个
分布INT(狄拉克(XA)* F(X), - INF, inf)= f(a)和
diff(heaviside(x),x)= dirac(x)。
严格地说,Matlab不可能以正常方式绘制狄拉克三角函数,因为它的一部分延伸到无穷大。但是,如果您需要可视化,则有许多解决方法。一个简单的方法是使用stem
绘图函数和>
运算符将一个Inf
值转换为有限值。这将产生一个单位冲激函数(或Kronecker delta):如果t
和x
已经存在的符号变量/表达式,而不是数字的人,你可以使用
t = -10:10;
x = dirac(t) > 0;
stem(t,x)
subs
:
syms t
x = dirac(t);
t2 = -10:10;
x2 = subs(x,t,t2)>0;
stem(t2, x2)
如果你想要看起来不同的东西,你可以编写自己的绘图程序。使用ezplot
不可能工作,因为它不提供尽可能多的控制。
,因为dirac(t)不是函数。但matlab假装它是一个函数,当绘图时,如果你的样本没有达到零,你会得到零平面 – percusse