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

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

В приложении 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.

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

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

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

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

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

    a*log(x) + b*x + c
    линейно в a, b и 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 for 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 функционирует.

Для просмотра документации необходимо авторизоваться на сайте