Есть у меня некая функция, заданная набором точек. Мне нужно обработать пики этой функции гауссианом — т.е. аппроксимировать пик функцией и выдать пользователю параметры этого пика.
Второй день пристаю к гуглу с вопросом "обработка пиков гауссиан", но алгоритм получения гауссиана пока не нашёл.
Пните в нужном направлении, где поискать описание алгоритма?
On 11/20/2009 04:24 AM, artem_korneev wrote:
> Есть у меня некая функция, заданная набором точек. Мне нужно обработать пики этой функции гауссианом — т.е. аппроксимировать пик функцией и выдать пользователю параметры этого пика.
> Второй день пристаю к гуглу с вопросом "обработка пиков гауссиан", но алгоритм получения гауссиана пока не нашёл. Пните в нужном направлении, где поискать описание алгоритма?
www.wolframalpha.com ?
Posted via RSDN NNTP Server 2.1 beta
Здравствуйте, artem_korneev, Вы писали:
_>Есть у меня некая функция, заданная набором точек. Мне нужно обработать пики этой функции гауссианом — т.е. аппроксимировать пик функцией и выдать пользователю параметры этого пика.
_>Второй день пристаю к гуглу с вопросом "обработка пиков гауссиан", но алгоритм получения гауссиана пока не нашёл. Пните в нужном направлении, где поискать описание алгоритма?
В книге Numerical Recipes in C (доступна в инете, правда, на официальном сайте ее вроде уже нет) метод Левенберга-Марквардта иллюстрируется как раз на примере подгонки набором гауссианов.
Здравствуйте, MBo, Вы писали:
MBo>Здравствуйте, artem_korneev, Вы писали:
_>>Есть у меня некая функция, заданная набором точек. Мне нужно обработать пики этой функции гауссианом — т.е. аппроксимировать пик функцией и выдать пользователю параметры этого пика.
_>>Второй день пристаю к гуглу с вопросом "обработка пиков гауссиан", но алгоритм получения гауссиана пока не нашёл. Пните в нужном направлении, где поискать описание алгоритма?
MBo>В книге Numerical Recipes in C (доступна в инете, правда, на официальном сайте ее вроде уже нет) метод Левенберга-Марквардта иллюстрируется как раз на примере подгонки набором гауссианов.
А еще можешь погуглить на тему Gaussian Mixture Models и EM-алгоритма для их построения.
В частности, статья Jeff A. Bilmes "A Gentle Tutorial of the EM Algorithm and its Application to Parameter Estimation for Gaussian Mixture and Hidden Markov Models".
Здравствуйте, artem_korneev, Вы писали:
_>Второй день пристаю к гуглу с вопросом "обработка пиков гауссиан", но алгоритм получения гауссиана пока не нашёл. Пните в нужном направлении, где поискать описание алгоритма?
1. Вообще-то все цивилизованные люди просто подставляют значения в функцию Гаусса. Или я что-то не так понял?
2. Всё что касается технических вопросов искать лучше в англоязычном интернете.
Здравствуйте, artem_korneev, Вы писали:
_>Есть у меня некая функция, заданная набором точек. Мне нужно обработать пики этой функции гауссианом — т.е. аппроксимировать пик функцией и выдать пользователю параметры этого пика.
_>Второй день пристаю к гуглу с вопросом "обработка пиков гауссиан", но алгоритм получения гауссиана пока не нашёл. Пните в нужном направлении, где поискать описание алгоритма?
Обработкой пиков Гауссианами чаще занимаются в ядерной физике. Часто при решении конкретой физической задачи приводятся и формулы подсчетов в публикациях.
Задача эта — типично некорректная и решается в общем виде так:
1. Определяется начальное приближение для пиков.
Это можно сделать так —
1.1 по математическому ожиданию (среднему) высоких точек определить положение Гауссиана;
1.2 по ширине линии на полувысоте определить ширину Гауссиана;
1.3 площадь линии — для линейного коэффициента.
2. После этого — любой итерационный нелинейный метод с учетом полученного начального приближения. Чаще всего используют — метод Левенберга-Марквардта. Алгоритм хорошо описан в книге — Лоусон, Хенсон Численное решение задач методом наименьших квадратов.
Если Ваш набор точек содержит данные с "шумом", фоновой подложкой, и близкорасположенные Гуссианы — когда требуется определить их точное количество — то дальше начинается искусство
То есть надо очень конкретно рассматривать все условия