我得到了函数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 +c
和a, b, c
是固定数字。所以基本上有两件事我想解决:
f
如何取决于数据,即一般表达式(如上所述a*x1 + b*x2^2 +c
)获得
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
部分的窗口左侧。