matlab 求离散点的切线,在离散数据点的某个点上查找切线向量

好的,我找到了对上面的“pv”稍加修改的解决方案(注意splev只对一维向量有效)

我最初在“tck,u=scipy.interpolate.splprep(data)”中遇到的一个问题是,它至少需要4个点才能工作(Matlab使用2个点)。我用了两点。在增加数据点之后,它可以按我的要求工作。

以下是完整性的解决方案:import numpy as np

import matplotlib.pyplot as plt

from scipy import interpolate

data = np.array([[-1452.18133319 , 3285.44737438, -7075.49516676],

[-1452.20175668 , 3285.29632734, -7075.49110863],

[-1452.32645025 , 3284.37412457, -7075.46633213],

[-1452.38226151 , 3283.96135828, -7075.45524248]])

distance=np.array([0., 0.15247556, 1.0834, 1.50007])

data = data.T

tck,u = interpolate.splprep(data, u=distance, s=0)

yderv = interpolate.splev(u,tck,der=1)

切线是(如果使用相同的数据,则与Matlab结果匹配):(-0.13394599723751408, -0.99063114953803189, 0.026614957159932656)

(-0.13394598523149195, -0.99063115868512985, 0.026614950816003666)

(-0.13394595055068903, -0.99063117647357712, 0.026614941718878599)

(-0.13394595652952143, -0.9906311632471152, 0.026614954146007865)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值