【发布时间】:2016-08-17 02:12:48
【问题描述】:
我得到了函数 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) = ...,其中的点表示最适合上述数据的函数,并且是“封闭形式”表达式。例如,如果它在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 有没有办法解决这个/这两个问题,以便它根据x1, x2, x3 为f 计算一个好的函数表达式?如果不是(因为我猜 1. 很难解决?!)是否有可能“假设”f 具有给定的形式(如f(x1,x2,x3) = a*x1^2 + b*x2^2 +c*x3^2 或其他),然后找到适合此的最佳值用给定的数据形成表格?
现在您也看到我不能使用 interp3(至少我猜是这样),因为我没有这种“封闭形式”表达式。
【问题讨论】:
-
非常感谢。我看了看,但显然它仅适用于 1 或 2 维:“要拟合的数据,指定为具有一列(曲线拟合)或两列(曲面拟合)的矩阵”。此外,在“另见”选项卡中没有提到 3d?!看起来“polyfit”仅适用于 1d,不是吗?
-
但这看起来很有希望:de.mathworks.com/matlabcentral/newsreader/view_thread/116762 至少 2. 在我的问题中。 1.我可能必须自己处理?
标签: matlab interpolation