Изогнитесь и появитесь, соответствуя объектам и методам

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

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

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

Объекты Curve Fitting

В программировании 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 и 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;

Методы Curve Fitting

Методы аппроксимирования кривыми позволяют вам создавать, получать доступ, и изменять объекты аппроксимирования кривыми. Они также позволяют вам через методы как 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. Эти дополнительные методы являются обычно низкоуровневыми операциями, используемыми приложением Curve Fitting, и не представляющие общий интерес при записи приложений аппроксимирования кривыми.

Нет никаких глобальных методов доступа, сопоставимых с 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 перечисленный в Методах Curve Fitting.

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

Один способ быстро собрать код для поверхностных подгонок и графики в полезные программы состоит в том, чтобы сгенерировать файл от сеанса в приложении Curve Fitting. Таким образом можно преобразовать интерактивный анализ одного набора данных в допускающую повторное использование функцию для анализа командной строки или для пакетной обработки данных нескольких наборов данных. Можно использовать сгенерированный файл без модификации, или отредактировать и настроить код по мере необходимости. Смотрите Генерируют Подгонки Кода и Экспорта к Рабочей области.