最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fimplicit

陰的シンボリック方程式または陰的シンボリック関数のプロット

説明

fimplicit(f) は、陰的シンボリック方程式または陰的シンボリック関数 fxy の既定の区間 [-5 5] でプロットします。

fimplicit(f,[min max]) は、f を区間 min < x < max および min < y < max でプロットします。

fimplicit(f,[xmin xmax ymin ymax]) は、f を区間 xmin < x < xmax および ymin < y < ymax でプロットします。関数 fimplicitsymvar を使用して、変数を並べ替え、区間を割り当てます。

fimplicit(___,LineSpec) は、LineSpec を使用してライン スタイル、マーカー記号、ラインの色を設定します。

fimplicit(___,Name,Value) は、1 つ以上の Name,Value 引数ペアを使用して、ラインのプロパティを指定します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。Name,Value ペアの設定はプロットされたすべてのラインに適用されます。個々のラインにオプションを設定するには、fimplicit によって返されるオブジェクトを使用します。

fimplicit(ax,___) は、現在の座標軸 gca ではなく ax によって指定される座標軸にプロットします。

fi = fimplicit(___) は、陰関数 line オブジェクトを返します。このオブジェクトを使用して、特定のラインのプロパティのクエリと変更を行います。詳細は、ImplicitFunctionLine のプロパティ を参照してください。

すべて折りたたむ

fimplicit を使用して双曲線 x2-y2=1 をプロットします。関数 fimplicitx および y の既定の区間 [-5,5] を使用します。

syms x y
fimplicit(x^2 - y^2 == 1)

関数 f(x,y)=x2-y2-1 で記述される双曲線をプロットする場合、最初に syms を使用してシンボリック関数 f(x,y) を宣言します。関数 fimplicitx および y の既定の区間 [-5,5] を使用します。

syms f(x,y)
f(x,y) = x^2 - y^2 - 1;
fimplicit(f)

半円 x2+y2=3 を、-4<x<0-2<y<2 の区間でプロットします。プロット区間は、fimplicit の 2 番目の引数として指定します。

syms x y
circle = x^2 + y^2 == 3;
fimplicit(circle, [-4 0 -2 2])

入力をベクトルとして渡すか、または hold on を使用すると、複数の方程式を連続して同じ Figure にプロットできます。LineSpec および名前と値の引数を指定すると、すべてのラインに適用されます。個々のプロットにオプションを設定するには、fimplicit によって返される関数ハンドルを使用します。

subplot を使用して、Figure を 2 つのサブプロットに分割します。第 1 サブプロットで、ベクトル入力を使用して x2+y2==1x2+y2==3 をプロットします。第 2 サブプロットで、hold on を使用して同じ入力をプロットします。

syms x y
circle1 = x^2 + y^2 == 1;
circle2 = x^2 + y^2 == 3;

subplot(2,1,1)
fimplicit([circle1 circle2])
title('Multiple Equations Using Vector Input')

subplot(2,1,2)
fimplicit(circle1)
hold on
fimplicit(circle2)
title('Multiple Equations Using hold on Command')

hold off

直径が増加する同心円を 3 つプロットします。最初のラインにはライン幅 2 を使用します。2 番目には丸いマーカーをもつ赤い破線のライン スタイルを使用します。3 番目にはアスタリスクのマーカーをもつシアンの一点鎖線のライン スタイルを使用します。凡例を表示します。

syms x y
circle = x^2 + y^2;
fimplicit(circle == 1, 'Linewidth', 2)
hold on
fimplicit(circle == 2, '--or')
fimplicit(circle == 3, '-.*c')
legend('show','Location','best')
hold off

ysin(x)+xcos(y)=1 をプロットします。fimplicit がプロット オブジェクトを返すように出力を指定します。

syms x y
eqn = y*sin(x) + x*cos(y) == 1;
fi = fimplicit(eqn)

fi = 
  ImplicitFunctionLine with properties:

     Function: [1x1 sym]
        Color: [0 0.4470 0.7410]
    LineStyle: '-'
    LineWidth: 0.5000

  Show all properties

ドット表記を使用してプロパティを設定することにより、プロットされた方程式を xcos(y)+ysin(x)=0 に変更します。同様に、ラインの色を赤に、ライン スタイルを一点鎖線に変更します。出力にある横縦のラインはアーティファクトであり、無視されます。

fi.Function = x/cos(y) + y/sin(x) == 0;
fi.Color = 'r';
fi.LineStyle = '-.';

xcos(y)+ysin(x)=1 を区間 -2π<x<2π および -2π<y<2π にプロットします。タイトルと座標軸ラベルを追加します。x 軸の範囲を pi/2 の間隔にして、x 軸の目盛りを作成します。XTick プロパティを使用して、これらの目盛りを表示します。arrayfun を使用して texlabelS に適用して、x 軸ラベルを作成します。XTickLabel プロパティを使用して、これらのラベルを表示します。以上の手順を、y 軸について繰り返します。

プロットに LaTeX を使用する方法については、latexを参照してください。

syms x y
eqn = x*cos(y) + y*sin(x) == 1;
fimplicit(eqn, [-2*pi 2*pi])
grid on
title('x cos(y) + y sin(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));
ax.XTick = double(S);
ax.XTickLabel = arrayfun(@texlabel, S, 'UniformOutput', false);

S = sym(ax.YLim(1):pi/2:ax.YLim(2));
ax.YTick = double(S);
ax.YTickLabel = arrayfun(@texlabel, S, 'UniformOutput', false);

プロットにズーム インすると、fimplicit はプロットを自動的に再評価します。このズームでの再評価を使用すると、より小さなスケールでは表示されていなかった細部が明らかになる可能性があります。

subplot を使用して、Figure を 2 つに分割します。第 1 サブプロットと第 2 サブプロットの両方で xcos(y)+ysin(1/x)=0 をプロットします。zoom を使用して第 2 サブプロットを拡大します。拡大したサブプロットには第 1 サブプロットに表示されていない細部が表示されます。

syms x y
eqn = x*cos(y) + y*sin(1/x) == 0;

subplot(2,1,1)
fimplicit(eqn)

subplot(2,1,2)
fimplicit(eqn)
zoom(2)

入力引数

すべて折りたたむ

プロット対象の陰的方程式または陰関数。シンボリック方程式、シンボリック式またはシンボリック関数として指定します。右辺が指定されない場合、それは 0 であると仮定されます。

xy のプロット範囲。2 つの数値のベクトルとして指定します。既定の範囲は、[-5 5] です。

xy のプロット範囲。4 つの数値のベクトルとして指定します。既定の範囲は、[-5 5 -5 5] です。

axes オブジェクト。axes オブジェクトを指定しない場合、fimplicit は現在の座標軸 gca を使用します。

ライン仕様。ライン スタイル、マーカー、色が含まれる文字ベクトルまたは string として指定します。要素は任意の順でかまいません。1 つ以上のオプションを省略することも可能です。マーカーのみを表示して接続線は表示しない場合、マーカーを指定して、ライン スタイルを省略します。

例: 'r--o' は赤色、破線、丸いマーカーを指定

ライン スタイル指定子説明
-実線 (既定の設定)
--破線
:点線
-.一点鎖線
マーカー指定子説明
o
+プラス記号
*アスタリスク
.
x十字
s正方形
d菱形
^上向き三角形
v下向き三角形
>右向き三角形
<左向き三角形
p星形五角形
h星形六角形
色指定子説明

y

m

マゼンタ

c

シアン

r

g

b

w

k

名前と値のペアの引数

引数 Name,Value のオプションのコンマ区切りペアを指定します。Name は引数名、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: 'Marker','o','MarkerFaceColor','red'

ここでは、関数ラインのプロパティの一部だけを紹介しています。一覧については、ImplicitFunctionLine のプロパティ を参照してください。

方向ごとの評価点の数。数値として指定します。既定値は 151 です。

ラインの色。RGB 3 成分、16 進数のカラー コード、色の名前、または省略名として指定します。

カスタム色には、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'

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'

例: 'blue'

例: [0 0 1]

例: '#0000FF'

ライン スタイル。次の表のいずれかのオプションに指定します。

ライン スタイル説明結果として得られるライン
'-'実線

'--'破線

':'点線

'-.'一点鎖線

'none'ラインなしラインなし

ライン幅。ポイント単位の正の値として指定します。1 ポイント = 1/72 インチです。ラインがマーカーをもつ場合、ライン幅はマーカー エッジにも影響します。

マーカー記号。次の表のいずれかの値を指定します。既定では、ラインにマーカーはありません。マーカーを指定することで、ライン上の選択した点にマーカーが追加されます。

説明
'o'
'+'プラス記号
'*'アスタリスク
'.'
'x'十字
'square' または 's'正方形
'diamond' または 'd'菱形
'^'上向き三角形
'v'下向き三角形
'>'右向き三角形
'<'左向き三角形
'pentagram' または 'p'星形五角形
'hexagram' または 'h'星形六角形
'none'マーカーなし

マーカーの輪郭の色。'auto'、RGB 3 成分、16 進数のカラー コード、色の名前、または省略名として指定します。'auto' の既定値では Color プロパティと同じ色が使用されます。

カスタム色には、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'

マーカーの塗りつぶし色。'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'

マーカー サイズ。ポイント単位の正の値として指定します。1 ポイント = 1/72 インチです。

出力引数

すべて折りたたむ

1 つ以上の陰関数 line オブジェクト。スカラーまたはベクトルとして返されます。これらのオブジェクトを使用して、特定のラインのプロパティのクエリと変更を行います。プロパティの一覧については、ImplicitFunctionLine のプロパティ を参照してください。

アルゴリズム

fimplicitf のシンボリック変数を x 軸に、次に y 軸に割り当て、symvar は割り当てられる変数の順番を決定します。そのため、変数名と軸名が対応しない場合があります。fimplicit が x または y を対応する軸に割り当てるように強制するには、プロットするシンボリック関数を作成し、そのシンボリック関数を fimplicit に渡します。

たとえば、次のコードは陰関数 f(x,y) = sin(y) のルートを 2 つの方法でプロットします。1 つ目の方法では、y 軸に対して波形を振動させます。2 つ目の方法では、y を x 軸に割り当てます。これがシンボリック関数内で最初の (および唯一の) 変数であるためです。

syms x y;
f(x,y) = sin(y);
intvl = [-6 6]*pi;

figure;
subplot(2,1,1)
fimplicit(f,intvl);
subplot(2,1,2)
fimplicit(f(x,y),intvl); % Or fimplicit(sin(y) == 0,intvl);

R2016b で導入