首页 > 解决方案 > Python插值:方法的精度?

问题描述

Python 插值有 3 种支持的方法:

支持“线性”和“最近”,以及“<strong>splinef2d”。“splinef2d”仅支持二维数据。

Wikiversity中,它被解释为多项式插值,我认为应该比线性更精确......

所以这里有两个问题:

  1. splinef2d 是什么?这是wikiversity链接之一?
  2. 三种可用方法中哪一种在插值中更精确?最近的,双线性或样条线2d?

标签: pythonscipyinterpolation

解决方案


这需要更多的挖掘scipy。该splinef2d方法本质上是将您的数据拟合到表面。您需要进一步探索的方法是scipy.interpolate.bisplrep。这包含了 FITPACK 的surffit子程序。据我所知,变量的类型是real. 使用默认编译器设置,这意味着它real(kind=8)因此您正在查看double精度。这预计会具有传染性,因此 python 也处理相同的精度。

您现在可以对QHull重复该练习,以获取有关 LinearND 插值的详细信息。根据我从他们的 git repo 中看到的,它似乎是double精确的。

在 python 方面,变量被声明float并且文档说:

在运行 Python 的典型机器上,有 53 位精度可用于 Python 浮点数

关于包装函数的精度,默认情况下 pythonfloat具有双精度。看到这个答案


推荐阅读