2013-06-30 115 views
1

我有一個函數scipy.interp2d的問題。這個例子很簡單:scipy.interp2d [分段錯誤(核心轉儲)]

import matplotlib.pyplot as plt 
from scipy.interpolate import interp2d 
import numpy as np 

n=60 #Critical parameter 

x = np.linspace(-10,10,n) 
X,Y = np.meshgrid(x,x) 
r = X**2+Y**2 
plt.imshow(r) 
plt.show() 

f = interp2d(x,x,r) 
new_x = np.linspace(-10,10,10) 
plt.imshow(f(new_x,new_x)) 
plt.show() 

如果n = 2,...,59,一切正常,但是當n = 60時,出現分段錯誤。這是一個scipy錯誤?

另一方面,我確實注意到,當函數的值爲hight且域很小時,這個函數有很大的問題。我相信在執行這個例程時存在一些內部問題。

任何提示?

SciPy的版本:0.11.0

+0

是否有任何問題的時候'N> 60'? –

+0

n = 61,62,63好; n = 64 - >警告:由於B樣條係數的數量已經超過了數據點的數量m,所以不能再增加節點。可能的原因:s或m太小。 (FP> S)。 n = 70,seg。故障。 – Pablo

+2

我懷疑這是一個錯誤 - 我可以在scipy 0.11.0中重現這一點,但不能在0.13.0.dev-fe8b0a5中重現 –

回答