1

给定 100x100 矩阵,其中每个元素表示空间中的函数值,我想找到函数 f(x, y) = A + B x + C y + D X^的参数值 A、B、C、D、E 2+E y^2 最适合给定矩阵值,其中 x 表示行号,y 表示列号

为了说明一个更小的例子的目的,假设我们有一个 3x3 矩阵 T:

T = [0.1 0.2 0.1; 0.8, 0.6, 0.5; 0.1, 0, 1]

在这种情况下,f(1,1) = 0.1 和 f(3,2)= 0。

具体来说,我想为其找到拟合函数(曲面)的矩阵值显示在下图中:

在此处输入图像描述

如果有人提出一种方法来找到最适合给定矩阵的 3D 函数,我将不胜感激。

编辑

是否可以直接找到一个拟合,或者是否有必要(或更好)首先将数据表示为矩阵 [X, Y, f(X,Y)]:

vals = []
for(i = 1: 100)
for j = 1 : 100
if(T(i,j) ~= 0)
vals = [vals;i, j, T(i,j)];
end;
end;
end;
4

1 回答 1

1

这些家伙似乎已经做到了这一点:

http://www.mathworks.com/matlabcentral/newsreader/view_thread/134076

x = % vector of x values
y = % vector of y values
z = % f(x,y)

V = [1 x y x.^2 x.*y y.^2];
a = V \ z ;

帮助页面

  • 如果 A 是 m ~= n 的 m×n 矩形矩阵,B 是具有 m 个元素的列向量或具有 m 行的矩阵,则 A\B 返回方程组 A* 的最小二乘解x = B。
于 2013-02-15T19:45:44.997 回答