Экстраполяция функцией предсказания
Как мы увидели (см. разд. 13.1.4), стандартные функции интерполяции-экстраполяции стоит применять только в непосредственной близости границ интервала данных. В Mathcad имеется более развитый инструмент экстраполяции, который учитывает распределение данных вдоль всего интервала. В функцию predict встроен линейный алгоритм предсказания поведения функции, основанный на анализе, в том числе осцилляции:
- predict (у, m, n) – функция предсказания вектора, экстраполирующего выборку данных:
- у – вектор действительных значений, взятых через равные промежутки значений аргумента;
- m – количество последовательных элементов вектора у, согласно которым строится экстраполяция;
- n – количество элементов вектора предсказаний.
Пример использования функции предсказания на примере экстраполяции осциллирующих данных уj с меняющейся амплитудой приведен в листинге 13.4. Полученный график экстраполяции, наряду с самой функцией, показан на рис. 13.10. Аргументы и принцип действия функции predict отличаются от рассмотренных выше встроенных функций интерполяции-экстраполяции. Значений аргумента для данных не требуется, поскольку по определению функция действует на данные, идущие друг за другом с равномерным шагом. Обратите внимание, что результат функции predict вставляется "в хвост" исходных данных.
Листинг 13.4. Экстраполяция при помощи функции предсказания:
Как видно из рис. 13.11, функция предсказания может быть полезна при экстраполяции данных на небольшие расстояния. Вдали от исходных данных результат часто бывает неудовлетворительным. Кроме того, функция predict хорошо работает в задачах анализа подробных данных с четко прослеживающейся закономерностью (типа рис. 13.10), в основном осциллирующего характера.
Рис. 13.10. Экстраполяция при помощи функции предсказания (продолжение листинга 13.4)
Если данных мало, то предсказание может оказаться бесполезным. В листинге 13.5 приведена экстраполяция небольшой выборки данных (из примеров, рассмотренных в предыдущих разделах). Соответствующий результат показан на рис. 13.11 для различных крайних точек массива исходных данных, для которых строится экстраполяция.
Листинг 13.5. Экстраполяция при помощи функции предсказания:
Рис. 13.11. Работа функции предсказания в случае малого количества данных (продолжение листинга 13.5)