Forum >> Programmazione Python >> Calcolo scientifico >> Problema fit non lineare

Pagina: 1

Ciao a tutti, stavo provando a effettuare un fit non lineare del tipo:
Y=a * e**(b*X)**c

e la mia idea era questa (mutuata dal codice che ho scritto per affrontare un altro problema con fit lineare):




#!/usr/bin/env python3




import math

import numpy as np

import matplotlib.pyplot as plt

import scipy

from scipy.optimize import curve_fit




minutes = [0., 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.]

temperature = [70.9, 70.8, 70.4, 70.1, 69.7, 69.6, 68.5, 68.0, 64.6, 64.0, 62.7, 58.3, 56.5, 50.5, 48.8, 42.1, 35.5, 30.9, 29.7, 22.8, 16.0, 11.0, 9.11, 8.47, 6.27, 3.76]







minutes_np = np.array(minutes)

temperature_np = np.array(temperature)






def exponential(x, a, b, c):

return (a * math.e ** (b*x) ** c)



popt, pcov = curve_fit(exponential, minutes_np, temperature_np)




print (popt)









popt_np = np.array(popt)

pcov_np = np.array(pcov)




matrix = np.corrcoef(minutes_np, temperature_np)

rho = (matrix01) / (math.sqrt(matrix11*matrix00))






plt.scatter(minutes_np, temperature_np, zorder=1, c='k')




x = np.arange(0, 30)




plt.plot(x, (popt_np0 * math.e ** (popt_np1*x)**popt_np2), zorder=2, color='g')




plt.show()











Il problema è che ho un Warning al momento della definizione del modello:




RuntimeWarning: invalid value encountered in power





e il risultato del fit non è compatibile con quanto dovrei ottenere.

Purtroppo sono neofita e non ho affatto chiara la natura del warning e se sia proprio questo a darmi problemi col risultato finale.




Grazie in anticipo a chiunque possa darmi un suggerimento.






Ciao a tutti, stavo provando a effettuare un fit non lineare del tipo:
Y=a * e**(b*X)**c
e la mia idea era questa (mutuata dal codice che ho scritto per affrontare un altro problema con fit lineare):
<snip />
Il problema è che ho un Warning al momento della definizione del modello:
RuntimeWarning: invalid value encountered in power
e il risultato del fit non è compatibile con quanto dovrei ottenere.
Purtroppo sono neofita e non ho affatto chiara la natura del warning e se sia proprio questo a darmi problemi col risultato finale.
THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Ho già provato queste soluzioni ma non sono servite nel mio caso (vuoi perchè il problema è diverso o perchè ho sbagliato qualcosa io), per questo ho aperto una nuova discussione.


Pagina: 1



Esegui il login per scrivere una risposta.