Почему Ошибка на функциях подбора слишком велика и кривая, кажется, проходит от максимального количества точек. Как уменьшить эту ошибку? - PullRequest
1 голос
/ 24 октября 2019

Я хочу использовать степенной закон для подгонки к моим точкам данных, потому что мне нужно вычислить значение v. Но ошибка моих параметров подгонки слишком велика, хотя кривая, кажется, проходит все точки данных. Как уменьшить это ошибка? enter image description here

`import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import math
import scipy 
from scipy import optimize

x_data= np.array([30, 45, 60, 75])
y_data= np.array([0.42597867, 0.26249343, 0.19167837, 0.08116507])

fig = plt.figure()
ax= fig.add_subplot(111)

def ff(L,v,c):
    return (L**(-1/v)+c)


ax2.scatter(x_data, y_data, marker='s',s=4**2,)


pfit,pcov = optimize.curve_fit(ff,x_data,y_data)
print("pfit: ",pfit)
print("pcov: ",pcov.shape)
#print(pcov)
perr = np.sqrt(np.diag(pcov))
x=np.linspace(20,85,1000)

ax2.plot(x,ff(x,*pfit),color='red')`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...