Top menu

Урок 16. Анализ данных в Mathcad

В этом уроке мы рассмотрим, как можно найти зависимость между данными, полученными из эксперимента.

Аппроксимация

В таблицу занесены данные эксперимента:

mathcad_16_01

Построив график, мы увидим разброс данных:

mathcad_16_02

Мы хотим построить гладкую линию через эти точки. Нахождение функции, которая наилучшим образом соответствует полученным экспериментальным данным, называется аппроксимацией. В одном из простых методов поиска аппроксимирующей функции предполагается, что данные зависят линейно:

mathcad_16_03

Здесь a – угловой коэффициент прямой,b – точа пересечения прямой с осью y. Простейший путь определить эти константы – это провести линию на графике на глаз.

В Mathcad это можно сделать вручную, задав значения констант. Здесь они заданы с использованием глобального определения. Любое изменение этих констант тут же отражается на графике:

mathcad_16_04

Попробуйте изменить a и b, чтобы найти лучшее соответствие. Сначала посмотрите, что произойдет при изменении b, а затем – при изменении a:

mathcad_16_05

mathcad_16_06

Mathcad содержит в себе большой набор функций для аппроксимации и сглаживания. Самой простой является функция line. Для наших данных:

mathcad_16_07

Эти коэффициенты находятся по методу наименьших квадратов.

Теперь, когда соотношение найдено, Вы можете использовать его для оценки значения Y для любого значения X:

mathcad_16_08

Второе значение экстраполировано, т.е. оно найдено для значения X, которое не входит в интервал экспериментально полученных данных.

Интерполяция

Регрессионный анализ используют при большом количестве данных, полученных экспериментально с некоторым разбросом. Если данных немного и Вы знаете, что они точны, можно использовать функции интерполяции.

Мы будем использовать пять точек данных из таблицы:

mathcad_16_09

Предположим, что нам нужно значение Y при X=3.4. Мы можем найти это значение, используя линейную интерполяцию:

mathcad_16_10

Можно посмотреть, что делает функция linterp, построив график:

mathcad_16_11

Linterp проводит прямые линии между точками:

mathcad_16_12

Более продвинутый метод интерполяции использует линейные сплайны. Эта процедура выполняется в два шага. Сначала вычисляется вектор сплайна, затем он используется для интерполяции:

mathcad_16_13

Таким образом, мы получили гладкую линию, проходящую через точки, полученные экспериментально. Такой метод чувствителен к «промахам» — данным, полученными неверно вследствие ошибок проведения эксперимента. Не используйте этот метод при большом числе данных.

Название сплайна – линейный – может сбить с толку: сам сплайн не является прямой. Функция линейна только на концах заданного интервала (вторая производная в конечных точках равна нулю).

Резюме

Мы рассмотрели два способа анализа экспериментальных данных:

  • Аппроксимация (регрессионный анализ).
  • Интерполяция.

 

  1. Чтобы найти прямую, наилучшим образом проходящую через набор точек, необходимо иметь два вектора одинаковой длины: первый содержит независимую переменную x, второй – зависимую переменную y.
  2. Самый простой метод поиска соответствующей прямой – построить ее на глаз на графике.
  3. Один из методов автоматического поиска – функция line(X,Y), использующая метод наименьших квадратов. Ее результатом являются коэффициенты a и b прямой.
  4. Мы рассмотрели два метода интерполяции Mathcad:
  • линейная интерполяция linterp(X,Y)
  • нелинейная интерполяция с помощью vs=lspline(X,Y); interp(vs,X,Y,x).