python 样条曲线_用SymPy构造符号插值样条曲线

在1.1.1以上的SymPy版本中,包括current development version,有一个内置方法interpolating_spline,它有四个参数:样条曲线度、变量、域值和范围值。在from sympy import *

DataPointsDomain = [0,1,2,3,4,5]

DataPointsRange = [3,6,5,7,9,1]

x = symbols('x')

s = interpolating_spline(3, x, DataPointsDomain, DataPointsRange)

这就回来了

^{pr2}$

它是通过给定点的“非结”三次样条曲线。在

旧答案

插值样条曲线可以用SymPy构造,但这需要一些努力。方法bspline_basis_set返回给定x值的B样条函数的基,但接下来就由您来确定它们的系数了。在

首先,我们需要节点列表,它与x值列表(下面是xv)不完全相同。端点xv[0]和xv[-1]将出现deg+1倍,其中deg是样条曲线的阶数,因为在端点处,所有系数的值都会改变(从某个值变为零)。此外,一些接近它们的x值可能根本不会出现,因为那里的系数不会发生变化(“没有结”条件)。最后,对于偶数次样条曲线(yack),内部节点放置在数据点之间的中间。所以我们需要这个助手函数:from sympy import *

def knots(xv, deg):

if deg % 2 == 1:

j = (deg+1) // 2

interior_knots = xv[j:-j]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值