関数 Z(x,y) に対して Matlab で等高線図を作成する通常の方法は
[X,Y] = meshgrid(-2:.2:2,-2:.2:3);
Z = X.*exp(-X.^2-Y.^2);
(たとえば)
contour(X,Y,Z);
ただし、この方法は次の関数 f(x,y) では機能しません:
h_{ij}(x,y) が大きな (たとえば 100x100) 行列であり、各コンポーネントが (自己定義の) 関数であるとします。 x と y の 別の関数を定義します
f(x,y)=det(h_{ij}(x,y))
関数 f(x,y) の等高線図を作成します。
f=det(h) の行列式では、行列 h の各コンポーネントが数値である必要があります。そのため、x と y がベクトルではなく数値である場合にのみ、Matlab で f(x,y) を計算できます。[X,Y]=meshgrid(...) を使用すると、行列 h の各コンポーネントがベクトルであり、f(X,Y) を計算できないことを意味します。
x と y がベクトル値を取ることができない上記の関数 f(x,y) の等高線図を作成する方法はありますか?