Оптимизация параметров функции - PullRequest
1 голос
/ 15 апреля 2020

Я новичок в кодировании и в настоящее время пытаюсь приспособить функцию к моим данным и найти оптимизированные параметры, которые я назвал 'a' и 'c' в своем коде, которые я покажу ниже. Когда я запускаю код, который у меня есть, я получаю сообщение об ошибке - у объекта «builtin_function_or_method» нет атрибута «оптимизация», и я не могу понять, как справиться с этим (вероятно, из-за недостатка знаний в области кодирования). помогите мне улучшить код, чтобы я получил значения для 'a' и 'c', которые будут наилучшим образом соответствовать моим данным, которые наносятся на график.

Вот мой код:

import numpy
import scipy.optimize as optimization 
import matplotlib.pyplot as plt 

xdata=numpy.array([4.78,5.48,5.88,6.17,6.39,6.57,6.73,6.86,6.98,7.09,7.16,7.27,7.35,7.42,7.49,7.56,7.62,7.67,7.73,7.78,7.83,7.87,7.92,7.96,8.00,8.04,8.08,8.11,8.15,8.18])#x data
ydata=numpy.array([1.666,1.669,1.669,1.672,1.680,1.682,1.687,1.692,1.696,1.704,1.709,1.714,1.716,1.727,1.733,1.740,1.749,1.752,1.761,1.771,1.783,1.793,1.797,1.812,1.818,1.828,1.833,1.836,1.844,1.852])#y data 

x0 = numpy.array([0.0, 0.0]) #not sure how to treat this line??

sigma = numpy.array([1.0,1.0,1.0,1.0,1.0,1.0]) # errors (being omitted at the moment)

def func(x, a, c):
    return a+c*x   #definition of function 

plt.plot(xdata,ydata,label='data')
plt.show()

print.optimization.curve_fit(func, xdata, ydata, x0, sigma)

1 Ответ

0 голосов
/ 15 апреля 2020

Вы должны написать

print(optimization.curve_fit(func, xdata, ydata, x0, sigma))

вместо

print.optimization.curve_fit(func, xdata, ydata, x0, sigma)
...