我正在使用Mathematica 7。
我有一个插值函数,以下是一个示例:
pressures =
WeatherData["Chicago", "Pressure", {2010, 8}] //
DeleteCases[#, {_, _Missing}] & //
Map[{AbsoluteTime[#[[1]]], #[[2]]} &, #] & // Interpolation;
我希望能够计算它的导数,这很简单:
dpressures = D[pressures[x], x]
现在,如果您绘制此函数
Plot[3600*dpressures, {x, AbsoluteTime[{2010, 8, 2}], AbsoluteTime[{2010, 8, 30}]}]
抱歉,我不知道如何在Mathematica中从内部发布图像,并且没有时间弄清楚。你会发现它非常嘈杂。因此,我想要平滑它。我的第一个想法是使用Convolve,并将其与高斯核相结合,类似于以下内容:
a = Convolve[PDF[NormalDistribution[0, 5], x], 3600*dpressures, x, y]
返回
360 Sqrt[2/\[Pi]] Convolve[E^(-(x^2/50)), InterpolatingFunction[{{3.48961266 10^9, 3.49228746 10^9}},<>], ][x], x, y]
在我的看法中,这看起来是合理的。不幸的是,我认为我在某个地方犯了一个错误,因为我得到的结果似乎无法被评估。也就是说:
a /. y -> AbsoluteTime[{2010, 8, 2}]
返回结果
360 Sqrt[2/\[Pi]] Convolve[E^(-(x^2/50)), InterpolatingFunction[{{3.48961266 10^9, 3.49228746 10^9}},<>][x], x, 3489696000]]
我希望得到的是一个介于-1和1之间的数字,但这似乎并不是我想要的。