Предупреждение о времени выполнения: переполнение, возникающее при мощности y=c*(x**m)

#python #debugging #runtime-error #scipy-optimize

Вопрос:

Я пытаюсь подогнать некоторые данные с помощью scipy.optimize.curve_fit. Но я получаю сообщение об ошибке RuntimeWarning: overflow encountered in power y=c*(x**m) . Я знаю, что эта ошибка как-то связана с тем, что x**m превышает предел python (может быть?), Но я не могу найти, как именно он превышает предел.

 m=np.logspace(np.log10(8e11),14,1000)

Mbh_acc=[0]*ntrials
for i in range(ntrials):
    Mbh_acc[i]=MbhthShimasaku(m,0)-Mbhsim0(m,*(popt[i]))
Mbh_acc=np.array(Mbh_acc)

#Fitting accreted mass vs initial bh mass
def Mbhsimacc(x,m,c):
    y=c*(x**m)
    return y

popt1=[0]*(ntrials)
pcov1=[0]*(ntrials)
print(Mbhsim0(m,*popt[i]))
print('done')
for i in tqdm(range(ntrials),desc='fitting simulated data'):
    popt1[i], pcov1[i] = curve_fit(Mbhsimacc,Mbhsim0(m,*(popt[i])),Mbh_acc[i],maxfev=1000)
    
popt1=np.array(popt1)
mpow_acc=np.zeros(ntrials)
for i in range(ntrials):
    mpow_acc[i]=popt1[i,0]
 

То, что я пытаюсь сделать, — это подобрать 20 различных наборов данных (ntrials=20), чтобы получить 20 различных значений popt1.
Это значения Mbh_acc:

 [[-2.19883543e 05 -2.02537616e 05 -1.84950961e 05 ...  1.82059750e 10
   1.83555718e 10  1.85063867e 10]
 [ 3.46176012e 06  3.49856340e 06  3.53571023e 06 ...  1.89097000e 10
   1.90630128e 10  1.92175633e 10]
 [ 5.22964695e 06  5.27586687e 06  5.32248048e 06 ...  1.92615749e 10
   1.94167597e 10  1.95731923e 10]
 ...
 [ 6.91980565e 06  6.97520961e 06  7.03105716e 06 ...  1.96367514e 10
   1.97939746e 10  1.99524566e 10]
 [ 6.91984174e 06  6.97524597e 06  7.03109380e 06 ...  1.96368031e 10
   1.97940266e 10  1.99525090e 10]
 [ 6.91986016e 06  6.97526453e 06  7.03111250e 06 ...  1.96368375e 10
   1.97940613e 10  1.99525439e 10]]
 

и Mbhsim0(m,*popt[i]):

 [1.84929435e 01 1.86483970e 01 1.88051574e 01 1.89632354e 01
 1.91226423e 01 1.92833892e 01 1.94454873e 01 1.96089481e 01
 1.97737829e 01 1.99400033e 01 2.01076210e 01 2.02766477e 01
 2.04470953e 01 2.06189757e 01 2.07923009e 01 2.09670831e 01
 2.11433345e 01 2.13210676e 01 2.15002946e 01 2.16810283e 01
 2.18632812e 01 2.20470662e 01 2.22323961e 01 2.24192839e 01
 2.26077427e 01 2.27977856e 01 2.29894262e 01 2.31826776e 01
 2.33775536e 01 2.35740677e 01 2.37722337e 01 2.39720655e 01
 2.41735771e 01 2.43767827e 01 2.45816964e 01 2.47883326e 01
 2.49967059e 01 2.52068307e 01 2.54187219e 01 2.56323943e 01
 2.58478628e 01 2.60651426e 01 2.62842488e 01 2.65051969e 01
 2.67280023e 01 2.69526806e 01 2.71792476e 01 2.74077191e 01
 2.76381112e 01 2.78704400e 01 2.81047217e 01 2.83409729e 01
 2.85792100e 01 2.88194498e 01 2.90617090e 01 2.93060047e 01
 2.95523539e 01 2.98007740e 01 3.00512824e 01 3.03038965e 01
 3.05586342e 01 3.08155132e 01 3.10745515e 01 3.13357673e 01
 3.15991790e 01 3.18648049e 01 3.21326637e 01 3.24027742e 01
 3.26751552e 01 3.29498259e 01 3.32268055e 01 3.35061134e 01
 3.37877692e 01 3.40717926e 01 3.43582036e 01 3.46470221e 01
 3.49382685e 01 3.52319632e 01 3.55281267e 01 3.58267797e 01
 3.61279433e 01 3.64316384e 01 3.67378865e 01 3.70467089e 01
 3.73581273e 01 3.76721636e 01 3.79888396e 01 3.83081777e 01
 3.86302001e 01 3.89549295e 01 3.92823886e 01 3.96126004e 01
 3.99455879e 01 4.02813746e 01 4.06199840e 01 4.09614397e 01
 4.13057657e 01 4.16529862e 01 4.20031255e 01 4.23562080e 01
 4.27122586e 01 4.30713022e 01 4.34333640e 01 4.37984693e 01
 4.41666436e 01 4.45379130e 01 4.49123032e 01 4.52898406e 01
 4.56705516e 01 4.60544629e 01 4.64416014e 01 4.68319943e 01
 4.72256688e 01 4.76226526e 01 4.80229734e 01 4.84266594e 01
 4.88337389e 01 4.92442403e 01 4.96581924e 01 5.00756242e 01
 5.04965650e 01 5.09210443e 01 5.13490918e 01 5.17807375e 01
 5.22160116e 01 5.26549447e 01 5.30975676e 01 5.35439111e 01
 5.39940067e 01 5.44478858e 01 5.49055803e 01 5.53671222e 01
 5.58325439e 01 5.63018779e 01 5.67751573e 01 5.72524150e 01
 5.77336846e 01 5.82189999e 01 5.87083947e 01 5.92019035e 01
 5.96995607e 01 6.02014013e 01 6.07074604e 01 6.12177735e 01
 6.17323764e 01 6.22513050e 01 6.27745958e 01 6.33022855e 01
 6.38344109e 01 6.43710095e 01 6.49121188e 01 6.54577767e 01
 6.60080214e 01 6.65628916e 01 6.71224260e 01 6.76866640e 01
 6.82556450e 01 6.88294089e 01 6.94079959e 01 6.99914466e 01
 7.05798018e 01 7.11731028e 01 7.17713912e 01 7.23747088e 01
 7.29830980e 01 7.35966014e 01 7.42152619e 01 7.48391229e 01
 7.54682282e 01 7.61026219e 01 7.67423483e 01 7.73874523e 01
 7.80379791e 01 7.86939743e 01 7.93554838e 01 8.00225541e 01
 8.06952319e 01 8.13735642e 01 8.20575987e 01 8.27473832e 01
 8.34429662e 01 8.41443962e 01 8.48517226e 01 8.55649948e 01
 8.62842629e 01 8.70095772e 01 8.77409886e 01 8.84785483e 01
 8.92223080e 01 8.99723198e 01 9.07286363e 01 9.14913105e 01
 9.22603957e 01 9.30359460e 01 9.38180157e 01 9.46066595e 01
 9.54019327e 01 9.62038911e 01 9.70125908e 01 9.78280885e 01
 9.86504414e 01 9.94797070e 01 1.00315944e 02 1.01159210e 02
 1.02009564e 02 1.02867067e 02 1.03731778e 02 1.04603758e 02
 1.05483068e 02 1.06369769e 02 1.07263924e 02 1.08165596e 02
 1.09074847e 02 1.09991741e 02 1.10916343e 02 1.11848717e 02
 1.12788929e 02 1.13737044e 02 1.14693129e 02 1.15657251e 02
 1.16629478e 02 1.17609877e 02 1.18598518e 02 1.19595469e 02
 1.20600801e 02 1.21614583e 02 1.22636888e 02 1.23667786e 02
 1.24707350e 02 1.25755653e 02 1.26812768e 02 1.27878769e 02
 1.28953731e 02 1.30037729e 02 1.31130839e 02 1.32233139e 02
 1.33344704e 02 1.34465613e 02 1.35595945e 02 1.36735778e 02
 1.37885193e 02 1.39044270e 02 1.40213090e 02 1.41391736e 02
 1.42580289e 02 1.43778833e 02 1.44987453e 02 1.46206232e 02
 1.47435257e 02 1.48674613e 02 1.49924387e 02 1.51184666e 02
 1.52455540e 02 1.53737097e 02 1.55029426e 02 1.56332620e 02
 1.57646768e 02 1.58971962e 02 1.60308297e 02 1.61655865e 02
 1.63014760e 02 1.64385079e 02 1.65766917e 02 1.67160370e 02
 1.68565538e 02 1.69982517e 02 1.71411407e 02 1.72852309e 02
 1.74305323e 02 1.75770551e 02 1.77248096e 02 1.78738062e 02
 1.80240552e 02 1.81755673e 02 1.83283529e 02 1.84824229e 02
 1.86377881e 02 1.87944592e 02 1.89524474e 02 1.91117636e 02
 1.92724190e 02 1.94344249e 02 1.95977927e 02 1.97625337e 02
 1.99286596e 02 2.00961819e 02 2.02651125e 02 2.04354631e 02
 2.06072457e 02 2.07804723e 02 2.09551550e 02 2.11313062e 02
 2.13089381e 02 2.14880632e 02 2.16686941e 02 2.18508433e 02
 2.20345238e 02 2.22197482e 02 2.24065297e 02 2.25948812e 02
 2.27848161e 02 2.29763476e 02 2.31694891e 02 2.33642542e 02
 2.35606565e 02 2.37587098e 02 2.39584279e 02 2.41598249e 02
 2.43629149e 02 2.45677120e 02 2.47742307e 02 2.49824854e 02
 2.51924907e 02 2.54042614e 02 2.56178122e 02 2.58331581e 02
 2.60503143e 02 2.62692959e 02 2.64901183e 02 2.67127969e 02
 2.69373474e 02 2.71637855e 02 2.73921270e 02 2.76223880e 02
 2.78545847e 02 2.80887331e 02 2.83248499e 02 2.85629515e 02
 2.88030545e 02 2.90451759e 02 2.92893327e 02 2.95355418e 02
 2.97838205e 02 3.00341864e 02 3.02866568e 02 3.05412495e 02
 3.07979824e 02 3.10568734e 02 3.13179406e 02 3.15812024e 02
 3.18466772e 02 3.21143836e 02 3.23843404e 02 3.26565665e 02
 3.29310809e 02 3.32079029e 02 3.34870520e 02 3.37685475e 02
 3.40524094e 02 3.43386574e 02 3.46273117e 02 3.49183924e 02
 3.52119199e 02 3.55079149e 02 3.58063981e 02 3.61073903e 02
 3.64109127e 02 3.67169865e 02 3.70256333e 02 3.73368745e 02
 3.76507321e 02 3.79672280e 02 3.82863844e 02 3.86082236e 02
 3.89327683e 02 3.92600411e 02 3.95900650e 02 3.99228631e 02
 4.02584588e 02 4.05968755e 02 4.09381370e 02 4.12822671e 02
 4.16292901e 02 4.19792301e 02 4.23321118e 02 4.26879599e 02
 4.30467992e 02 4.34086550e 02 4.37735526e 02 4.41415175e 02
 4.45125756e 02 4.48867528e 02 4.52640755e 02 4.56445699e 02
 4.60282628e 02 4.64151811e 02 4.68053518e 02 4.71988024e 02
 4.75955603e 02 4.79956535e 02 4.83991098e 02 4.88059577e 02
 4.92162255e 02 4.96299421e 02 5.00471365e 02 5.04678378e 02
 5.08920756e 02 5.13198796e 02 5.17512797e 02 5.21863062e 02
 5.26249896e 02 5.30673607e 02 5.35134503e 02 5.39632898e 02
 5.44169107e 02 5.48743448e 02 5.53356242e 02 5.58007811e 02
 5.62698481e 02 5.67428582e 02 5.72198445e 02 5.77008403e 02
 5.81858794e 02 5.86749959e 02 5.91682239e 02 5.96655980e 02
 6.01671531e 02 6.06729243e 02 6.11829471e 02 6.16972572e 02
 6.22158906e 02 6.27388837e 02 6.32662732e 02 6.37980959e 02
 6.43343892e 02 6.48751907e 02 6.54205381e 02 6.59704698e 02
 6.65250243e 02 6.70842405e 02 6.76481574e 02 6.82168147e 02
 6.87902522e 02 6.93685101e 02 6.99516289e 02 7.05396494e 02
 7.11326129e 02 7.17305609e 02 7.23335353e 02 7.29415783e 02
 7.35547327e 02 7.41730413e 02 7.47965474e 02 7.54252948e 02
 7.60593275e 02 7.66986900e 02 7.73434270e 02 7.79935837e 02
 7.86492057e 02 7.93103390e 02 7.99770298e 02 8.06493248e 02
 8.13272713e 02 8.20109166e 02 8.27003087e 02 8.33954960e 02
 

Может ли это быть из-за отрицательных значений в Mbh_acc?

Комментарии:

1. Максимальное значение с плавающей запятой равно 1.8 x 10**308 . Это x**m где-нибудь рядом с этим?

2. Постройте график данных и первоначальное предположение. Скорее всего, ваша первоначальная догадка безумна. M

3. Спасибо за комментарии. x^m не должно быть и близко к этому значению. Мой x находится в диапазоне 10^8~10^12. Значение m в соответствии с scipy.optimize составляет от 1 до 2.