J'écrit le code IDL:Différence d'interpolation spline en IDL et Python
zz= [ 0, 5, 10, 15, 30, 50, 90, 100, 500]
uz= [ 20, 20, 20, 30, 60, 90, 30, -200, -200]*(-1.)
zp= findgen(120)*500+500
up= spline((zz-10.),uz,(zp/1000.0))
print, up
et IDL m'a donné les valeurs de en tableau d'environ -20 à 500
.La même I a fait en Python
import numpy as npy
zz = npy.array([ 0, 5, 10, 15, 30, 50, 90, 100, 500])
uz = npy.array([ 20, 20, 20, 30, 60, 90, 30, -200, -200])*(-1.)
zp = npy.arange(0,120)*500+500
from scipy.interpolate import interp1d
cubic_interp_u = interp1d(zz-10., uz, kind='cubic')
up = cubic_interp_u(zp/1000)
print up
et il m'a donné en avec des valeurs d'environ -20 à -160. Une idée? Merci d'avance!
Pour commencer, vous pouvez tracer le résultat de l'interpolation sur les points de données, et voir si cela a du sens ou si vous n'avez absolument aucun sens. Vous pouvez également vérifier si IDL et scipy/numpy traitent les tableaux d'entiers de la même façon dans leurs routines (c.-à-d., Sont-ils tous les deux automatiquement convertis en entrée?) – Evert
@Evert: Oui, merci. C'est une bonne idée de tracer les résultats. Je l'ai fait et les images sont montrées ici. Jetez un coup d'oeil s'il vous plait. Je suppose que la fonction interpolée de Python ne peut pas attraper mon profil. Cependant, je n'ai toujours aucune idée de le modifier! votre aide, s'il vous plaît! –
Les photos sont montrées, où? Que voulez-vous dire par profil? –