Аппроксимирующие зависимости
|
№ |
Выравнивание данных (преобразование переменных) |
Эмпирическая формула |
|
1 |
|
|
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
|
6 |
|
|
Одну из шести предложенных формул преобразования следует выбирать одновременно с проверкой линейной зависимости к исходным данным. Условием выбора наилучшей эмпирической формулы является наименьшее уклонение исходных или преобразованных экспериментальных данных от прямой. Его можно определить по формуле:
. (8)
Для наилучшей
эмпирической формулы значение
будет наименьшим.
Регрессионный анализ. Пусть имеются два ряда чисел x = х0, х1, . . ., хn и y = y0, y1, . . ., yn, при этом предполагается, что ряд у каким-либо образом зависит от ряда х. Задача регрессионного анализа состоит в восстановлении математической зависимости (регрессии) у(х) по результатам измерений (xi, yi), i = 0, 1, . . ., n. Mathcad включает ряд функций для вычисления регрессии. Функции отличаются, прежде всего, типом кривой, которую они используют, чтобы аппроксимировать данные. На практике существует линейная и полиномиальная регрессии.
Линейную регрессию позволяют осуществить встроенные функции intercept (to intercept - отложить отрезок на линии) и slope (наклон) решают самую простую и распространенную задачу линейной регрессии экспериментальных данных:f(x) = slope(vx, vy) x + intercept(vx, vy) (рис.1). Оператор slope(vx, vy) - возвращает скаляр: наклон линии для данных из vx и vy. Оператор intercept(vx, vy) - возвращает скаляр: смещение по оси ординат линии регрессии для данных из vx и vy.
Пример 2. Для выполнения задания занести в таблицу экспериментальных значений хi, yi , представленные в задании 1. Определяем число экспериментальных точек.
![]()
Используем встроенные функции slope и intercept для определения коэффициентов линейной регрессии (аппроксимация данных прямой линией).
Функция slope определяет угловой коэффициент прямой, а функция intercept – точку пересечения графика с вертикальной осью.
![]()
Определяем
аппроксимирующую функцию: ![]()
Коэффициенты
линейной регрессии
и
.
Mathcad предлагает для этих же целей использовать функцию line.

Вычислим стандартное отклонение.
![]()
![]()

Рис.1. Линейная регрессия
Полиномиальную регрессию производит встроенная функция regress, когда нужно получить единственный полином произвольной степени, чтобы приблизить все данные. Не рекомендуется делать степень аппроксимирующего полинома выше 4 - 6, поскольку погрешности реализации регрессии сильно возрастают (рис.2). Оператор regress(vx, vy, n) - возвращает вектор vs, чтобы найти полином порядка n, который наилучшим образом приближает данные из vx и vy.
Пример 3. Для аппроксимации экспериментальных данных полиномом 4 степени необходимо также задать экспериментальные данные в MathCAD в виде вектора, для этого следует сначала задать число итераций, для которых находятся экспериментальные значения.
На начальном этапе задаются исходные данные: шаг итераций i:=0 .. 11, степень полинома n:=4 и задание вектора входных параметров vxi:=i/11.
Определение вектора выходных значений задается при помощи ввода значений вектора vyi, в таблицу.
Функция regress является вспомогательной, она подготавливает данные, необходимые для работы функции interp. Вектор vs содержит, в том числе, и коэффициенты полинома. Нахождение вектора vs, требуемый встроенной функции Mathcad interp, чтобы найти полином порядка n, который наилучшим образом приближает данные из вектора входных параметров vx и вектора выходных параметров vy: vs:=regress(vx,vy,n).
Задание функции интерполяции, которая возвращает интерполируемое значение у, соответствующее аргументу х:
z:=0,0.1 .. 1
re(z):= interp(vs,vx,vy,z).

Рис.2. Полиномиальная регрессия
Далее приведен пример регрессии полиномами различных степеней, осуществляемых в MathCAD при помощи встроенного оператора loess . Рисунок 3 иллюстрирует использование функции loess, выполняя локальное приближение. Вместо одного полинома функция loess создает различные полиномы второго порядка в зависимости от расположения на кривой (рис. 3). Оператор loess(vx, vy, span) возвращает вектор vs, чтобы найти набор полиномов второго порядка, которые наилучшим образом приближают определенные окрестности выборочных точек, определенных в векторах vx и vy. Аргумент span > 0 определяет, насколько большие окрестности функции loess будут использованы при выполнении локального приближения.
span1:=0.5 – присвоение степени полинома
span2:=2.5
vs1:=loess(vx,vy,span1) - возвращает вектор vs, требуемый interp, чтобы найти набор полиномов второго порядка, которые наилучшим образом приближают определенные окрестности выборочных точек, определенных в векторах vx и vy.
vs2:=loess(vx,vy,span2)
lo1(z):=interp(vs1,vx,vy,vxi) - возвращает интерполируемое значение у, соответствующее аргументу х в соответствии со степенью полинома 1.
lo2(z):=interp(vs2,vx,vy,vxi) - возвращает интерполируемое значение у, соответствующее аргументу х в соответствии со степенью полинома 2.

Рис. 3. Аппроксимация полиномами различных степеней
Сглаживание предполагает использование набора значений у (и возможно x) и возвращение нового набора значений у, который является более гладким, чем исходный набор. В отличие от регрессии и интерполяции, сглаживание приводит к новому набору значений у, а не к функции, которая может оценивать значения между заданными точками данных.
Сглаживание в Mathcad осуществляется при помощи оператора ksmooth(vx, vy, b), который возвращает n-мерный вектор, созданный сглаживанием при помощи Гауссова ядра данных из n-мерного вектора vy. Параметр b управляет окном сглаживания и должен быть в несколько раз больше величины интервала между точками х. При помощи оператора medsmooth (vy, m), который возвращает n-мерный вектор, созданный сглаживанием n-мерного вектора vy с помощью скользящей медианы, где m - ширина окна, по которому происходит сглаживание, причем m должно быть нечетным числом и m < n. А также при помощи оператора Supsmooth(vx, vy), который возвращает n-мерный вектор, созданный локальным использованием симметричной линейной процедуры сглаживания МНК.
Пример 4. Необходимо выполнить сглаживание экспериментальной функции, заданной таблицей значений xi и yi с помощью встроенных функций Mathcad: medsmooth, ksmooth и supsmooth.
m:=medsmooth(vy,3) - возвращает n-мерный вектор, созданный сглаживанием n-мерного вектора vy с помощью скользящей медианы.
k:=ksmooth(vx,vy,1) -возвращает n-мерный вектор, созданный сглаживанием при помощи гауссова ядра данных из n-мерного вектора vy.
s:=supsmooth(vx,vy) - возвращает n-мерный вектор, созданный локальным использованием симметричной линейной процедуры сглаживания МНК. Результаты вычислений в Mathcad представлены на (рис.4).

Рис.4. Графики исходной функции и результатов сглаживания
ЗАДАНИЯ ДЛЯ ВЫПОЛНЕНИЯ РАБОТЫ
Задание1. Экспериментальные данные содержатся в таблице 2, следует выполнить следующие операции:
- Нанести
экспериментальные точки
на координатную сетку
.
- Выбрать одну из
шести предложенных формул преобразования
к новым переменным
так, чтобы преобразованные экспериментальные
данные
наименее уклонялись от прямой.
- Методом наименьших
квадратов найти наилучшие значения
параметров
и
в уравнении прямой
.
- Найти явный вид
эмпирической формулы
и построить график эмпирической функции.
Таблица 2
Варианты задания
|
№ |
yi |
[a, b] |
|
1 |
2.86; 2.21; 2.96; 3.27; 3.58; 3.76; 3.93; 3.67; 3.90; 3.64; 4.09 |
[0, 1] |
|
2 |
1.14; 1.02; 1.64; 1.64; 1.96; 2.17; 2.64; 3.25; 3.47; 3.89; 3.36; |
[-1, 1] |
|
3 |
4.70; 4.64; 4.57; 4.45; 4.40; 4.34; 4.27; 4.37; 4.42; 4.50; 4.62 |
[2, 4] |
|
4 |
0.43; 0.99; 2.07; 2.54; 1.67; 1.29; 1.24; 0.66; 0.43; 0.35; 0.70 |
[2, 4] |
|
5 |
1.55; 1.97; 1.29; 0.94; 0.88; 0.09; 0.02; 0.84; 0.81; 0.09; 0.15 |
[1, 4] |
|
6 |
3.24; 1.72; 1.95; 2.77; 2.47; 0.97; 1.75; 1.55; 0.12; 0.70; 1.19 |
[0, 4] |
|
7 |
2.56; 1.92; 2.85; 2.94; 2.39; 2.16; 2.51; 2.10; 1.77; 2.28; 1.70 |
[-1, 2] |
|
8 |
1.77; 0.92; 2.21; 1.50; 3.21; 3.46; 3.70; 4.02; 4.36; 4.82; 4.03 |
[-1, 3] |
|
9 |
1.53; 0.45; 1.68; 0.12; 0.68; 2.36; 2.58; 2.53; 3.45; 2.70; 2.82 |
[4, 8] |
|
10 |
2.50; 3.90; 3.54; 4.63; 3.87; 5.25; 4.83; 3.24; 3.08; 3.00; 4.70 |
[0, 5] |
|
11 |
2.95; 3.38; 2.71; 2.37; 2.29; 2.75; 2.76; 2.74; 2.57; 2.40; 2.99 |
[1, 5] |
|
12 |
-0.23; -0.03; -0.98; -0.97; -0.43; -0.91; -0.27; -0.19; 0.88; 1.06; 0.72 |
[2, 4] |
|
13 |
2.36; 0.03; -0.38; -1.33; 0.25; -1.36; 0.95; 3.16; 4.03; 4.92; 4.20 |
[0, 2] |
|
14 |
3.82; 4.07; 3.53; 4.83; 5.53; 5.04; 5.09; 5.87; 5.53; 4.72; 4.73 |
[3, 4] |
|
15 |
2.35; 2.16; 2.39; 2.39; 2.18; 2.09; 2.44; 2.56; 3.35; 3.22; 2.65 |
[-3, 4] |
Задание 2. Для приведенных в таблице экспериментальных данных (xi, yi) определить параметры линейной регрессии с использованием встроенных функций Mathcad slope и intercept. Отобразить графически совокупность точек векторов xi и yi и результаты проведенной линейной регрессии.
Задание 3. Аппроксимировать данные из векторов xi и yi полиномом 4-ой степени при помощи функций regress и interp; наборами полиномов второго порядка с помощью функций loess и interp, (при span равном 0,5 и 2,5). Отобразить графически результаты аппроксимации.
Задание 4. Выполнить сглаживание экспериментальной функции, заданной таблицей значений xi и yi с помощью встроенных функций Mathcad: medsmooth, ksmooth и supsmooth. Результаты сглаживания отобразить графически.
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
-
Для чего используется аппроксимация функций?
-
В чем суть метода наименьших квадратов?
-
Что такое выравнивание экспериментальных данных?
-
Какой вид имеет формула для определения критерия метода наименьших квадратов?
-
Что такое регрессионный анализ?
-
Перечислите основные виды регрессии.
-
Что такое сглаживание?
ВРЕМЯ, ОТВЕДЕННОЕ НА ВЫПОЛНЕНИЕ РАБОТЫ
Подготовка к работе – 1,0 акад.час
Выполнение работы – 4,0 акад. часа
Оформление работы – 1,0 акад.час
ЛИТЕРАТУРА
-
Бахвалов Н.С. и др. Численные методы. – М.: Наука, 2008.
-
Волков Е.А. Численные методы. - М.: Наука, 2010.
СОДЕРЖАНИЕ
Введение 2
Основные понятия 3
Задания для выполнения работы 11
Вопросы для самоконтроля 13
Литература 13
МАТЕМАТИЧЕСКАЯ ОБРАБОТКА РЕЗУЛЬТАТОВ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ. МЕТОД НАИМЕНЬШИХ КВАДРАТОВ
Методические указания к выполнению лабораторной работы
по дисциплине «Численные методы»
для студентов направления 220400.62 «Управление в технических системах»
всех форм обучения












