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



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

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

那么我得到了10*6*8=480的f值。

我知道有一个函数interp3在3d空间中做插值,但只针对给定的查询点集。

现在我的问题:我想对函数f有某种一般表达式,即像f(x1,x2,x3) = ...这样的东西,其中点表示最适合上述数据的函数,并且是一个"封闭形式"表达式。例如,如果它最适合x1的线性,x2的二次和x3的常数,那么f将类似f(x1,x2,x3) = a*x1 + b*x2^2 +ca, b, c是固定数字。所以基本上有两件事我想解决:

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

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

是否有一种方法matlab可以解决这个/这两个问题/s,这样它就可以根据x1, x2, x3计算f的良好函数表达式?如果不是(因为我想我。很难解决?!)是否有可能"假设"f具有给定的形式(如f(x1,x2,x3) = a*x1^2 + b*x2^2 +c*x3^2或其他东西),然后找到适合此形式的最佳值与给定数据?

现在你也看到,我不能使用interp3(至少我猜是这样),因为我没有这个"封闭形式"的表达式。

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

最新更新