我需要从二维数据数组构造一个插值函数。我需要返回实际函数的东西的原因是,我需要能够将函数作为我需要进行数值积分的表达式的一部分进行计算。
因此,“interp2”并没有解决这个问题:它不返回函数。
我可以使用“TriScatteredInterp”,但这是重量级的:我的网格是等距的(而且很大);所以我不需要德劳内三角化。
还有其他选择吗?
(对“迟到”的答案表示歉意,但如果现有的答案对他们没有帮助,我有一些建议可能会帮助其他人)
从您的问题中不清楚结果函数需要有多准确(或者“大”有多大),但您可以采用的一种方法是使用最小二乘或卡尔曼滤波器对您拥有的数据点进行回归 -为基础的方法。您需要使用许多候选函数形式来执行此操作,然后选择“最佳”的一个,例如使用 MAE 或 MSE 等度量。
当然,这需要了解底层功能的形式可能是什么,但您的问题并不清楚您是否拥有此类信息。
另一种可行的方法(并且不需要知道底层函数可能是什么)是使用模糊变换(F 变换)来生成提供表面局部近似值的线段。
其方法是:
- 定义一个 2D 宇宙,其中包括输入数据的 x 和 y 域
- 创建该宇宙的 2D 模糊分区 - 选择能够满足您所需精度的分区大小
- 使用输入数据应用离散 F 变换,在 3D 模糊空间中生成模糊数据点
- 将反 F 变换作为函数句柄(以及模糊数据点)传递给您的积分函数
如果您不熟悉 F 变换,那么我不久前发布了一篇博客,介绍如何在一维情况下将 F 变换用作通用逼近器:http://iainism-blogism.blogspot.co.uk/2012/01/fuzzy-wuzzy-was.html http://iainism-blogism.blogspot.co.uk/2012/01/fuzzy-wuzzy-was.html
为了了解该方法背后的数学原理并将其扩展到多维情况,俄斯特拉维亚大学发表了一篇博士论文,解释了该方法在各种工程问题中的应用,并提供了如何针对 2D 宇宙情况构建该方法的示例:http://irafm.osu.cz/f/PhD_theses/Stepnicka.pdf http://irafm.osu.cz/f/PhD_theses/Stepnicka.pdf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)