Внедрение закона Broken Power в качестве подходящей функции в Origin

Добрый день, я пытаюсь использовать построитель функций по происхождению (OriginLab), чтобы создать новую функцию, соответствующую стилю нарушения прав ( http://en.wikipedia.org/wiki/Power_law#Broken_power_law )

Итак, я думаю, что я потерял фактическую функцию. Для этого я использовал

if(x<xc) y =x^a1; if(x>xc) y = x^(a1-a2)*x^a2; if(x==xc) y = 0; 

Где xc, a1 и a2 – параметры. Тем не менее, я затем добираюсь до точки, где вам нужно выбрать кучу вещей (диапазоны параметров, сценарий, который вы запускаете, чтобы угадать начальные значения и т. Д.), И я не знаю, что добавить туда. У кого-нибудь есть опыт с этим?

One Solution collect form web for “Внедрение закона Broken Power в качестве подходящей функции в Origin”

Несмотря на то, что вопрос требует предложения с использованием OriginLab , этот использует Python, поскольку OP принял его попробовать!

Метод подбора кривой, который существует в Python, из пакета Scipy (curve_fit). Все пакеты python для окон можно скачать в jiffy от ЭТОГО ВЕБ-САЙТА ЗДЕСЬ!

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

Код для подбора примерных данных позволяет называть их x and y . Здесь параметры подгонки – a1 and a2 .

 import numpy as np # This is the Numpy module from scipy.optimize import curve_fit # The module that contains the curve_fit routine import matplotlib.pyplot as plt # This is the matplotlib module which we use for plotting the result """ Below is the function that returns the final y according to the conditions """ def fitfunc(x,a1,a2): y1 = (x**(a1) )[x<xc] y2 = (x**(a1-a2) )[x>xc] y3 = (0)[x==xc] y = np.concatenate((y1,y2,y3)) return y x = Your x data here y = Your y data here """ In the above code, we have imported 3 modules, namely Numpy, Scipy and matplotlib """ popt,pcov = curve_fit(fitfunc,x,y,p0=(10.0,1.0)) #here we provide random initial parameters a1,a2 a1 = popt[0] a2 = popt[1] residuals = y - fitfunc(x,a1,a2) chi-sq = sum( (residuals**2)/fitfunc(x,a1,a2) ) # This is the chi-square for your fitted curve """ Now if you need to plot, perform the code below """ curvey = fitfunc(x,a1,a2) # This is your y axis fit-line plt.plot(x, curvey, 'red', label='The best-fit line') plt.scatter(x,y, c='b',label='The data points') plt.legend(loc='best') plt.show() 

Просто вставьте свои данные здесь, и он должен работать просто отлично! Для получения более подробной информации о том, как работает код, ПРОВЕРЬТЕ ЭТОТ ВЕБ-САЙТ Я не смог найти подходящего примера для вашей функциональности, поэтому x и y остались пустыми. Но как только у вас есть данные, просто подключите их!

Interesting Posts

Установка NLTK со Стэнфордским НЛП (как StanfordNERTagger, так и StanfordPOSTagger) для испанского

Обучение регистрации и проверка достоверности в тензокартоне

Slim down Python wxPython OS X приложение, построенное с помощью py2app?

Создайте гиперссылку (или кнопку), которая выполняет скрипт python, а затем перенаправляет, когда скрипт завершается

Извлечь «родные» значения python из структурированного массива numpy

Django After Midnight Business Hours Ошибка сравнения TimeField

Недопустимое имя команды во время выполнения (сценарий «после»)

Как отсортировать список объектов на основе атрибута объектов?

Обнаружение, если итератор будет потреблен

socket.error: Адрес уже используется

Сюжет Панды не накладывается

Ручная сборка мусора в Python

Могу ли я использовать msilib или другие библиотеки Python для извлечения одного файла из файла .msi?

Иерархия дерева контура Python OpenCV

Работайте для всплывающего окна selenium2

Python - лучший язык программирования в мире.