Цитата:
Метод обратного преобразования
Попробовал суммировать как Вы сказали, потом просто меняю местами x и y получаю обратную кусочно линейную функцию. Которую пробую интерполировать Лагранжем, на каких то примерах получается нормально, на каких то осциллирует,
феномен Рунге все портит. Можно было бы попробовать что то выжать из
узлов Чебышева, с этой темой я не знаком, но не думаю что это кардинально решит проблему ИМХО.
Можно ли что то придумать более устойчивое чем Лагранж?
Генерим случайное число в этом отрезке и выбираем соответствующее кусочку значение.
Вы имеете в виду генерируем y и по нему обратно находим x. Так как шкала получается нелинейной нужен поиск. Понимаю. Работать будет. Но хочется более красивое решение.
Я вот думал разбить поверхность графика плотности распределения на регулярную прямоугольную сетку. Ячейки которой полностью лежат под функцией принимаем во внимание, которые лежат выше отбрасываем. Потом если положить на бок все столбики сетки и склеить в единый вектор, то за счет того что величины ячеек все одинаковые можно по одному случайному числу сразу получить индекс ячейки этого вектора, а это значит и практически сразу получить значение. Проблему составляют те ячейки которые не полностью попадают под функцию. При попадании в них все равно нужно посмотреть попали ли мы под функцию или над и если над, то мы попали мимо и нужно начать алгоритм заново.
Но все равно это значительный прогресс по сравнению с классическим методом так как ячейки находящиеся полностью над функцией мы игнорируем, а это значительная площадь графика где телодвижения оказываются напрасными.
Только что вычитал, что есть
похожий алгоритм (4.4 Аппроксимация плотностей) но в нем сетка нерегулярная а значит требуется поиск.
Вот ссылка на лекции моего друга
Прошу прощения, на стр.4 как второй алгоритм называется? Что то там "Метод порядк статк"?!