spl_interp.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:PySAT 作者: USGS-Astrogeology 项目源码 文件源码
def spl_interp(xa, ya, y2a, x):
    n = xa.size

    #    valloc=baseline_code.value_locate.value_locate(xa, x)
    valloc = numpy.digitize(x,
                            xa) - 1  # The numpy routine digitize appears to basically do what value_locate does in IDL
    klo = []
    for i in valloc:
        klo.append(min(max(i, 0), (n - 2)))
    klo = numpy.array(klo)
    khi = klo + 1
    #
    # KLO and KHI now bracket the input value of X
    #

    if min(xa[khi] - xa[klo]) == 0: print('SPLINT - XA inputs must be distinct')
    #
    # Cubic spline polynomial is now evaluated
    #
    h = xa[khi] - xa[klo]

    a = (xa[khi] - x) / h
    b = (x - xa[klo]) / h
    output = a * ya[klo] + b * ya[khi] + ((a ** 3. - a) * y2a[klo] + (b ** 3. - b) * y2a[khi]) * (h ** 2.) / 6.
    return output

# spl_interp.pro
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号