在Matlab 2D内插的函数形式

问题描述 投票:2回答:3

我需要从数据的2D阵列构造的内插函数。我需要的东西的原因,它返回一个实际的功能,我需要能够评估的功能,我需要数值积分表达式的一部分。

出于这个原因,“interp2”不剪:它不返回的功能。

我可以用“TriScatteredInterp”,但那是重量级的:我的网格是等距的(和大);所以我不需要德劳内triangularisation。

是否有其它方法吗?

matlab interpolation
3个回答
5
投票

(道歉的“晚”的答案,但我有一些建议,可以帮助别人,如果现有的答案并不能帮助他们)

这不是从你的问题明确所产生的作用,如何准确需要为(或有多大,“大”是),但你可以采取一种方法是退步,你已经使用最小二乘数据点或卡尔曼滤波器 - 基础的方法。你需要有一些候选函数形式要做到这一点,然后选择一个是“最好的”,例如通过使用措施,如MAE或MSE。

当然,这需要什么样的形式基本功能可能会有一些想法,但你的问题是不明确的,你是否有这方面的信息。

可以工作(和不需要什么样的底层函数可能是知识),另一种方法是使用模糊变换(F变换)来生成线段提供本地近似表面。

造成这种情况的方法是:

  1. 定义一个2D宇宙,其包括输入数据的x和y域
  2. 创建这个宇宙的二维模糊划分 - 即给你所需要的精度艇员选拔分区大小
  3. 应用离散使用输入数据来生成在3D空间模糊模糊数据点的F-变换
  4. 通过逆F-转化为一个功能手柄(与模糊数据点一起)到您的集成功能

如果你不熟悉的F-变换然后我发表了一篇博客前一阵子关于如何可以用作在一维情况下,通用逼近F-变换:http://iainism-blogism.blogspot.co.uk/2012/01/fuzzy-wuzzy-was.html

看到数学的方法背后并将其扩展到多维情况,那么Ostravia大学出版的博士论文,介绍其应用到各种工程问题,也提供了它是如何构建一个二维宇宙的情况的一个例子: http://irafm.osu.cz/f/PhD_theses/Stepnicka.pdf


3
投票

如果你想要一个功能手柄,为什么不将f = @(XI,YI)interp2(X,Y,Z,XI,YI)?这可能是一个有点慢,但我认为它应该工作。


0
投票

如果我理解正确的话,你要执行2-d数据的表面/线积分。有办法做到这一点,但也许不是你想要的方式。我有完全相同的问题,这很烦人!我解决的唯一方法它是使用Surface Fitting Tool (sftool)创建一个表面,然后它整合。

您使用的工具(它有一个GUI和)创建合适后,就会产生一个sftool对象,然后可以(2-d)使用quad2d整合

我也想你使用interp2的方法,并得到了结果(这是类似于sfobject),但我不知道该怎么做数值积分(线/面)与数据。创建thesfobject然后它整合快得多。

这是我第一次做这样的事情,所以我证实,它使用数字估计行积分。据斯托克的定理,表面积分和线积分应该是相同的,它也变成是相同的。

我问this问题在数学stackexchange,想干2-d数据线积分,最终做一个曲面积分,然后用线积分确定的答案!

© www.soinside.com 2019 - 2024. All rights reserved.