0

我正在尝试绘制 x^TAx-b^Tx 形式的函数的等高线图,其中 $x$ 是二维向量,A 是 2x2 矩阵。我尝试使用以下代码进行绘图:

[x,y] = meshgrid(-5:0.1:5, -5:0.1:5);
z = x'*A*x - b'*x;
contourf(x,y,z);

显然这不起作用,因为这存在一些尺寸问题。但是我怎么能做这种等高线图呢?

4

1 回答 1

0

z 计算中的 x 是一个点的 x 和 y 坐标的向量,而不是您使用的 x 坐标矩阵。此代码获取每个点的 x 和 y 坐标,计算该点的 z,然后将其放回正确大小的矩阵中。

[x,y] = meshgrid(-5:0.1:5, -5:0.1:5);
X=[x(:)';y(:)'];
for i=1:length(X)       
    z(i) = X(:,i)'*A*X(:,i) - b*X(:,i);
end
z=reshape(z,size(x));
contourf(x,y,z);
于 2013-10-28T01:04:09.870 回答