В этом разделе описывается, как использовать функции 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 объекты.
| Метод типа подгонки | Описание |
|---|---|
Получите входные параметры | |
Получите категорию подгонки | |
Получите имена коэффициентов | |
Получите имя зависимой переменной | |
Оцените модель в заданных предикторах | |
Конструкция | |
Получите строку формулы | |
Получите независимое имя переменной | |
Определите, является ли модель линейной | |
Получите количество входных параметров | |
Получите количество коэффициентов | |
Получите зависимые от проблемы имена параметров | |
Установите опции модели подгонки | |
Получите имя модели |
Методы, перечисленные в следующей таблице, доступны исключительно для cfit объекты.
| Метод подгонки кривых | Описание |
|---|---|
Конструкция | |
Получите значения коэффициентов | |
Получите доверительные интервалы для подобранных коэффициентов | |
Дифференцируйте подгонку | |
Интегрирование подгонки | |
Построение подгонки | |
Получите интервалы предсказания | |
Получите зависящие от задачи значения параметров |
Полный список методов для объекта аппроксимирования кривыми может быть получен с помощью 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.
Один из способов быстро собрать код для поверхностных подгонок и графиков в полезные программы - сгенерировать файл из сеанса в приложении Аппроксимирование Кривыми. Таким образом, можно преобразовать интерактивный анализ одного набора данных в переиспользуемую функцию для анализа командной строки или для пакетной обработки нескольких наборов данных. Можно использовать сгенерированный файл без изменений или отредактировать и настроить код по мере необходимости. См. «Генерация кода и экспорт подгонок в рабочую область».