问题
给定离散点如下
t = np.arange(0,2,0.1)
y = t**2-2*t+1
如图可见是一个参数方程为
f
(
t
)
=
t
2
−
2
t
+
1
f(t) = t^2-2t+1
f(t)=t2−2t+1的二次函数,计算曲线在这些离散点上的切向量。
计算方法
方法一
对曲线上某点 P i ( x i , y i ) P_{i}(x_{i},y_{i}) Pi(xi,yi),我们将 P i + 1 − P i − 1 2 \frac{P_{i+1}-P_{i-1}}{2} 2Pi+1−Pi−1认为是曲线在点 P i P_{i} Pi上的切向量。
u = np.gradient(t)
v = np.gradient(y)
fig = plt.figure()
plt.scatter(t,y)
plt.quiver(t,y,u,v)
plt.show()
方法二
采用三次样条曲线对离散点进行拟合,再求其一阶导,作为切向量。
from scipy.interpolate import splprep, splev
tck,myu = splprep([t,y],s=0)
u,v = splev(myu,tck,der=1)
fig = plt.figure()
plt.scatter(t, y)
plt.quiver(t,y,u,v)
plt.show()