Я пытаюсь подогнать кривую, изменив два параметра (e
и A
). Целевая кривая строится путем присвоения n0=0.395
, но ее фактическое значение составляет 0.0395
. Поэтому я надеюсь достичь той же кривой, изменив e
и A
.
import numpy as np
from scipy.optimize import curve_fit
def func(x,e,A):
return A*(e+x)**0.0395
strain = np.linspace(0,15,3000) # variable
e = 0.773
A = 386.5
n0 = 0.395
y = A*(e+strain)**n0 # target to minimize
popt, pcov = curve_fit(func, strain, y)
Однако, я постоянно получаю это предупреждение после запуска кода:
RuntimeWarning: invalid value encountered in power
return A*(e+x)**0.0395
Мне было интересно, почему это происходит и как улучшить код?