このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
fimplicit3
3 次元の陰的方程式または陰関数のプロット
構文
説明
fimplicit3(
は、f
,[xmin xmax ymin ymax zmin zmax]
)f(x,y,z)
を、x
の区間 [xmin xmax]
、y
の区間 [ymin ymax]
、および z
の区間 [zmin zmax]
でプロットします。関数 fimplicit3
は symvar
を使用して、変数を並べ替え、区間を割り当てます。
fimplicit3(___,
は、1 つ以上の Name,Value
)Name,Value
引数ペアを使用して、ラインのプロパティを指定します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。
fimplicit3(
は、現在の axes オブジェクト ax
,___)gca
ではなくオブジェクト ax
をもつ座標軸にプロットします。
は、陰関数 surface オブジェクトを返します。このオブジェクトを使用して、特定の表面のプロパティのクエリと変更を行います。詳細は、ImplicitFunctionSurface のプロパティ を参照してください。fi
= fimplicit3(___)
例
3 次元陰的シンボリック方程式のプロット
fimplicit3
を使用して双曲面 をプロットします。関数 fimplicit3
は 、、および の既定の区間 をプロットします。
syms x y z fimplicit3(x^2 + y^2 - z^2)
3 次元陰的シンボリック関数のプロット
関数 で指定される双曲面をプロットします。関数 fimplicit3
は 、、および の既定の区間 をプロットします。
syms f(x,y,z)
f(x,y,z) = x^2 + y^2 - z^2;
fimplicit3(f)
プロット区間の指定
fimplicit3
の 2 番目の引数を指定して、プロット区間を指定します。双曲面 の上半分を、区間 を指定してプロットします。 および について、既定の区間 を使用します。
syms x y z f = x^2 + y^2 - z^2; interval = [-5 5 -5 5 0 5]; fimplicit3(f, interval)
タイトルと座標軸ラベルの追加、および目盛りの書式設定
陰的方程式 を、すべての座標軸の の区間でプロットします。
x 軸の範囲を pi/2
の間隔にして、x 軸の目盛りを作成します。round
を使用して座標軸の範囲を pi/2
の倍数に正確に変換し、S
の目盛りのシンボリックな値を取得します。XTick
プロパティを使用して、これらの目盛りを表示します。arrayfun
を使用して texlabel
を S
に適用して、x 軸ラベルを作成します。XTickLabel
プロパティを使用して、これらのラベルを表示します。以上の手順を、y 軸について繰り返します。
プロットに LaTeX を使用する方法については、latex
を参照してください。
syms x y z eqn = x*sin(y) + z*cos(x); fimplicit3(eqn,[-2*pi 2*pi]) title('xsin(y) + zcos(x) for -2\pi < x < 2\pi and -2\pi < y < 2\pi') xlabel('x') ylabel('y') ax = gca; S = sym(ax.XLim(1):pi/2:ax.XLim(2)); S = sym(round(vpa(S/pi*2))*pi/2); ax.XTick = double(S); ax.XTickLabel = arrayfun(@texlabel,S,'UniformOutput',false); S = sym(ax.YLim(1):pi/2:ax.YLim(2)); S = sym(round(vpa(S/pi*2))*pi/2); ax.YTick = double(S); ax.YTickLabel = arrayfun(@texlabel, S, 'UniformOutput', false);
陰関数表面プロットのライン スタイルおよび幅
の異なる値に対し異なるライン スタイルを使用して、陰関数表面 をプロットします。 に対しては、緑のドット マーカー付きの破線を使用します。 に対しては、LineWidth
に 1
を、面の色に緑を使用します。 について、EdgeColor
を none
に設定してラインを非表示にします。
syms x y z f = x^2 + y^2 - z^2; fimplicit3(f,[-5 5 -5 5 -5 -2],'--.','MarkerEdgeColor','g') hold on fimplicit3(f,[-5 5 -5 5 -2 2],'LineWidth',1,'FaceColor','g') fimplicit3(f,[-5 5 -5 5 2 5],'EdgeColor','none')
陰関数表面の作成後の変更
陰関数表面 をプロットします。fimplicit3
がプロット オブジェクトを返すように出力を指定します。
syms x y z f = 1/x^2 - 1/y^2 + 1/z^2; fi = fimplicit3(f)
fi = ImplicitFunctionSurface with properties: Function: 1/x^2 - 1/y^2 + 1/z^2 EdgeColor: [0 0 0] LineStyle: '-' FaceColor: 'interp' Show all properties
fi
の XRange
プロパティを [0 5]
に設定して、正の x 軸のみを表示します。EdgeColor
プロパティを 'none'
に設定してラインを削除します。FaceAlpha
プロパティを 0.8
に設定してプロットを透明にし、隠れた表面を可視化します。
fi.XRange = [0 5];
fi.EdgeColor = 'none';
fi.FaceAlpha = 0.8;
陰関数表面プロットの解像度の制御
'MeshDensity'
オプションを使用して、陰関数表面プロットの解像度を制御します。'MeshDensity'
を増やすとプロットがより滑らかで正確になり、'MeshDensity'
を減らすとプロット速度が上がります。
subplot
を使用して、Figure を 2 つに分割します。最初のサブプロットでは、陰関数表面 をプロットします。表面には大きなギャップがあります。第 2 サブプロットで 'MeshDensity'
を 40
に増やしてこの問題を修正します。fimplicit3
によってギャップが埋められます。これは、'MeshDensity'
を増やすとプロットの解像度が向上することを示します。
syms x y z f = sin(1/(x*y*z)); subplot(2,1,1) fimplicit3(f) title('Default MeshDensity = 35') subplot(2,1,2) fimplicit3(f,'MeshDensity',40) title('Increased MeshDensity = 40')
回転と陰関数表面のプロットへの平行移動の適用
トーラスの陰関数表面のプロットに回転と平行移動を適用します。
トーラスは直交座標の陰的な式で次のように定義できます。
ここで、
はチューブの半径、
はチューブの中心からトーラスの中心までの距離です。
および の値をそれぞれ 1 および 5 に定義します。fimplicit3
を使用してトーラスをプロットします。
syms x y z a = 1; R = 4; f(x,y,z) = (x^2+y^2+z^2+R^2-a^2)^2 - 4*R^2*(x^2+y^2); fimplicit3(f) hold on
トーラスに 軸周りの回転を適用します。回転行列を定義します。トーラスを 90 度または ラジアンの角度で回転します。トーラスの中心を、 軸に沿って 5 シフトします。
alpha = pi/2; Rx = [1 0 0; 0 cos(alpha) sin(alpha); 0 -sin(alpha) cos(alpha)]; r = [x; y; z]; r_90 = Rx*r; g = subs(f,[x,y,z],[r_90(1)-5,r_90(2),r_90(3)]);
既存のグラフに、回転し平行移動したトーラスの 2 番目のプロットを追加します。
fimplicit3(g)
axis([-5 10 -5 10 -5 5])
hold off
入力引数
f
— プロット対象の 3 次元の陰的方程式または陰関数
シンボリック方程式 | シンボリック式 | シンボリック関数
プロット対象の 3 次元の陰的方程式または陰関数。シンボリック方程式、シンボリック式またはシンボリック関数のいずれかとして指定します。式または関数が指定される場合、fimplicit3
は右辺のサイズは 0
と仮定されます。
[min max]
— x、y、z 軸のプロット区間
[–5 5] (既定値) | 2 つの数値のベクトル
x、y、z 軸のプロット区間。2 つの数値のベクトルとして指定します。既定値は [-5 5]
です。
[xmin xmax ymin ymax zmin zmax]
— x、y、z 軸のプロット区間
[–5 5 –5 5 –5 5] (既定値) | 6 つの数値のベクトル
x、y、z 軸のプロット区間。6 つの数値のベクトルとして指定します。既定値は [-5 5 -5 5 -5 5]
です。
ax
— axes オブジェクト
axes オブジェクト
axes オブジェクト。axes オブジェクトを指定しない場合、fimplicit3
は現在の座標軸を使用します。
LineSpec
— ライン スタイル、マーカー、色
string | 文字ベクトル
ライン スタイル、マーカー、色。記号を含む string または文字ベクトルとして指定します。記号の順序は任意です。3 つの特性すべて (ライン スタイル、マーカー、色) を指定する必要はありません。たとえば、ライン スタイルを省略してマーカーを指定すると、プロットにはマーカーのみが表示され、ラインは表示されません。
例: "--or"
は円マーカーをもつ赤い破線
ライン スタイル | 説明 | 結果として得られるライン |
---|---|---|
"-" | 実線 |
|
"--" | 破線 |
|
":" | 点線 |
|
"-." | 一点鎖線 |
|
マーカー | 説明 | 結果として得られるマーカー |
---|---|---|
"o" | 円 |
|
"+" | プラス記号 |
|
"*" | アスタリスク |
|
"." | 点 |
|
"x" | 十字 |
|
"_" | 横線 |
|
"|" | 縦線 |
|
"square" | 正方形 |
|
"diamond" | 菱形 |
|
"^" | 上向き三角形 |
|
"v" | 下向き三角形 |
|
">" | 右向き三角形 |
|
"<" | 左向き三角形 |
|
"pentagram" | 星形五角形 |
|
"hexagram" | 星形六角形 |
|
色の名前 | 省略名 | RGB 3 成分 | 外観 |
---|---|---|---|
"red" | "r" | [1 0 0] | |
"green" | "g" | [0 1 0] | |
"blue" | "b" | [0 0 1] | |
"cyan" | "c" | [0 1 1] | |
"magenta" | "m" | [1 0 1] | |
"yellow" | "y" | [1 1 0] | |
"black" | "k" | [0 0 0] | |
"white" | "w" | [1 1 1] | |
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は関係ありません。
R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name
を引用符で囲みます。
例: 'Marker','o','MarkerFaceColor','red'
ここでは、プロパティの一部だけを紹介しています。一覧については、ImplicitFunctionSurface のプロパティ を参照してください。
MeshDensity
— 方向ごとの評価点の数
35 (既定値) | 数値
方向ごとの評価点の数。数値として指定します。既定値は 35
です。
例: 100
EdgeColor
— ラインの色
[0 0 0]
(既定値) | 'interp'
| RGB 3 成分 | 16 進数のカラー コード | 'r'
| 'g'
| 'b'
| ...
ラインの色。'interp'
、RGB 3 成分、16 進数のカラー コード、色の名前、または省略名として指定します。既定の RGB 3 成分の値 [0 0 0]
は、黒に相当します。値 'interp'
を指定すると ZData
の値に基づいてエッジをカラーリングします。
カスタム色には、RGB 3 成分または 16 進数のカラー コードを指定します。
RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度は
[0,1]
の範囲でなければなりません。たとえば[0.4 0.6 0.7]
のようになります。16 進数のカラー コードは、ハッシュ記号 (
#
) の後に 3 つまたは 6 つの0
からF
までの範囲の 16 進数の桁を続けた文字ベクトルまたは string スカラーです。この値では大文字と小文字は区別されません。そのため、カラー コード"#FF8800"
、"#ff8800"
、"#F80"
、および"#f80"
は等価です。
あるいは、一般的な色を名前で指定できます。この表は、名前の付いた色のオプションと、等価な RGB 3 成分および 16 進数のカラー コードの一覧です。
色の名前 | 省略名 | RGB 3 成分 | 16 進数のカラー コード | 外観 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" | |
"none" | 適用不可 | 適用不可 | 適用不可 | 色なし |
MATLAB® で多くの種類のプロットで使用されている既定の色の RGB 3 成分および 16 進数のカラー コードを次に示します。
RGB 3 成分 | 16 進数のカラー コード | 外観 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
LineStyle
— ライン スタイル
"-"
(既定値) | "--"
| ":"
| "-."
| "none"
ライン スタイル。次の表のいずれかのオプションに指定します。
ライン スタイル | 説明 | 結果として得られるライン |
---|---|---|
"-" | 実線 |
|
"--" | 破線 |
|
":" | 点線 |
|
"-." | 一点鎖線 |
|
"none" | ラインなし | ラインなし |
LineWidth
— ライン幅
0.5
(既定値) | 正の値
ライン幅。ポイント単位の正の値として指定します。1 ポイント = 1/72 インチです。ラインがマーカーをもつ場合、ライン幅はマーカー エッジにも影響します。
ライン幅はピクセルの幅よりも細くすることはできません。ライン幅をシステムのピクセル幅よりも小さい値に設定すると、線は 1 ピクセルの幅で表示されます。
Marker
— マーカー記号
"none"
(既定値) | "o"
| "+"
| "*"
| "."
| ...
マーカー記号。この表にリストされたいずれかの値として指定します。既定では、オブジェクトにマーカーが表示されません。マーカー記号を指定すると、各データ点または頂点にマーカーが追加されます。
マーカー | 説明 | 結果として得られるマーカー |
---|---|---|
"o" | 円 |
|
"+" | プラス記号 |
|
"*" | アスタリスク |
|
"." | 点 |
|
"x" | 十字 |
|
"_" | 横線 |
|
"|" | 縦線 |
|
"square" | 正方形 |
|
"diamond" | 菱形 |
|
"^" | 上向き三角形 |
|
"v" | 下向き三角形 |
|
">" | 右向き三角形 |
|
"<" | 左向き三角形 |
|
"pentagram" | 星形五角形 |
|
"hexagram" | 星形六角形 |
|
"none" | マーカーなし | 適用不可 |
MarkerEdgeColor
— マーカーの輪郭の色
'auto'
(既定値) | RGB 3 成分 | 16 進数のカラー コード | 'r'
| 'g'
| 'b'
| ...
マーカーの輪郭の色。'auto'
、RGB 3 成分、16 進数のカラー コード、色の名前、または省略名として指定します。既定値 'auto'
では EdgeColor
プロパティと同じ色が使用されます。
カスタム色には、RGB 3 成分または 16 進数のカラー コードを指定します。
RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度は
[0,1]
の範囲でなければなりません。たとえば[0.4 0.6 0.7]
のようになります。16 進数のカラー コードは、ハッシュ記号 (
#
) の後に 3 つまたは 6 つの0
からF
までの範囲の 16 進数の桁を続けた文字ベクトルまたは string スカラーです。この値では大文字と小文字は区別されません。そのため、カラー コード"#FF8800"
、"#ff8800"
、"#F80"
、および"#f80"
は等価です。
あるいは、一般的な色を名前で指定できます。この表は、名前の付いた色のオプションと、等価な RGB 3 成分および 16 進数のカラー コードの一覧です。
色の名前 | 省略名 | RGB 3 成分 | 16 進数のカラー コード | 外観 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" | |
"none" | 適用不可 | 適用不可 | 適用不可 | 色なし |
MATLAB で多くの種類のプロットで使用されている既定の色の RGB 3 成分および 16 進数のカラー コードを次に示します。
RGB 3 成分 | 16 進数のカラー コード | 外観 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
例: [0.5 0.5 0.5]
例: 'blue'
例: '#D2F9A7'
MarkerFaceColor
— マーカーの塗りつぶし色
'none'
(既定値) | 'auto'
| RGB 3 成分 | 16 進数のカラー コード | 'r'
| 'g'
| 'b'
| ...
マーカーの塗りつぶし色。'auto'
、RGB 3 成分、16 進数のカラー コード、色の名前、または省略名として指定します。'auto'
の値には MarkerEdgeColor
プロパティと同じ色が使用されます。
カスタム色には、RGB 3 成分または 16 進数のカラー コードを指定します。
RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度は
[0,1]
の範囲でなければなりません。たとえば[0.4 0.6 0.7]
のようになります。16 進数のカラー コードは、ハッシュ記号 (
#
) の後に 3 つまたは 6 つの0
からF
までの範囲の 16 進数の桁を続けた文字ベクトルまたは string スカラーです。この値では大文字と小文字は区別されません。そのため、カラー コード"#FF8800"
、"#ff8800"
、"#F80"
、および"#f80"
は等価です。
あるいは、一般的な色を名前で指定できます。この表は、名前の付いた色のオプションと、等価な RGB 3 成分および 16 進数のカラー コードの一覧です。
色の名前 | 省略名 | RGB 3 成分 | 16 進数のカラー コード | 外観 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" | |
"none" | 適用不可 | 適用不可 | 適用不可 | 色なし |
MATLAB で多くの種類のプロットで使用されている既定の色の RGB 3 成分および 16 進数のカラー コードを次に示します。
RGB 3 成分 | 16 進数のカラー コード | 外観 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
例: [0.3 0.2 0.1]
例: 'green'
例: '#D2F9A7'
MarkerSize
— マーカー サイズ
6
(既定値) | 正の値
マーカー サイズ。ポイント単位の正の値として指定します。1 ポイント = 1/72 インチです。
出力引数
fi
— 1 つ以上のオブジェクト
スカラー | ベクトル
1 つ以上のオブジェクト。スカラーまたはベクトルとして返されます。オブジェクトは、陰関数 surface オブジェクトです。これらのオブジェクトを使用して、特定のラインのプロパティのクエリと変更を行います。詳細は、ImplicitFunctionSurface のプロパティ を参照してください。
アルゴリズム
fimplicit3
は f
のシンボリック変数を x
軸、y
軸、および z
軸に割り当て、symvar
は割り当てられる変数の順番を決定します。そのため、変数名と軸名が対応しない場合があります。fimplicit3
が x、y または z を対応する軸に割り当てるように強制するには、プロットするシンボリック関数を作成し、そのシンボリック関数を fimplicit3
に渡します。
たとえば、次のコードは陰関数 f(x,y,z) = x + z のルートを 2 つの方法でプロットします。1 つ目の方法では、fimplicit3
が x および z を対応する軸に割り当てるように強制します。2 つ目の方法では、fimplicit3
は symvar
に従って変数の順番と軸の割り当てを決定します。fimplicit3
は x および z を、それぞれ x 軸および y 軸に割り当てます。
syms x y z; f(x,y,z) = x + z; figure; subplot(2,1,1) fimplicit3(f); view(-38,71); subplot(2,1,2) fimplicit3(f(x,y,z)); % Or fimplicit3(x + z);

バージョン履歴
R2016b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)