Пользовательский линейный подбор кривой

О пользовательских линейных моделях

В приложении Curve Fitting можно использовать Custom Equation подгонка, чтобы определить ваши собственные линейные или нелинейные уравнения. Пользовательская подгонка уравнения использует нелинейный метод наименьших квадратов подходящая процедура.

Можно определить пользовательское линейное уравнение в Custom Equation, но нелинейный подбор кривой менее эффективен и обычно медленнее, чем подбор кривой линейного метода наименьших квадратов. Если вам нужен линейный метод наименьших квадратов, соответствующий пользовательским уравнениям, выберите Linear Fitting вместо этого. Линейные модели являются линейными комбинациями (возможно, нелинейный) условия. Они заданы уравнениями, которые линейны в параметрах.

Совет

Если вам нужен линейный метод наименьших квадратов, соответствующий пользовательским уравнениям, выберите Linear Fitting. Если вы не знаете, может ли ваше уравнение быть описано в виде набора линейных функций, то выберите Custom Equation вместо этого. Смотрите Выбор Пользовательской Подгонки уравнения В интерактивном режиме.

Выбор линейной подходящей подгонки на заказ в интерактивном режиме

  1. В приложении Curve Fitting выберите некоторые данные о кривой в списках Y data и X data. Можно только видеть Linear Fitting в списке типов модели после того, как вы выбираете некоторые данные о кривой, потому что Linear Fitting для кривых, не поверхностей.

    Приложение Curve Fitting создает аппроксимацию полиномом по умолчанию.

  2. Измените тип модели от Polynomial к Linear Fitting в списке типов модели.

    Уравнение в качестве примера появляется, когда вы выбираете Linear Fitting из списка.

  3. Можно изменить x и y к любым допустимым именам переменной.

  4. Более низкие выводы информации на экран уравнение в качестве примера. Нажмите Edit, чтобы изменить условия в качестве примера в диалоговом окне Edit Custom Linear Terms и определить ваше собственное уравнение.

Для примера сочтите целесообразным Пользовательские Линейные Полиномы лежандра в Приложении Curve Fitting.

Выбор линейного подбора кривой в командной строке

Чтобы использовать линейный алгоритм подбора, задайте массив ячеек условий модели с должности входа к fit или fittype функции. Не включайте коэффициенты в выражения для условий. Если существует постоянный термин, используйте '1' в качестве соответствующего выражения в массиве ячеек.

Задавать линейную модель следующей формы:

 coeff1 * term1 + coeff2 * term2 + coeff3 * term3 + ...
где никакой коэффициент не появляется ни в одном term1, term2, и т.д. используйте массив ячеек, где каждый термин, без коэффициентов, задан в массиве ячеек строк, можно следующим образом:
LinearModelTerms = {'term1', 'term2', 'term3', ... }

  1. Идентифицируйте, что линейная модель называет вас, должен ввести к fittype. Например, модель

    a*log(x) + b*x + c
    линейно в aB, и c. Это имеет три условия log(x)X, и 1 (потому что c=c*1). Чтобы задать эту модель, вы используете этот массив ячеек условий: LinearModelTerms = {'log(x)','x','1'}.

  2. Используйте массив ячеек линейных условий модели с должности входа к fittype функция:

    linearfittype = fittype({'log(x)','x','1'})
    linearfittype = 
    
         Linear model:
         linearfittype(a,b,c,x) = a*log(x) + b*x + c

  3. Загрузите некоторые данные и используйте 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'})

  4. Постройте подгонку и данные.

    plot(f,cdate,pop)

Для примера сочтите целесообразным Пользовательские Линейные Полиномы лежандра в Командной строке.

Соответствуйте пользовательским линейным полиномам лежандра

Приспособьте пользовательские линейные полиномы лежандра в приложении Curve Fitting

В этом примере показано, как соответствовать данным с помощью нескольких пользовательских линейных уравнений. Данные сгенерированы и основаны на ядерной реакции 12C (e, e 'α) 8Be. Уравнения используют суммы условий Полинома лежандра.

Рассмотрите эксперимент, в котором 124 электрона MeV рассеиваются от 12C ядра. В последующей реакции альфа-частицы испускаются и производят остаточные ядра 8Be. Путем анализа количества альфа-частиц испустил в зависимости от угла, можно вывести определенную информацию относительно ядерной динамики 12C. Кинематику реакции показывают затем.

Данные собраны путем размещения твердотельных детекторов в значениях Θα в пределах от 10o к 240o в 10o шаг.

Иногда полезно описать переменную, описанную в зависимости от угла в терминах Полиномов лежандра

y(x)=n=0anPn(x)

где Pn (x) является Полином лежандра степени n, x - то, потому что (Θα), и an коэффициенты подгонки. Для получения информации о генерации Полиномов лежандра смотрите legendre функция.

Для данных альфа-эмиссии можно непосредственно сопоставить коэффициенты с ядерной динамикой путем вызова теоретической модели. Кроме того, теоретическая модель вводит ограничения за бесконечную сумму, показанную выше. В частности, путем рассмотрения углового момента реакции Полином лежандра четвертой степени с помощью только даже называет, должен описать данные эффективно.

Можно сгенерировать Полиномы лежандра с формулой Родрига:

Pn(x)=12nn!(ddx)n(x21)n

Полиномы лежандра до четвертой степени

n

Pn(x)

0

1

1

x

2

(1/2) (3x2 – 1)

3

(1/2) (5x3 – 3x)

4

(1/8) (35x4 30x2 + 3)

В этом примере показано, как соответствовать, данные с помощью Полинома лежандра четвертой степени с только даже называют:

y1(x)=a0+a2(12)(3x21)+a4(18)(35x430x2+3)

  1. Загрузите 12C данные альфа-эмиссии путем ввода

    load carbon12alpha
    

    Рабочая область теперь содержит две новых переменные:

    • angle вектор из углов (в радианах) в пределах от 10o к 240o в 10o шаг.

    • counts вектор из необработанных количеств альфа-частицы, которые соответствуют углам эмиссии в angle.

  2. Откройте приложение Curve Fitting путем ввода:

    cftool

  3. В приложении Curve Fitting выберите angle и counts для X data и Y data, чтобы создать аппроксимацию полиномом по умолчанию к этим двум переменным.

  4. Измените подходящий тип от Polynomial к Linear Fitting создать пользовательскую линейную подгонку по умолчанию.

    Вы используете Linear Fitting вместо Custom Equation соответствуйте типу, потому что Полиномы лежандра зависят только от переменного предиктора и констант. Уравнением, которое вы зададите для модели, является y 1 (x) (то есть, уравнение, данное в начале этой процедуры). Поскольку angle дан в радианах, аргумент условий Лежандра дан потому что (Θα).

  5. Нажмите Edit, чтобы изменить условия уравнения в диалоговом окне Edit Custom Linear Terms.

    1. Поменяйте имена Coefficients на a2, a4, и a0.

    2. Измените Terms для a2 к

      (1/2)*(3*cos(x)^2-1)

      Обновления приложения Curve Fitting подгонка, когда вы редактируете условия.

    3. Измените 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, чтобы сделать копию вашей предыдущей подгонки Полинома лежандра, чтобы изменить.

    Дублированная подгонка появляется в новой вкладке.

    Чтобы подтвердить теоретический аргумент, что данные альфа-эмиссии лучше всего описаны Полиномом лежандра четвертой степени с только даже условиями, затем соответствуйте данным, использующим оба четных и нечетных термина:

    y2(x)=y1(x)+a1x+a3(12)(5x33x)

  • Переименуйте новую подгонку к Leg4EvenOdd.

  • Нажмите Edit, чтобы изменить условия уравнения. Диалоговое окно Edit Custom Linear Terms открывается.

    Отредактируйте условия можно следующим образом, чтобы подбирать модель, данную y 2 (x):

    1. Щелкните + кнопка, чтобы добавить термин дважды, добавить нечетные условия Лежандра.

    2. Поменяйте новые содействующие имена на a1 и a3.

    3. Измените Terms для a1 к

      cos(x)

    4. Измените 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.

  1. Чтобы использовать линейный алгоритм подбора, задайте массив ячеек условий модели с должности входа к 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

  2. Загрузите angle и counts переменные в рабочей области.

    load carbon12alpha

  3. Используйте 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)

  4. Постройте подгонку и данные.

    plot(f, angle, counts)

Для получения дополнительной информации о линейных условиях модели смотрите fittype функция.