В приложении Curve Fitting можно использовать Custom Equation
подгонка, чтобы определить ваши собственные линейные или нелинейные уравнения. Пользовательская подгонка уравнения использует нелинейный метод наименьших квадратов подходящая процедура.
Можно определить пользовательское линейное уравнение в Custom Equation
, но нелинейный подбор кривой менее эффективен и обычно медленнее, чем подбор кривой линейного метода наименьших квадратов. Если вам нужен линейный метод наименьших квадратов, соответствующий пользовательским уравнениям, выберите Linear Fitting
вместо этого. Линейные модели являются линейными комбинациями (возможно, нелинейный) условия. Они заданы уравнениями, которые линейны в параметрах.
Совет
Если вам нужен линейный метод наименьших квадратов, соответствующий пользовательским уравнениям, выберите Linear Fitting
. Если вы не знаете, может ли ваше уравнение быть описано в виде набора линейных функций, то выберите Custom Equation
вместо этого. Смотрите Выбор Пользовательской Подгонки уравнения В интерактивном режиме.
В приложении Curve Fitting выберите некоторые данные о кривой в списках Y data и X data. Можно только видеть Linear Fitting
в списке типов модели после того, как вы выбираете некоторые данные о кривой, потому что Linear Fitting
для кривых, не поверхностей.
Приложение Curve Fitting создает аппроксимацию полиномом по умолчанию.
Измените тип модели от Polynomial
к Linear Fitting
в списке типов модели.
Уравнение в качестве примера появляется, когда вы выбираете Linear Fitting
из списка.
Можно изменить x
и y
к любым допустимым именам переменной.
Более низкие выводы информации на экран уравнение в качестве примера. Нажмите Edit, чтобы изменить условия в качестве примера в диалоговом окне Edit Custom Linear Terms и определить ваше собственное уравнение.
Для примера сочтите целесообразным Пользовательские Линейные Полиномы лежандра в Приложении Curve Fitting.
Чтобы использовать линейный алгоритм подбора, задайте массив ячеек условий модели с должности входа к fit
или fittype
функции. Не включайте коэффициенты в выражения для условий. Если существует постоянный термин, используйте '1' в качестве соответствующего выражения в массиве ячеек.
Задавать линейную модель следующей формы:
coeff1 * term1 + coeff2 * term2 + coeff3 * term3 + ...
term1
, term2
, и т.д. используйте массив ячеек, где каждый термин, без коэффициентов, задан в массиве ячеек строк, можно следующим образом:LinearModelTerms = {'term1', 'term2', 'term3', ... }
Идентифицируйте, что линейная модель называет вас, должен ввести к fittype
. Например, модель
a*log(x) + b*x + c
a
B
, и c
. Это имеет три условия log(x)
X
, и 1
(потому что c=c*1
). Чтобы задать эту модель, вы используете этот массив ячеек условий: LinearModelTerms = {'log(x)','x','1'}
.Используйте массив ячеек линейных условий модели с должности входа к fittype
функция:
linearfittype = fittype({'log(x)','x','1'})
linearfittype = Linear model: linearfittype(a,b,c,x) = a*log(x) + b*x + c
Загрузите некоторые данные и используйте fittype
как вход к fit
функция.
load census
f = fit(cdate,pop,linearfittype)
f = Linear model: f(x) = a*log(x) + b*x + c Coefficients (with 95% confidence bounds): a = -4.663e+04 (-4.973e+04, -4.352e+04) b = 25.9 (24.26, 27.55) c = 3.029e+05 (2.826e+05, 3.232e+05)
fit
функция:f = fit(x,z,{'log(x)','x','1'})
Постройте подгонку и данные.
plot(f,cdate,pop)
Для примера сочтите целесообразным Пользовательские Линейные Полиномы лежандра в Командной строке.
В этом примере показано, как соответствовать данным с помощью нескольких пользовательских линейных уравнений. Данные сгенерированы и основаны на ядерной реакции 12C (e, e 'α) 8Be. Уравнения используют суммы условий Полинома лежандра.
Рассмотрите эксперимент, в котором 124 электрона MeV рассеиваются от 12C ядра. В последующей реакции альфа-частицы испускаются и производят остаточные ядра 8Be. Путем анализа количества альфа-частиц испустил в зависимости от угла, можно вывести определенную информацию относительно ядерной динамики 12C. Кинематику реакции показывают затем.
Данные собраны путем размещения твердотельных детекторов в значениях Θα в пределах от 10o к 240o в 10o шаг.
Иногда полезно описать переменную, описанную в зависимости от угла в терминах Полиномов лежандра
где Pn (x) является Полином лежандра степени n, x - то, потому что (Θα), и an коэффициенты подгонки. Для получения информации о генерации Полиномов лежандра смотрите legendre
функция.
Для данных альфа-эмиссии можно непосредственно сопоставить коэффициенты с ядерной динамикой путем вызова теоретической модели. Кроме того, теоретическая модель вводит ограничения за бесконечную сумму, показанную выше. В частности, путем рассмотрения углового момента реакции Полином лежандра четвертой степени с помощью только даже называет, должен описать данные эффективно.
Можно сгенерировать Полиномы лежандра с формулой Родрига:
Полиномы лежандра до четвертой степени
n | Pn(x) |
---|---|
0 | 1 |
1 | x |
2 | (1/2) (3x2 – 1) |
3 | (1/2) (5x3 – 3x) |
4 | (1/8) (35x4 – 30x2 + 3) |
В этом примере показано, как соответствовать, данные с помощью Полинома лежандра четвертой степени с только даже называют:
Загрузите 12C данные альфа-эмиссии путем ввода
load carbon12alpha
Рабочая область теперь содержит две новых переменные:
angle
вектор из углов (в радианах) в пределах от 10o к 240o в 10o шаг.
counts
вектор из необработанных количеств альфа-частицы, которые соответствуют углам эмиссии в angle
.
Откройте приложение Curve Fitting путем ввода:
cftool
В приложении Curve Fitting выберите angle
и counts
для X data и Y data, чтобы создать аппроксимацию полиномом по умолчанию к этим двум переменным.
Измените подходящий тип от Polynomial
к Linear Fitting
создать пользовательскую линейную подгонку по умолчанию.
Вы используете Linear Fitting
вместо Custom Equation
соответствуйте типу, потому что Полиномы лежандра зависят только от переменного предиктора и констант. Уравнением, которое вы зададите для модели, является y 1 (x) (то есть, уравнение, данное в начале этой процедуры). Поскольку angle
дан в радианах, аргумент условий Лежандра дан потому что (Θα).
Нажмите Edit, чтобы изменить условия уравнения в диалоговом окне Edit Custom Linear Terms.
Поменяйте имена Coefficients на a2
, a4
, и a0
.
Измените Terms для a2
к
(1/2)*(3*cos(x)^2-1)
Обновления приложения Curve Fitting подгонка, когда вы редактируете условия.
Измените Terms для a4
к
(1/8)*(35*cos(x)^4-30*cos(x)^2+3)
Подгонка появляется в приложении Curve Fitting.
Переименуйте Fit name в Leg4Even
.
Отобразите остаточные значения путем выбора View> Residuals Plot.
Подгонка, кажется, следует за трендом данных хорошо, в то время как остаточные значения, кажется, случайным образом распределяются и не предоставляют систематического поведения.
Исследуйте числовые результаты подгонки в панели Results. Посмотрите на каждое содействующее значение и его доверительные границы в круглых скобках. 95% доверительных границ указывают, что коэффициенты, сопоставленные с a 0 (x) и a 4 (x), известны справедливо точно, но что a 2 (x) коэффициент имеет относительно большую неопределенность.
Выберите Fit> Duplicate Leg4Even, чтобы сделать копию вашей предыдущей подгонки Полинома лежандра, чтобы изменить.
Дублированная подгонка появляется в новой вкладке.
Чтобы подтвердить теоретический аргумент, что данные альфа-эмиссии лучше всего описаны Полиномом лежандра четвертой степени с только даже условиями, затем соответствуйте данным, использующим оба четных и нечетных термина:
Переименуйте новую подгонку к Leg4EvenOdd
.
Нажмите Edit, чтобы изменить условия уравнения. Диалоговое окно Edit Custom Linear Terms открывается.
Отредактируйте условия можно следующим образом, чтобы подбирать модель, данную y 2 (x):
Щелкните + кнопка, чтобы добавить термин дважды, добавить нечетные условия Лежандра.
Поменяйте новые содействующие имена на a1
и a3
.
Измените Terms для a1
к
cos(x)
Измените Terms для a3
к
pro(1/2)*(5*cos(x)^3-3*cos(x))
Наблюдайте новую подгонку, построенную в приложении Curve Fitting, и исследуйте числовые результаты в панели Results.
Обратите внимание на то, что нечетные коэффициенты Лежандра (a1
и a3
) вероятные кандидаты на удаление, чтобы упростить подгонку, потому что их значения малы, и их доверительные границы содержат нуль. Эти результаты показывают, что нечетные условия Лежандра значительно не способствуют подгонке, и ровные условия Лежандра чрезвычайно неизменны от предыдущей подгонки. Это подтверждает что начальный выбор модели в Leg4Even
подгонка является лучшей.
Чтобы сравнить подгонки рядом друг с другом, выберите мозаику Left/Right. Можно отобразить только графики путем сокрытия подходящих настроек и панелей результатов с помощью приложения Curve Fitting меню View.
Подбирайте ту же модель в командной строке, которую вы создали в приложении Curve Fitting.
Чтобы использовать линейный алгоритм подбора, задайте массив ячеек условий модели с должности входа к fittype
функция. Используйте тот же Terms, который вы ввели в приложение Curve Fitting для Leg4Even
подгонка, и не задает коэффициентов.
linearft = fittype({'(1/2)*(3*cos(x)^2-1)', ... '(1/8)*(35*cos(x)^4-30*cos(x)^2+3)','1'})
linearft = Linear model: linearft(a,b,c,x) = a*((1/2)*(3*cos(x)^2-1))... + b*((1/8)*(35*cos(x)^4-30*cos(x)^2+3)) + c
Загрузите angle
и counts
переменные в рабочей области.
load carbon12alpha
Используйте fittype
как вход к fit
функция, и задает angle
и counts
переменные в рабочей области.
f = fit(angle, counts, linearft)
f = Linear model: f(x) = a*((1/2)*(3*cos(x)^2-1))... + b*((1/8)*(35*cos(x)^4-30*cos(x)^2+3)) + c Coefficients (with 95% confidence bounds): a = 23.86 (4.436, 43.29) b = 201.9 (180.2, 223.6) c = 102.9 (93.21, 112.5)
Постройте подгонку и данные.
plot(f, angle, counts)
Для получения дополнительной информации о линейных условиях модели смотрите fittype
функция.