Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab 5 / Лекция 5 - Аппроксимация

.pdf
Скачиваний:
13
Добавлен:
19.04.2021
Размер:
2.81 Mб
Скачать

Линейная регрессия

Частный случай степенного многочлена:

f (x,a0 ,a1...am ) = a0 + a1 x

Для нахождения коэффициентов так же используется функция

а=polyfit(x,y,n)

при условии, что n=1

Весна 2021

Пакет Matlab. Лекция 5

31

Восстановление полинома по коэффициентам

Для вычисления значений полинома f(x,а01…аn) в произвольной точке необходимо использовать функцию

f=polyval (а,x)

Которой в качестве аргументов отдаются:

а – вектор коэффициентов, полученных с помощью polyfit

х – точка, в которой необходимо рассчитать значение функции

Весна 2021

Пакет Matlab. Лекция 5

32

Коэффициент корреляции

Для вычисления коэффициента корреляции Пирсона между векторами x и y используется функция :

R = corrcoef(x,y)

Если R≈1 – вектора линейно зависимы, т.е. y ≈a∙x+b, a>0 Если R≈-1 – вектора линейно зависимы, y ≈a∙x+b, a<0 Если R≈0 – вектора линейно независимы, т.е. взаимосвязь между x и y – нелинейная

Весна 2021

Пакет Matlab. Лекция 5

33

Функция для аппроксимация степенным многочленом

Проверка существования файла, выход, если его нет

Чтение из файла при помощи своей функции, Получение нужных данных в соответствии с вариантом

Аппроксимация полиномом 5 и 1 степени

Вычисление значений аппрокс. полиномов в заданных точках t

Построение графиков исх. данных и аппрокс. полиномов

Весна 2021

Пакет Matlab. Лекция 5

34

Результат работы функции аппроксимация степенным многочленом

fn=‘путь к файлу\Experiment_data_2.txt' N=1;

my_polyfit (fn,N)

Весна 2021

Пакет Matlab. Лекция 5

35

Аппроксимация обобщенным многочленом

f (x,a0 ,a1...am ) = a0 0 (x)+ a1 1 (x)+... + am m (x)

Аппроксимация функцией, представляющей линейную комбинацию базисных функций φi(x), каждая из которых может быть нелинейна относительно х.

Вид базисных функций и их количество подбираются для каждого набора исходных данных индивидуально!!!!

Весна 2021

Пакет Matlab. Лекция 5

36

Задание обобщенного многочлена

Для задания аппроксимационной зависимости используется функция

my_model=fittype (libMod) my_model=fittype (Eq, Name, Val)

my_model – имя модели, которое используется в дальнейшем

libMod – имя из стандартной библиотеки моделей Eq – функция, задающая аппроксимацию

Name, Val – опции, заданные в виде пары Имя опции, ее значение

Весна 2021

Пакет Matlab. Лекция 5

37

Стандартная библиотека

(libMod)

Имя модели библиотеки

Описание

 

 

'poly1'

Линейная полиномиальная кривая

 

 

'poly11'

Линейная полиномиальная поверхность

 

 

'poly2'

Квадратичная полиномиальная кривая

 

 

'linearinterp'

Кусочная линейная интерполяция

 

 

'cubicinterp'

Кусочная кубичная интерполяция

 

 

'smoothingspline'

Сглаживание сплайна (кривая)

 

 

'lowess'

Локальная линейная регрессия

 

(поверхность)

 

 

Весна 2021

Пакет Matlab. Лекция 5

38

Функция, задающая аппроксимацию

Примеры даны для уравнения вида: A+B*sin(x)+C*x

Модель в виде вектора символов, что позволяет использовать .m файлы:

my_model=fittype('A+B*sin(x)+C*x')

Модель в виде массива ячеек из символьных векторов my_model=fittype({'1','sin(x)','x’})

Модель в виде анонимной функции

my_model=fittype(@(A,B,C,x) A+B*sin(x)+C*x)

Примечание: уравнение записываем только через х

Весна 2021

Пакет Matlab. Лекция 5

39

Аргументы в виде пар

Имя, Значение

Имя

Значение

 

 

Смысл

 

 

 

 

 

coefficients

Вектор

 

Задает, что из введенного в уравнении

 

символов

или

является коэффициентами

 

 

массив

ячеек

fittype('A+B*sin(t)+C*t', 'coefficients',{'A', ‘B',

 

символов

 

‘C' })

 

 

 

 

 

 

 

 

 

 

dependent

Вектор

 

Если

хотите

использовать

другую

 

символов.

По

переменную для зависимого аргумента, то

 

умолчанию «у»

пишите его как значение для данного Name

 

 

 

 

 

 

 

independent

Вектор

 

Если

хотите

использовать

другую

 

символов.

По

переменную для независимого аргумента, то

 

умолчанию «х»

пишите его как значение для данного Name

 

 

 

fittype('A+B*sin(t)+C*t','independent','t')

 

 

 

 

 

 

options

Значение

опций

Подробнее см. fitoptions

 

 

для

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

Весна 2021

Пакет Matlab. Лекция 5

40

Соседние файлы в папке lab 5