首页 文章

matlab:在3d中查找插值函数

提问于
浏览
0

我得到了函数f的数据点:R ^ 3-> R,即我得到 x1, x2, x3 并且对于 x1, x2, x3 的不同值的每个组合,我得到 f 的值 . 例如

x1 = 1:10, x2 = 1:6, x3 = 1:8

然后我得到了 f 的10 * 6 * 8 = 480个值 .

我知道有一个函数 interp3 在3d空间中进行插值,但仅适用于给定的一组查询点 .

现在我的问题:我希望函数 f 有某种通用表达式,即 f(x1,x2,x3) = ... ,其中点表示最适合上述数据的函数,并且是"closed form"表达式 . 例如,如果 x1 中的最佳线性, x2 中的二次和 x3 中的常量,那么 f 将类似于 f(x1,x2,x3) = a*x1 + b*x2^2 +ca, b, c 是固定数字 . 所以基本上有两件事我想解决:

  • f 如何取决于数据,即一般表达式(如上所述 a*x1 + b*x2^2 +c

  • 获取 a,b,c 的最佳值以适合给定数据 .

有没有办法matlab可以解决这个/这两个问题/ s,这样它根据 x1, x2, x3f 计算一个好的函数表达式?如果没有(因为我猜1.很难解决?!)是否有可能'assume' f 有一个给定的形式(如 f(x1,x2,x3) = a*x1^2 + b*x2^2 +c*x3^2 或其他),然后找到适合这个形式的最佳值与给定的数据?

另外现在你看到我不能使用interp3(至少我猜是这样)因为我没有这个'封闭形式'表达式 .

1 回答

  • 0

    据我所知,你想要一个几乎描述你的3D数据的数学表达式 . 可能最适合您的解决方案是MATLAB的表面拟合工具 . 使用 sftool 指令打开表面工具 . 然后插入您的数据 X, Y, Z . 然后从窗口中心的列表中选择 Custom Equation ,然后插入所需的拟合函数,然后只需单击拟合按钮 . 如果没有出错,自定义函数的系数(您的 a,b,c )将显示在 Results 部分的窗口左侧 .

相关问题