Как использовать функцию lesssq из scipy.optimize в python, чтобы поместить как прямую линию, так и квадратичную линию в наборы данных x и y

Как бы я поместил прямую линию и квадратично в набор данных ниже, используя функцию lesssq из scipy.optimize? Я знаю, как использовать полифит для этого. Но мне нужно использовать функцию lesssq.

Вот набор данных x и y:

x: 1,0,2,5,3,5,4,0,1,1,1,8,2,2,3,7

y: 6,008,15.722,27.130,33.772,5.257,9.549,11.098,28.828

Может кто-нибудь помочь мне, пожалуйста?

благодаря

One Solution collect form web for “Как использовать функцию lesssq из scipy.optimize в python, чтобы поместить как прямую линию, так и квадратичную линию в наборы данных x и y”

Метод lesssq () находит набор параметров, которые минимизируют функцию ошибки (разница между yExperimental и yFit). Я использовал кортеж для передачи параметров и лямбда-функций для линейных и квадратичных подгонок.

lesssq начинается с первого предположения (начальный набор параметров) и пытается минимизировать функцию ошибки. В конце, если lesssq преуспевает, он возвращает список параметров, которые наилучшим образом соответствуют данным. (Я напечатал его). Надеюсь, это с наилучшими пожеланиями

 from scipy.optimize import leastsq import numpy as np import matplotlib.pyplot as plt def main(): # data provided x=np.array([1.0,2.5,3.5,4.0,1.1,1.8,2.2,3.7]) y=np.array([6.008,15.722,27.130,33.772,5.257,9.549,11.098,28.828]) # here, create lambda functions for Line, Quadratic fit # tpl is a tuple that contains the parameters of the fit funcLine=lambda tpl,x : tpl[0]*x+tpl[1] funcQuad=lambda tpl,x : tpl[0]*x**2+tpl[1]*x+tpl[2] # func is going to be a placeholder for funcLine,funcQuad or whatever # function we would like to fit func=funcLine # ErrorFunc is the diference between the func and the y "experimental" data ErrorFunc=lambda tpl,x,y: func(tpl,x)-y #tplInitial contains the "first guess" of the parameters tplInitial1=(1.0,2.0) # leastsq finds the set of parameters in the tuple tpl that minimizes # ErrorFunc=yfit-yExperimental tplFinal1,success=leastsq(ErrorFunc,tplInitial1[:],args=(x,y)) print " linear fit ",tplFinal1 xx1=np.linspace(x.min(),x.max(),50) yy1=func(tplFinal1,xx1) #------------------------------------------------ # now the quadratic fit #------------------------------------------------- func=funcQuad tplInitial2=(1.0,2.0,3.0) tplFinal2,success=leastsq(ErrorFunc,tplInitial2[:],args=(x,y)) print "quadratic fit" ,tplFinal2 xx2=xx1 yy2=func(tplFinal2,xx2) plt.plot(xx1,yy1,'r-',x,y,'bo',xx2,yy2,'g-') plt.show() if __name__=="__main__": main() 
  • Множественное построение набора данных с помощью matplotlib.pyplot.plot_date
  • Как создать скудную разреженную матрицу из фреймворка pandas?
  • Python / Numpy: преобразовать список bools в unsigned int
  • Заполните пропущенные значения с ближайшим соседом в масках в масках в макете Python?
  • Как получить идентификаторы кластера, не являющиеся одиночными, в скудной иерархической кластеризации
  • Оптимальный способ вычисления парной взаимной информации с использованием numpy
  • При установке кривой кривой в набор данных в Python
  • CSR scipy-матрица не обновляется после обновления своих значений
  • установление расстояния между сгруппированными штриховыми графиками в matplotlib
  • Перевести код matlab на python (scipy)
  • Распределение распределения с фиксированными параметрами в SciPy
  •  
    Interesting Posts for Van-Lav

    «IOError: Broken pipe» при сохранении файлов анимации в anaconda python

    Проблема скремблирования созданного javascript контента с помощью Selenium и python

    Прочитать текстовый файл с не-ASCII-символами в неизвестной кодировке

    Интерполировать значения Z на трехмерной поверхности, начиная с нерегулярного набора точек

    Где можно использовать пакет ANTLR Python для использования StringTemplate?

    Большинство Pythonic эквивалентно для: while ((x = next ())! = END)

    Можете ли вы оптимизировать этот код? (Django, python)

    Замена Python 3 для устаревшей функции compiler.ast flatten

    Проверьте, является ли тип переменной примитивным

    Ошибка настройки Vagrant с VirtualBox в PyCharm под OS X 10.10

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

    «Метод не разрешен» в функции python для колбы

    Кириллические символы в Python 2.7

    Как найти медиану в Apache Spark с API-интерфейсом Python Dataframe?

    Печать всех уникальных значений в словаре Python

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