python离散点切向量的计算与可视化

问题

给定离散点如下

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)=t22t+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+1Pi1认为是曲线在点 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()

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值