ドキュメンテーション

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

diff

シンボリック式または関数の微分

説明

diff(F)Fsymvar(F,1) で決まる変数について微分します。

diff(F,var)F を変数 var について微分します。

diff(F,n) は、symvar で決まる変数について Fn 次導関数を計算します。

diff(F,var,n) は、変数 var について Fn 次導関数を計算します。

diff(F,var1,...,varN)F を変数 var1,...,varN について微分します。

微分関数

関数 sin(x^2) の微分を求めます。

syms f(x)
f(x) = sin(x^2);
df = diff(f,x)
df(x) =
2*x*cos(x^2)

x = 2 における微分値を求めます。結果を double に変換します。

df2 = df(2)
df2 =
4*cos(4)
double(df2)
ans =
   -2.6146

特定の変数の微分

次の式の 1 次導関数を求めます。

syms x t
diff(sin(x*t^2))
ans =
t^2*cos(t^2*x)

微分の変数を指定していないため、diff では symvar で定義される既定の変数が使用されます。この式では、既定の変数は x です。

symvar(sin(x*t^2),1)
ans =
x

次に、以下の式の変数 t について 1 次導関数を求めます。

diff(sin(x*t^2),t)
ans =
2*t*x*cos(t^2*x)

一変数式の高階数導関数

次の式の 4 次、5 次および 6 次導関数を求めます。

syms t
d4 = diff(t^6,4)
d5 = diff(t^6,5)
d6 = diff(t^6,6)
d4 =
360*t^2
 
d5 =
720*t
 
d6 =
720

多変数式の特定の変数の高階数導関数

以下の式の変数 y について 2 次導関数を求めます。

syms x y
diff(x*cos(x*y), y, 2)
ans =
-x^3*cos(x*y)

多変数式の既定変数の高階数導関数

x*y の 2 次導関数を計算します。微分の変数を指定しない場合、diff では変数 symvar によって決まる変数が使用されます。この式では、symvar(x*y,1)x を返します。したがって、diffx*yx についての 2 次導関数を計算します。

syms x y
diff(x*y, 2)
ans =
0

入れ子にされた diff の呼び出しを使用し、微分の変数を指定しない場合、diff は呼び出しごとに微分の変数を決定します。たとえば、次のように関数 diff を 2 回呼び出して、式 x*y を微分します。

diff(diff(x*y))
ans =
1

最初の diff の呼び出しでは、x について x*y を微分し、y を返します。2 回目の呼び出しでは、diffy について y を微分し、1 を返します。

したがって、diff(x*y, 2)diff(x*y, x, x) と等価で、diff(diff(x*y))diff(x*y, x, y) と等価です。

混合微分

次の式を変数 xy について微分します。

syms x y
diff(x*sin(x*y), x, y)
ans =
2*x*cos(x*y) - x^2*y*sin(x*y)

また、すべての微分変数を与えることで、高階数混合微分を計算することもできます。

syms x y
diff(x*sin(x*y), x, x, x, y)
ans =
x^2*y^3*sin(x*y) - 6*x*y^2*cos(x*y) - 6*y*sin(x*y)

入力引数

すべて折りたたむ

微分する式または関数。シンボリック式またはシンボリック関数、あるいはシンボリック式やシンボリック関数のベクトルまたは行列として指定します。F がベクトルまたは行列の場合、diffF の各要素を微分し、F と同じサイズのベクトルまたは行列を返します。

微分変数。シンボリック変数として指定します。

微分変数。シンボリック変数として指定します。

微分の階数。非負の整数として指定します。

ヒント

  • 高階数混合微分を計算する場合、微分階数の指定に n は使用しません。代わりに、微分の変数をすべて明示的に指定します。

  • パフォーマンスを向上させるため、diff ではすべての混合微分が可換であると仮定されます。たとえば、次のようになります。

    xyf(x,y)=yxf(x,y)

    工学および科学のほとんどの問題は、この仮定で十分とされます。

  • 多変数式または多変数関数 F を微分の変数を指定せずに微分する場合、入れ子形式で呼び出す diffdiff(F,n) が返す結果が異なる場合があります。これは、入れ子形式の呼び出しでは、微分ステップごとに独自の微分変数が決定され、使用されるためです。diff(F,n) のような呼び出しでは、微分の変数は symvar(F,1) によって微分の変数が決定されると、すべての微分ステップでも使用されます。

  • abs または sign を含む式または関数を微分する場合、引数が実数であることを確認します。abssign の引数が複素数の場合、関数 diff は形式上導関数を計算しますが、abssign は複素数について微分可能ではないため、一般的に結果は有効ではありません。

R2006a より前に導入