MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

Основы работы в Curve Fitting Toolbox \ Curve Fitting Toolbox

В оглавление книги \ К предыдущему разделу \ К следующему разделу

Основы работы в Curve Fitting Toolbox

1.3.3. Приближение стандартными параметрическими и моделями. Работа с несколькими приближениями и несколькими наборами данных

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

Для перехода к диалоговому окну, предназначенному для выбора модели и подбора параметров, следует нажать кнопку Fitting в основном окне приложения cftool. Появляется диалоговое окно Fitting, в котором следует нажать кнопку New fit, после чего все элементы управления данного окна становятся доступными и оно приобретает вид, приведенный ниже на рисунке.

Сначала лучше всего задать имя приближения, связанное с ним по смыслу, вместо предлагаемого по умолчанию имени fit1. Сперва мы будем пользоваться параметрическими моделями, в которой функции, использующиеся для приближения, являются синусом или суммой синусов, поэтому в строке ввода Fit Name диалогового окна Fitting введем имя SinModel. После этого в раскрывающемся списке Type of fit выберем Sum of Sin Functions (все стандартные параметрические модели Curve Fitting Toolbox рассмотрены в разделе Стандартные параметрические и непараметрические модели). Cписок, расположенный ниже, сменил название, теперь он называется Sum of Sin Functions и содержит восемь функций, каждая из которых является линейной комбинацией синусов, причем параметры входят как линейно (a1, a2, ..., a8), так и нелинейно (b1, b2, ..., b8 и c1, c2, ..., c8):

a1sin(b1x + c1),

a1sin(b1x + c1) + a2sin(b2x + c2),

a1sin(b1x + c1) + a2sin(b2x + c2) + ... + a8sin(b8x + c8),

Выберем в списке первую модель a1sin(b1x + c1) и нажмем кнопку Apply (если установлен флаг Immediate Apply, то подбор параметров начинается сразу же после выбора вида функции без нажатия на кнопку Apply). После вычисления коэффициентов приближения в окно Results выводится следующая информация

  1. Информация о модели
    General model Sin1:
           f(x) =  a1*sin(b1*x+c1)
    
  2. Найденные значения коэффициентов вместе с доверительными интервалами, соответствующими уровню вероятности 95%
    Coefficients (with 95% confidence bounds):
           a1 =       7.019  (6.966, 7.072)
           b1 =           1  (0.995, 1.006)
           c1 =       6.275  (6.261, 6.289)
    
  3. Вычисленные критерии пригодности приближения
    Goodness of fit:
      SSE: 0.1224
      R-square: 0.9998
      Adjusted R-square: 0.9997
      RMSE: 0.08245
    

    На оси основного окна приложения cftool вывелся график приближения при найденном значении параметров, а в таблицу Table of Fits выводится имя приближения SinModel, имя набора данных SinWithErr, тип параметрической модели Sum of Sin Function и найденные значения критериев пригодности приближения.

    Про различные критерии пригодности приближения, вычисляемые в Curve Fitting Toolbox, говорится в разделе Критерии пригодности приближения. Сейчас мы рассмотрим, как задавать различные начальные значения параметров и организовать работу с несколькими приближениями.

    Найденные значения параметров модели a1sin(b1x + c1) таковы

    a1 = 7.019, b1 = 1, c1 = 6.275

    То, что найденное значение c1 не равно нулю (примерно), не испортило приближения (хотя исходные данные были 7sinx + шум), поскольку c1 = 6.275 ~ 2П, т.е. периоду функции синус. Создадим теперь новое приближение и перед началом процесса подбора параметров установим начальное приближение 0 для параметра c1. Для создания нового приближения следует нажать кнопку New Fit в диалоговом окне Fitting и ввести имя SinModel0 нового приближения в строку ввода Fit Name. После этого необходимо снова выбрать в раскрывающемся списке Type of fit строку Sum of Sin Functions и задать вид функции a1sin(b1x + c1) в расположенном ниже списке Sum of Sin Functions.

    Теперь перед началом подбора параметров установим нулевое начальное приближение для параметра . Для этого следует нажать кнопку Fit Options и в появившемся диалоговом окне Fit Options в столбце StartPoint таблицы внизу окна установить для c1 начальное приближение, равное нулю, для чего надо щелкнуть по соответствующей ячейке и ввести 0. Все остальные параметры оставим такими, как они заданы по умолчанию. После чего окно Fit Options можно закрыть (назначение остальных элементов управления, количество которых зависит от выбранной модели, объясняется в разделе Опции, управляющие процессом подбора параметров).

    Установив нулевое начальное приближение для параметра c1, снова проделаем подбор параметров, нажав кнопку Apply в диалоговом окне Fitting. По завершении процедуры подбора параметров в окно Results опять выводятся найденные значения коэффициентов модели (теперь значение параметра c1 близко к нулевому) вместе с доверительными интервалами, а так же информация о модели и вычисленные критерии пригодности полученного приближения. Оси основного окна приложения cftool теперь содержат графики исходных данных и двух приближений (графики приближений совпадают). При выборе в таблице Table of Fits окна Fitting одного из приближений в области Results автоматически отображается вся информация о нем. Для настройки вида таблицы служит кнопка Table Options (см. раздел Критерии пригодности приближения).

    Для удаления приближения достаточно выбрать его в таблице Table of Fits и нажать кнопку Delete. Удалим, например приближение SinModel. Одновременно удаляется его график с осей основного окна приложения cftool.

    Построим еще приближение наших данных полиномом третьей степени. Для этого снова нажмем кнопку New Fit и введем в строку ввода Fit Name имя Poly3. Убедимся, что в раскрывающемся списке Type of fit выбрано полиномиальное приближение (Polynomial) и в списке Polynomial выберем cubic polynomial, после чего нажмем кнопку Apply. Снова в окно Results выводится информация о модели, в данном случае модель линейная (Linear model), поскольку искомые параметры линейно входят в параметрическую полиномиальную модель (полиномиальная регрессия)

    Linear model Poly3:
           f(x) = p1*x^3 + p2*x^2 + p3*x + p4
    

    выводятся так же найденные значения коэффициентов полинома вместе с доверительными интервалами для уровня вероятности 95%

    Coefficients (with 95% confidence bounds):
           p1 =      0.6341  (0.5438, 0.7243)
           p2 =       -6.02  (-6.707, -5.333)
           p3 =       13.02  (11.56, 14.48)
           p4 =      -1.134  (-1.955, -0.3128)
    

    и значения критериев пригодности приближения

    Goodness of fit:
      SSE: 4.733
      R-square: 0.991
      Adjusted R-square: 0.9894
      RMSE: 0.5276
    

    В таблице Table of Fits добавилась информация о полиномиальном приближении: его имя Poly3, имя набора данных SinWithErr, тип параметрической модели Polynomial и найденные значения критериев пригодности приближения. На осях основного окна приложения cftool теперь отображаются: график исходных данных маркерами, приближение синусом и полиномом:

    Продолжим работу с приложением cftool для нового набора данных, для чего определим вектора, содержащие данные, в рабочей среде MATLAB (зашумленные данные, подчиняющиеся линейной зависимости):

    >> XData1=-3:0.02:3;
    >> YData1=0.5*XData1+0.8+0.3*randn(size(XData1));
    

    Импортируем данные в приложение cftool выбирая переменные XData1 и YData1 рабочей среды MATLAB в окне Data, как было описано в разделе Окно приложения cftool. Импорт данных в приложение cftool. Дадим имя LinWithErr набору данных и перейдем к окну Fitting. Для создания нового приближения нажмем кнопку New fit, затем введем имя приближения LinModel и выберем в раскрывающемся списке Data set наше множество данных LinWithErr. Осталось задать полиномиальную модель в раскрывающемся списке Type of fit, выбрать полином первой степени (linear polynomial) в списке Polynomial и нажать кнопку Apply.

    Тип модели, найденные значения коэффициентов, критерии пригодности приближения выводятся в окно Results, в таблице Table of fits появилось новое приближение LinModel для нового набора данных LinWithErr с соответствующей информацией. Как и раньше, обновились оси основного окна приложения cftool, теперь они содержат два набора данных и три приближения, что очевидно, не очень наглядно:

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

    В оглавление книги \ К предыдущему разделу \ К следующему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика