Кривая и поверхностная аппроксимация объектов и методов

В этом разделе описывается, как использовать функции Curve Fitting Toolbox™ из командной строки или записать программы для приложений curve и surface fitting.

Приложение Аппроксимирование Кривыми позволяет удобное, интерактивное использование функций Curve Fitting Toolbox, без программирования. Можно, однако, получить прямой доступ к функциям Curve Fitting Toolbox и написать программы, которые объединяют функции аппроксимирование кривыми с MATLAB® функций и функций из других тулбоксов. Это позволяет вам создать окружение аппроксимирования кривыми, которая точно соответствует вашим потребностям.

Модели и модели в приложении Аппроксимирования кривыми управляются внутренне как аппроксимирование кривыми объекты. Объектами манипулируют через различные функции, называемые методами. Можно создать объекты аппроксимирования кривыми и применить методы аппроксимирования кривыми вне приложения Аппроксимирование Кривыми.

Аппроксимирование кривыми объекты

В программировании MATLAB все переменные рабочей области являются объектами определенного класса. Знакомыми примерами классов MATLAB являются double, char, и function_handle. Можно также создать пользовательские классы MATLAB, используя объектно-ориентированное программирование.

Методы являются функциями, которые работают исключительно с объектами определенного класса. Типы данных объединяют объекты и методы так, чтобы методы работали исключительно с объектами собственного типа, а не с объектами других типов. Четко заданная инкапсуляция объектов и методов является целью объектно-ориентированного программирования.

Программное обеспечение Curve Fitting Toolbox предоставляет вам новые типы данных MATLAB для выполнения аппроксимирования кривыми:

  • fittype - Объекты позволяют вам инкапсулировать информацию, описывающую параметрическую модель для ваших данных. Методы позволяют вам получить доступ и изменить эту информацию.

  • cfit и sfit - Два подтипа fittype, для кривых и поверхностей. Объекты собирают информацию из конкретной подгонки путем присвоения значений коэффициентам, доверительным интервалам, статистике подгонки и т.д. Методы позволяют вам постпроцессировать подгонку через графическое изображение, экстраполяцию, интегрирование и т.д.

Потому что cfit является подтипом fittype, cfit наследует все fittype методы. Другими словами, можно применить fittype методы для обоих fittype и cfit объектов, но cfit методы используются исключительно с cfit объекты. Аналогично для sfit объекты.

Как пример, fittype метод islinear, который определяет, является ли модель линейной или нелинейной, будет применяться одинаково хорошо до или после подгонки; то есть к обоим fittype и cfit объекты. С другой стороны, cfit методы coeffvalues и confint, который, соответственно, возвращает коэффициенты подгонки и их доверительные интервалы, не имеет смысла, если применяется к общей fittype объект, который описывает параметрическую модель с неопределенными коэффициентами.

Объекты аппроксимирования кривыми имеют свойства, которые зависят от их типа, а также от особенностей модели или подгонки, которую они инкапсулируют. Для примера следующий код использует методы конструктора для двух типов аппроксимирования кривыми, чтобы создать fittype f объекта и a cfit c объекта:

f = fittype('a*x^2+b*exp(n*x)')
f =
     General model:
       f(a,b,n,x) = a*x^2+b*exp(n*x)
c = cfit(f,1,10.3,-1e2)
c =
     General model:
       c(x) = a*x^2+b*exp(n*x)
     Coefficients:
       a =           1
       b =        10.3
       n =        -100

Обратите внимание, что метод отображения для fittype объекты возвращают только базовую информацию, соединяя выходы из formula и indepnames.

cfit и fittype объекты оцениваются по значениям предиктора x использование feval. Можно вызвать feval косвенно используя следующий функциональный синтаксис:

y = cfun(x) % cfit objects;
y = ffun(coef1,coef2,...,x) % fittype objects;

Аппроксимирование кривыми методы

Методы аппроксимирования кривыми позволяют вам создавать, получать доступ и изменять объекты аппроксимирования кривыми. Они также позволяют вам, с помощью таких методов, как plot и integrate, для выполнения операций, которые равномерно обрабатывают всю информацию, инкапсулированную в объект аппроксимирования кривыми.

Методы, перечисленные в следующей таблице, доступны для всех fittype объекты, включая cfit объекты.

Метод типа подгонкиОписание

argnames

Получите входные параметры

category

Получите категорию подгонки

coeffnames

Получите имена коэффициентов

dependnames

Получите имя зависимой переменной

feval

Оцените модель в заданных предикторах

fittype

Конструкция fittype объект

formula

Получите строку формулы

indepnames

Получите независимое имя переменной

islinear

Определите, является ли модель линейной

numargs

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

numcoeffs

Получите количество коэффициентов

probnames

Получите зависимые от проблемы имена параметров

setoptions

Установите опции модели подгонки

type

Получите имя модели

Методы, перечисленные в следующей таблице, доступны исключительно для cfit объекты.

Метод подгонки кривыхОписание

cfit

Конструкция cfit объект

coeffvalues

Получите значения коэффициентов

confint

Получите доверительные интервалы для подобранных коэффициентов

differentiate

Дифференцируйте подгонку

integrate

Интегрирование подгонки

plot

Построение подгонки

predint

Получите интервалы предсказания

probvalues

Получите зависящие от задачи значения параметров

Полный список методов для объекта аппроксимирования кривыми может быть получен с помощью MATLAB methods команда. Для примера,

f = fittype('a*x^2+b*exp(n*x)');
methods(f)

Methods for class fittype:

argnames     dependnames  fittype     islinear     probnames
category     feval        formula     numargs      setoptions
coeffnames   fitoptions	indepnames   numcoeffs    type

Обратите внимание, что некоторые из методов, перечисленных methods не отображаются в таблицах выше и не имеют страниц с описанием в документации Curve Fitting Toolbox. Эти дополнительные методы обычно являются низкоуровневыми операциями, используемыми приложением Аппроксимирования кривыми, и не представляют общего интереса при записи аппроксимирования кривыми приложений.

Нет глобальных методов доступа, сопоставимых с getfield и setfield, доступно для fittype объекты. Доступ ограничен перечисленными выше методами. Это потому, что многие свойства fittype объекты получают из других свойств, к которым у вас есть доступ. Для примера,

f = fittype('a*cos( b*x-c )')
f =
     General model:
       f(a,b,c,x) = a*cos( b*x-c )

formula(f)
ans =
a*cos( b*x-c )

argnames(f)
ans = 
    'a'
    'b'
    'c'
    'x'

Вы создаете fittype f объекта путем задания формулы, таким образом, у вас есть доступ для записи к этому основному свойству объекта. У вас есть доступ для чтения к этому свойству через formula способ. Вы также имеете доступ к именам аргумента объекта через argnames способ. Вы, однако, не имеете прямого доступа на запись к именам аргумента, которые получают из формулы. Если необходимо задать имена аргумента, задайте формулу.

Поверхностный подбор кривой объектов и методов

Поверхностный подбор кривой объектов и методов

Объект подгонки поверхности (sfit) хранит результаты операции подгонки поверхности, облегчая построение и анализ подгонки в командной строке.

Как cfit объекты, sfit объекты являются подклассом fittype объекты, поэтому они наследуют все те же методы fittype перечислены в Аппроксимирование кривыми Methods.

sfit объекты также обеспечивают методы исключительно для sfit объекты. См. sfit.

Один из способов быстро собрать код для поверхностных подгонок и графиков в полезные программы - сгенерировать файл из сеанса в приложении Аппроксимирование Кривыми. Таким образом, можно преобразовать интерактивный анализ одного набора данных в переиспользуемую функцию для анализа командной строки или для пакетной обработки нескольких наборов данных. Можно использовать сгенерированный файл без изменений или отредактировать и настроить код по мере необходимости. См. «Генерация кода и экспорт подгонок в рабочую область».