안녕하세요 저는 파이썬에 일부 데이터를 맞추기 위해 문제가 있습니다. 난 그냥 몇 가지 문제가 그래서 파이썬 내 데이터에 맞게 시작 ... 이건 내 코드입니다 :내 곡선 피팅에 최적의 매개 변수가 없습니다.
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import *
from numpy import linalg as LA
def f(x,a,b,c):
return a*np.power(x,b)+c
x = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79])
y = np.array([7200,7925,8050,8200,8000,7550,7500,6800,6400,8150,6566,6280,6105,5963,5673,5495,5395,4800,4550,4558,4228,4087,3951,3817,3721,3612,3498,3416,3359,3269,3163,3241,2984,4475,2757,2644,2555,2600,3163,2720,2630,2543,2454,2441,2389,2339,2293,2261,2212,2180,2143,2450,2065,2032,1994,1960,1930,1897,1870,1838,1821,1785,1763,1741,1718,1689,1676,1662,1635,1635,1667,1633,1617,1615,1599,1581,1565,1547,1547])
params, extras = curve_fit(f, x, y)
plt.plot(x,y, 'o')
plt.plot(x, f(x, params[0], params[1], params[2]))
plt.title('Fit')
plt.legend(['data','fit'],loc='best')
plt.show()
그리고 실제로 나는 최고의 값을 찾고 있는데요 기능 f(x) = a*x^b + c
내 데이터에 맞게 원하는 a, b 및 c를 입력하여 내 데이터에 맞 춥니 다.
잘못된 점이 있습니까?
도움 주셔서 감사합니다.
기본 모델이 강세 법칙이라고 확신하십니까? –