Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
[RISOLTO]Interpolazionecubicamonotona
HOME
GUIDA
REGOLAMENTO
RICERCA
ACCEDI
REGISTRATI
PYTHONIT.ORG
DOC
CHAT
Ricerca
Apri il forum in una pagina a parte possibile fornire/richiedere supporto anche presso i canali IRC #python su Azzurra e
#python.it su Freenode
precedente successivo
STAMPA
Autore
Stemby
python
unicellularis
Livello
reputazione: 0
Scollegato
Messaggi: 22
Salve,
sto cercando di ottenere un'interpolazione cubica monotona in Python.
Mi servirebbe qualcosa di simile ai metodi FritschCarlson oppure Steffen (si vedano i
grafici verso la fine di questa pagina).
Ho trovato nei sorgenti di SciPy la funzione pchip(x, y), ma non ho trovato in giro
esempi applicativi.
Scopiazzando da un esempio trovato nella documentazione di SciPy, ho provato ad
adattarlo:
leggisorgente
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
copianegliappunti
stampa
importnumpyasnp
#fromscipy.interpolateimportinterp1d
fromscipy.interpolate.polyintimportpchip
x=np.array([0,1,5,10])
y=np.array([24,30,450,530])
#f=interp1d(x,y)
#f2=interp1d(x,y,kind='cubic')
f=pchip(x,y)
xnew=np.linspace(0,10,40)
importmatplotlib.pyplotasplt
#plt.plot(x,y,'o',xnew,f(xnew),'',xnew,f2(xnew),'')
plt.plot(x,y,'',xnew,f(xnew),'o')
#plt.legend(['data','linear','cubic'],loc='best')
plt.show()
Non funziona: ottengo "TypeError: array cannot be safely cast to required type".
Mi sapete dare qualche dritta?
http://www.pythonit.org/forum/index.php?topic=6344.0
1/5
3/10/2015
[RISOLTO]Interpolazionecubicamonotona
Grazie!
Ultima modifica: Dicembre 28, 2011, 17:48 da
Stemby
riko
moderatore
python deus
Livello
reputazione: 1
Scollegato
Registrato
Messaggi: 6660
2 + 2 fa 4
Anzi, 2. + 2. fa circa 4.0 .
Registrato
I don't believe in the nowin scenario.
http://www.enricofranchi.org/
http://rik0techtemple.blogspot.com/
Stemby
python
unicellularis
y's length along the interpolation axis must be equal to the length of x.
Citazione
Qui invece sono pi in difficolt: sinceramente non riesco a capirne appieno il senso.
Citazione
Hai un type error che ti dice che non puo' fare un safe cast.
Citazione
Citazione
2 + 2 fa 4
Ok.
http://www.pythonit.org/forum/index.php?topic=6344.0
2/5
3/10/2015
[RISOLTO]Interpolazionecubicamonotona
Citazione
Stemby
python
unicellularis
Livello
reputazione: 0
Scollegato
Messaggi: 22
leggisorgente
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
copianegliappunti
stampa
importnumpyasnp
fromscipy.interpolate.polyintimportpchip
x=np.array([0,1,5,8,10])
y=np.array([24,30,450,300,530],float)
f=pchip(x,y)
xnew=np.linspace(0,10,40)
importmatplotlib.pyplotasplt
plt.plot(x,y,'',xnew,f(xnew),'o')
plt.show()
Grazie ancora!
Ultima modifica: Dicembre 29, 2011, 14:14 da
Stemby
riko
Registrato
moderatore
python deus
Bravo!
Livello
reputazione: 1
In realta' bastava
Scollegato
Messaggi: 6660
leggisorgente
01.
02.
copianegliappunti
stampa
x=np.array([0.,1,5,8,10])
y=np.array([24.,30,450,300,530])
da cui il mio criptico suggerimento. Castare da int a float e' non safe, perche' c'e'
perdita di precisione, tutto qui.
Registrato
I don't believe in the nowin scenario.
http://www.pythonit.org/forum/index.php?topic=6344.0
3/5
3/10/2015
[RISOLTO]Interpolazionecubicamonotona
http://www.enricofranchi.org/
http://rik0techtemple.blogspot.com/
Stemby
python
unicellularis
Livello
reputazione: 0
Scollegato
Bravo!
Grazie
Messaggi: 22
Citazione
01.
02.
copianegliappunti
stampa
x=np.array([0,1,5,8,10])
y=np.array([24,30,450,300,530],float)
riko
moderatore
python deus
Registrato
Comunque si, i valori non devono essere fp, perche' non prova a calcolarci la
derivata.
Non ci fa praticamente nulla, in realta'.
Messaggi: 6660
Registrato
I don't believe in the nowin scenario.
http://www.enricofranchi.org/
http://rik0techtemple.blogspot.com/
STAMPA
precedente successivo
vai
PoweredbySMF1.1.18|SMF20062009,SimpleMachines
http://www.pythonit.org/forum/index.php?topic=6344.0
4/5
3/10/2015
http://www.pythonit.org/forum/index.php?topic=6344.0
[RISOLTO]Interpolazionecubicamonotona
5/5