В Mathcad имеется несколько встроенных функций, реализующих различные алгоритмы сглаживания данных:
- х — вектор действительных данных аргумента (для supsmooth его элементы должны быть расположены в порядке возрастания);
- у — вектор действительных значений того же размера, что и х;
- b — ширина окна сглаживания.
ПРИМЕЧАНИЕ
Подробную информацию об алгоритмах, заложенных в функции сглаживания, вы найдете в справочной системе Mathcad в статье
Smoothing (Сглаживание),
находящейся в разделе Statistics (Статистика). Очень полезные сведения о разных типах фильтрации можно отыскать в Быстрых шпаргалках.
Часто бывает полезным совместить сглаживание с последующей интерполяцией или регрессией. Соответствующий пример приведен в листинге 14.7 для функции
supsmooth. Результат работы листинга показан на рис. 14.18 (кружки обозначают исходные данные, крестики — сглаженные, пунктирная кривая — результат сплайн-интерполяции). Сглаживание тех же данных при помощи "бегущих медиан" и функции Гаусса с разным значением ширины окна пропускания показаны на рис. 14.19 и 14.20 соответственно.
Листинг 14.7. Сглаживание с последующей сплайн-интерполяцией
Рис. 14.18. Адаптивное сглаживание (продолжение листинга 14.7)
Рис. 14.19. Сглаживание "бегущими медианами"
Рис. 14.20. Сглаживание при помощи функции ksmooth