2012-06-21 22 views
7

Có cách nào để nội suy một hàm có giá trị vector sử dụng NumPy/SciPy?Nội suy hàm có giá trị bằng Vector sử dụng NumPy/SciPy

Có rất nhiều dịch vụ hoạt động trên các hàm có giá trị vô hướng, và tôi đoán tôi có thể sử dụng một trong số đó để ước tính từng thành phần của véc tơ riêng biệt, nhưng có cách nào để làm hiệu quả hơn không?

Để xây dựng, tôi có chức năng f(x) = V, trong đó x là vô hướng và V là một vectơ. Tôi cũng có một bộ sưu tập gồm xsVs tương ứng của chúng. Tôi muốn sử dụng nó để nội suy và ước tính V cho một tùy ý x.

Trả lời

5

Hàm nội suy scipy.interpolate.interp1d cũng hoạt động trên dữ liệu có giá trị vector cho nội suy (không phải cho dữ liệu đối số có giá trị vector). Vì vậy, miễn là x là vô hướng, bạn có thể sử dụng nó trực tiếp.

Các mã sau đây là một phần mở rộng nhẹ ví dụ được đưa ra trong the scipy documentation:

>>> from scipy.interpolate import interp1d 
>>> x = np.linspace(0, 10, 10) 
>>> y = np.array([np.exp(-x/3.0), 2*x]) 
>>> f = interp1d(x, y) 
>>> f(2) 
array([ 0.51950421, 4.  ]) 
>>> np.array([np.exp(-2/3.0), 2*2]) 
array([ 0.51341712, 4.  ]) 

Lưu ý rằng 2 không nằm trong vector luận x, do đó các lỗi suy cho thành phần đầu tiên trong y trong ví dụ này.

+0

Hoạt động như một sự quyến rũ, cảm ơn! – ktdrv

Các vấn đề liên quan