def lagrange_interpolator(points, delta, delta_i_list):
"""
Construct the multidimensional Lagrange interpolating polynomial
defined by *delta* and *delta_i_list* at *points*.
This is (7) in the reference
Kamron Saniee, A Simple Expression for Multivariate Lagrange
Interpolation, SIAM, 2007.
"""
f = 0
for i, delta_i in enumerate(delta_i_list):
f += points[i][-1] * delta_i / delta
# fix for corner case when polynomial reduces to a single float
if isinstance(f, float):
return SYM.Float(f)
return f
评论列表
文章目录