Приближение данных, регрессия в ToolBox Optimization
Автор работы: Пользователь скрыл имя, 05 Ноября 2013 в 17:50, контрольная работа
Описание работы
Перед началом процесса приближения возможно произвести ряд предварительных действий.
Во-первых можно указать:
различные веса для данных (см. раздел Опция для задания весов) и использовать таким образом взвешенный метод наименьших квадратов для подбора параметров;
часть исключаемых данных при подборе параметров (см. раздел Опция для исключения части данных);
нужно или нет масштабировать и центрировать исходные данные перед процессом подбора параметров модели для обеспечения более устойчивых результатов (см. раздел Опция для масштабирования и центрирования данных).
Файлы: 1 файл
ИС.doc
— 179.50 Кб (Скачать файл)
Приближение данных без адаптивного
выбора весов (слева) и с адаптивным
выбором весов (справа)
Опции для нелинейных параметрических моделей
Если параметрическая модель содержит нелинейно входящие параметры, то их поиск приводит к необходимости решения нелинейной задачи оптимизации, возможно с ограничениями на искомые параметры. Поэтому набор опций, управляющих вычислительным алгоритмом поиска параметров, в нелинейном случае больше, чем в случае линейных параметрических моделей.
Так же, как и в случае линейных параметрических моделей можно использовать (см. раздел Опции для линейных параметрических моделей):
- опцию Robust для выбора адаптивного алгоритма нахождения параметров, устойчивого к выбросам в исходных данных
- опции Lower и Upper для задания нижних и верхних границ параметров модели.
Задание этих опций в случае линейных и нелинейных параметрических моделей производится аналогично.
Для начала процесса поиска параметров в нелинейном случае (т.е. для начала алгоритма нелинейной оптимизации функции ошибки) требуется начальная точка. Для ее задания служит опция StartPoint. Ее значением должен быть вектор, длина которого совпадает с числом подлежащих определению параметров. Причем, в векторе, задающем начальные значения параметров, они должны задаваться так, чтобы соответствовать упорядоченным по алфавиту коэффициентам параметрической модели, т.е. например, если нелинейная пользовательская параметрическая модель имеет вид:
то, например вектор [0.1 2 -3 4.8], являющийся значением свойства StartPoint, соответствует следующим начальным значениям параметров модели:
Для линейной модели, определенной пользователем, начальное приближение не требуется и ограничения на параметры по умолчанию не задаются.
Для нелинейной модели, определенной пользователем, начальное приближение каждого параметра по умолчанию выбирается из отрезка [0, 1], а ограничения на параметры по умолчанию не задаются.
В следующей таблице приведены стандартные модели Curve Fitting Toolbox и выбираемые по умолчанию начальные значения параметров и ограничения.
Начальные значения
параметров и ограничения для
стандартных параметрических | |||
Названия моделей |
Вид моделей |
Начальное приближение |
Ограничения на параметры |
Экспоненциальные модели: exp1, exp2 |
|
Вычисляется по начальным данным по эвристическому алгоритму |
Нет |
Отрезки ряда Фурье: fourier1, fourier2, ..., fourier8 |
|
Вычисляется по начальным данным по эвристическому алгоритму |
Нет |
Гауссовы модели: gauss1, gauss2, ..., gauss8 |
|
Вычисляется по начальным данным по эвристическому алгоритму |
ck > 0 |
Полиномиальные модели: poly1, poly2, ..., poly9 |
|
Не требуется |
Нет |
Степенные модели: power1, power2 |
|
Вычисляется по начальным данным по эвристическому алгоритму |
Нет |
Дробно-рациональные модели:
rat01, rat02, …, rat55 (первая цифра - степень числителя,
вторая - степень знаменателя) |
|
Случайное для каждого параметра из интервала [0,1] |
Нет |
Сумма синусов: sin1, sin2, … , sin8 |
|
Вычисляется по начальным данным по эвристическому алгоритму |
bk > 0 |
Модель Вейбула: weibull |
|
Случайное для каждого параметра из интервала [0,1] |
a > 0 |
Для минимизации целевой функции (среднеквадратичной ошибки приближения) возможно выбрать один из трех алгоритмов и указать соответствующее значение в качестве значения свойства Algorithm:
- Trust-Region (метод доверительных областей) - используемый по умолчанию алгоритм минимизации целевой функции. Если на искомые коэффициенты параметрической модели наложены ограничения, то использование этого алгоритма обязательно.
- Levenberg-Marquardt (метод Левенберга- Марквардта) - можно использовать в задачах без ограничений на коэффициенты.
- Gauss-Newton - классический метод Ньютона.
Данные алгоритмы минимизации реализованы в функциях Optimization Toolbox, которые и используются при минимизации целевой функции при подборе параметров в параметрических моделях, приближающих данные, в Curve Fitting Toolbox.
Для настроек алгоритмов минимизации служат следующие опции:
- TolFun - точность по функции (для завершения итерационного алгоритма нелинейной минимизации), по умолчанию 10e-6, при достижении этой точности алгоритм минимизации останавливается.
- TolX - точность по искомым параметрам (для завершения итерационного алгоритма нелинейной минимизации), по умолчанию 10e-6, при достижении этой точности алгоритм минимизации останавливается.
- DiffMinChange - минимальный шаг по каждой из искомых переменных (параметров модели) для вычисления приближенного вычисления частных производных (используемых в алгоритмах нелинейной минимизации) при помощи конечных разностей, по умолчанию 10e-8.
- DiffMaxChange - максимальный шаг по каждой из искомых переменных (параметров модели) для вычисления приближенного вычисления частных производных (используемых в алгоритмах нелинейной минимизации) при помощи конечных разностей, по умолчанию 0.1.
- MaxFunEvals - максимальное количество вычислений минимизируемой функции (для предотвращения зацикливания), по умолчанию минимизируемая функция вычисляется не более 600 раз, после чего алгоритм минимизации останавливается.
- MaxIter - максимальное число итераций алгоритма минимизации (для предотвращения зацикливания), по умолчанию делается не более 400 итераций, после чего алгоритм минимизации останавливается.
Практическая часть
Задание 1: Напишите файл-программу, которая должна: найти нули функции, экстремумы, построить линии уровня и график функции.
- Z= ln(x)+ ln(Сos(y)) – функция
- X=zero(z,0,0) – нахождение нулей функции
- XYext=ext(z) – нахождение экстремума
- Plot(z,x,y) – построение линий уровня
- Plot3d(Z,x,y) – построение графика функции
Задание 2: Решите приведенные ниже задачи.
Матрица (i=1,2,…m, k=1,2,…,n) состоит из целочисленных элементов. Получите вектор b, каждый элемент которого есть количество различных чисел в строках матрицы A для произвольных m и n.
A=rang(m*n)
X=kol(A)
B=[X] – составление вектора B
Задание 3: Решите приведенные ниже задачи.
В некотором тексте (например, Требование объявлять явно типы всех объектов приводит к избыточности в Фортран-программе, которая, однако, делает ее надежнее) найдите глаголы в неопределенной форме.
A=’Требование объявлять явно типы всех объектов приводит к избыточности в Фортран-программе, которая, однако, делает ее надежнее’
A-‘…ть’
Задание 4: Решите приведенные ниже задачи обработки файлов.
Файл содержит сведения об автолюбителях: ФИО, индекс и номер паспорта, адрес, номер водительского удостоверения, группа крови, телефон (дом., раб.), факс, e-mail http, марка автомобиля, год выпуска, мощность двигателя, номерной знак, цвет. Выведите сведения о владельцах "Мерседес Е 320" цвета морской волны. Какой цвет наиболее популярен?
Fopen myview (Сведения об автолюбителях)
if F = ‘Мерседес Е 320’
and F=’Морская волна’
MAS = fgetl ‘фио’ ;
end