首页 > 解决方案 > 如何在 SQL-Server 中实现三次样条

问题描述

我正在尝试创建一个 SQL 函数来生成插值三次样条所需的多项式。在基于对象的编程语言中,这不会给我带来太多麻烦,我可以按顺序处理数据点,但我是 SQL 新手,不熟悉用于解决 SQL 中此类问题的方法。

我一直在参考这篇文章(https://www.periscopedata.com/blog/spline-interpolation-in-sql),它为我试图完成的同一任务提供了一个框架,但我相信它使用不同的 SQL 分布这似乎赋予了创建类似物品的对象的能力。下面的代码代表了我迄今为止能够完成的事情,并且在思考如何进行时遇到了麻烦。

Select [Option Value] As [T] ,[idx],
  LAG([Option Value],1) OVER (ORDER BY idx) AS [T-1],
  LEAD([Option Value],1) OVER (ORDER BY idx) AS [T+1],
  0 As [y2],
  0 As [u],
  0 AS [p]
  INTO #Calc
  FROM [#Data]
  ORDER BY [idx]


  Select *,
  ([T] - [T-1])/([T+1] - [T-1]) As Sig

  FROM #Calc

输入表将有 11 个点,在 x 轴上分布不均匀(例如(-0.2,1),(-0.1,1.2),(-0.03,1.6),(0.05,2))我希望创建提供这些点之间的插值的函数。

标签: sql-serverssmsspline

解决方案


推荐阅读