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