Tôi có một quỹ đạo được hình thành bởi một chuỗi các cặp (x, y). Tôi muốn nội suy các điểm trên quỹ đạo này bằng cách sử dụng splines.scipy: Interpolating quỹ đạo
Làm cách nào để thực hiện việc này? Sử dụng scipy.interpolate.UnivariateSpline
không hoạt động vì không phải x cũng không phải y là đơn điệu. Tôi có thể giới thiệu một tham số (ví dụ: chiều dài d dọc theo quỹ đạo), nhưng sau đó tôi có hai biến phụ thuộc x (d) và y (d).
Ví dụ:
import numpy as np
import matplotlib.pyplot as plt
import math
error = 0.1
x0 = 1
y0 = 1
r0 = 0.5
alpha = np.linspace(0, 2*math.pi, 40, endpoint=False)
r = r0 + error * np.random.random(len(alpha))
x = x0 + r * np.cos(alpha)
y = x0 + r * np.sin(alpha)
plt.scatter(x, y, color='blue', label='given')
# For this special case, the following code produces the
# desired results. However, I need something that depends
# only on x and y:
from scipy.interpolate import interp1d
alpha_i = np.linspace(alpha[0], alpha[-1], 100)
r_i = interp1d(alpha, r, kind=3)(alpha_i)
x_i = x0 + r_i * np.cos(alpha_i)
y_i = x0 + r_i * np.sin(alpha_i)
plt.plot(x_i, y_i, color='green', label='desired')
plt.legend()
plt.show()
@alinsoar: dữ liệu (x, y) trong ví dụ này không làm gì? – Nikratio