2017-07-07 3 views
0

Iは= [0,1]×[0,1]プロット3D(MATLAB /オクターブで)指定された関数の各成分

f = @(x,y) [-0.5*x + 0.25 ; -0.5*y + 0.25]; 

正方形Qにわたって関数fの各成分をプロットする必要があります私はスカラー関数を使用している場合グラム(一の成分で):

g = @(x,y) -0.5*x + 0.25; 

プロットは、以下で簡単です:

xxx=[0:0.01:1]; 
    yyy=[0:0.01:1]; 
    [xxx yyy]=meshgrid(xxx,yyy); 
    surfc(xxx,yyy,g(xxx,yyy)) 

しかし、どのように私は、ベクトルのfuの各コンポーネントをプロットすることができます同じ集合Qの上の関数f?

f = @(x,y) [-0.5*x + 0.25 ; -0.5*y + 0.25]; 
+0

がどのように出力を想定しますか? f_xはz軸の高さで表され、f_yはカラーマップとして表されますか? f_x、f_yによって定義される各x、y位置にベクトルを持つ2Dベクトルフィールドプロットとして使用できますか? –

答えて

0

あなたはベクトル場として結果を可視化する満足している場合、あなたはこのようにそれを行うことができます。

f = @(z) -0.5 .* z + 0.25; 
[X, Y] = meshgrid (0:0.01:1, 0:0.01:1); 
quiver (X, Y, f(X), f(Y)); 

あなたF_Xとf_yコンポーネントは必ずしも同一でない場合は、分割することができますそれらは、(関数meshgridステップは暗黙の):

f_x = @(x) -0.5 .* x + 0.25; 
f_y = @(y) -0.5 .* y + 0.25; 
quiver (X, Y, f_x(X), f_y(Y)); 

あなたは本当に、は本当に単一の非ベクトル化機能として、それらの両方を持っている必要がある場合は、周りを取得することができますこの使用arrayfun:

f = @(x,y) [-0.5*x + 0.25 ; -0.5*y + 0.25]; 
quiver(X, Y, arrayfun(@(x) f(x,0)(1), X), arrayfun(@(y) f(0,y)(2), Y)); 

結果:

enter image description here

関連する問題