Математический редактор MathCAD

         

15.3.1. Встроенные функции для сглаживания

В Mathcad имеется несколько встроенных функций, реализующих различные алгоритмы сглаживания данных.

  • medsmooth(y,b) — сглаживание алгоритмом "бегущих медиан";
  • ksmooth(x,y,b) — сглаживание на основе функции Гаусса;
  • supsmooth(x,y) — локальное сглаживание адаптивным алгоритмом, основанное на анализе ближайших соседей каждой пары данных;
    • х — вектор действительных данных аргумента (для supsmooth его элементы должны быть расположены в порядке возрастания);
    • у — вектор действительных значений того же размера, что и х;
    • b — ширина окна сглаживания.

Все функции имеют в качестве аргумента векторы, составленные из массива данных, и выдают в качестве результата вектор сглаженных данных того же размера. Функция medsmooth предполагает, что данные расположены равномерно.

Подробную информацию об алгоритмах, заложенных в функции сглаживания, Вы найдете в справочной системе Mathcad в статье Smoothing (Сглаживание), находящейся в разделе Statistics (Статистика).

Часто бывает полезным совместить сглаживание с последующей интерполяцией или регрессией. Соответствующий пример приведен в листинге 15.16 для функции supsmooth. Результат работы листинга показан на рис. 15.18 (кружки обозначают исходные данные, крестики — сглаженные, пунктирная кривая — результат сплайн-интерполяции). Сглаживание тех же данных при помощи "бегущих медиан" и функции Гаусса с разным значением ширины окна пропускания показаны на рис. 15.19 и 15.20, соответственно.

Листинг 15.16. Сглаживание с последующей сплайн-интерполяцией


15.3.1. Встроенные функции для сглаживания


15.3.1. Встроенные функции для сглаживания

Рис. 15.18. Адаптивное сглаживание (листинг 15.16)


15.3.1. Встроенные функции для сглаживания

Рис. 15.19. Сглаживание "бегущими медианами"


15.3.1. Встроенные функции для сглаживания

Рис. 15.20. Сглаживание при помощи функции ksmooth


Содержание раздела