【问题标题】:Dirac probability measure in MatlabMatlab中的狄拉克概率测度
【发布时间】:2017-02-09 16:46:58
【问题描述】:

我想在 Matlab 中实现概率测量的密度。为此,我将density 定义为函数句柄,以便可以通过

计算区间 [a,b] 上某个函数 f(作为函数句柄给出)的积分
syms x
int(f(x)*density(x),x,a,b)

当谈到狄拉克度量时,问题在于

int(dirac(x),x,0,b)

为所有 b>0 提供值 1/2 而不是 1。但是,如果我输入

int(dirac(x),x,a,b)

其中 a0 返回值应为 1。出于这个原因,乘以 2 是不够的,因为我希望我的密度对所有区间 [a,b] 都有效。我也不想在集成之前区分案例,以便代码对大量密度保持有效。

有人知道我如何在 Matlab 中实现狄拉克概率测度(定义为 here)吗?

【问题讨论】:

  • Dirac 分布的所有权重都集中在0。因此,当积分下限恰好是0 时,我不确定如何定义积分。您不能使用例如-inf 作为集成下限吗?或者也许使用一个限制:limit(int(dirac(x),x,a,b),a,0,'left') 确实给了1
  • @Luis Mendo 在我的问题中,我指定了要关闭的积分区间。因此,狄拉克的积分将是很好定义的(仅当区间中包含 0 时才计算在内)。极限解决方案很好,但是因为我想计算不同密度的积分,所以我不想总是计算极限(如果没有人想出更好的解决方案,我可能会采用这个解决方案)。
  • 让我稍微退后一步,采取不同的方法。 int(delta, 0, b) 没有唯一的、公认的定义。这里的问题不是你得到了“错误”的答案,因为你想以某种方式对 delta 函数强加一个不同的约定,而不是 Matlab 提供的。 (他们的选择是有根据的,但不是唯一的。)例如,如果您在 Wolfram Alpha 中对此进行评估,它将给您 theta(0) - 它没有被特别定义为任何东西。这里 theta 是 Heaviside 函数。如果你想在这里强加你自己的约定,实现你自己的 delta 函数。
  • @Brick 为了获得帮助(建立我自己的增量概率密度),我提出了这个问题。但是,我可能不够精确,因为我的意思是给定 here 的定义。

标签: matlab symbolic-math calculus probability-density


【解决方案1】:

int(delta, 0, b) 没有唯一的、公认的定义。这里的问题不是你得到了“错误”的答案,因为你想以某种方式对 delta 函数强加一个不同的约定,而不是 Matlab 提供的。 (他们的选择是有根据的,但不是唯一的。)例如,如果您在 Wolfram Alpha 中对此进行评估,它将给您 theta(0) - 它没有被特别定义为任何东西。这里 theta 是 Heaviside 函数。如果您想强加自己的约定,请实现自己的 delta 函数。

编辑

我看到你在我写这个答案的时候写了一个评论,所以....请记住,狄拉克测量或狄拉克三角函数根本不是一个函数。您遇到的问题以及下面描述的问题都与试图为本质上不是函数的事物赋予函数形式有关。您在 Matlab 中的框架中没有明确定义您正在做的事情。

编辑结束

为了将约定放在上下文中,delta 函数可以由不同的属性定义。一种是当 a

如果您想在 a

作为相关说明,在 x=0 处的阶跃函数(Heaviside 函数)上也有类似的选择。有一些约定,其中 is (a) undefined、(b) -1、(c) +1 和 (d) 1/2。没有一个是“错误的”。这可能大致对应于 Dirac 函数的选择,因为 Heaviside(大致)是 Dirac 的积分。

【讨论】:

  • 这不是我的问题的答案(位于最后一行)。根据概率测度的狄拉克测度是唯一定义的 (here)。我编辑了我的问题以使其更准确。
  • @Vincent.W。我再试一次,然后我就出去了。您引用的定义根本不提供函数的定义。它是对 something 数学的独特定义,但它不是函数。您在 Matlab 中的框架需要一个函数。你想要的不存在。
  • @Vincent.W。也许我可以将 Brick 的评论改写如下:你想要的是关于狄拉克度量的积分。 Matlab 只考虑勒贝格测度。除非您考虑分布(而不仅仅是函数),否则狄拉克三角洲相对于勒贝格测度的积分不存在。因此,您必须能够处理分布或任意度量,而现成的 Matlab 函数不可能实现这些
猜你喜欢
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多