Я использую 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.