行列に対しても、足し算や引き算などの基本的な演算を、行列をオペランドとして実行することができます。また、行列には、要素ごとの掛け算、要素ごとの割り算、行列同士の連結、要素の指定といった行列固有の演算子もいくつかあります。詳細は、「データ構造」章の「行列」(178ページ)の節を参照してください。
Derivative()関数は、第2引数に指定した変数で、第1引数に指定された式を微分した結果を戻します。この第2引数には1つの変数を指定することも、リストにして複数の変数を指定する(つまり、中括弧{ }で複数の変数名を囲む)こともできます。
メモ: Derivative()関数と同様の機能は、計算式エディタではコマンドとして用意されています。このコマンドは、計算式エディタの上部中央のドロップダウンリストにあります(キーパッドの上)。このコマンドを使用するには、式の中の1つの変数を強調表示(どの変数についての導関数を求めるかを指定)してから、メニューから[微分した式]コマンドを選びます。計算式全体が、強調表示された変数で微分した導関数に置き換わります。
result = Derivative( x ^ 3, x );
Show( result );
ある1つの式から複数の変数に対する導関数を効率的に求めたい場合は、リストに複数の変数を指定してください。一時変数に分割された元の式と、その導関数の式を含むリストが結果として戻されます。必要に応じて、導関数で用いる部分式が、一時変数に割り当てられます。
次の例は、3つの変数が含まれている式の例です。3つの変数をリストに入れると、それぞれの変数に対する第1次導関数を戻します。結果は、元の式と、要求した順に並べた導関数を含むリストになります。ただし、この例において、JMPが式x^2を格納するための一時的な変数T#1を作成し、この一時的な変数を使って計算を省略していることに注意してください。
result2 = Derivative( 3 * y * x ^ 2 + z ^ 3, {x, y, z} );
Show( result2 );
second = Derivative( 3 * y * x ^ 2, {x}, {x} );
Show( second );
second = Derivative( 3 * y * x ^ 2, {y}, {y} );
Show( second );
second = Derivative( 3 * y * x ^ 2, {y}, {x} );
Show( second );
Num Deriv()は、数値微分を行うための関数です。第1引数と、それに小さい値(Δ)を足した値に対する関数値を計算し、その差をΔで割ることにより、1次微分の値を求めます。Num Deriv2()は、同様の方法で2次微分の値を数値的に求めます。これらの関数は、非線形モデルで内部的に使用されますが、JSLで直接利用することは少ないでしょう。これらの関数は変数では微分せず、関数に対する引数についてのみ微分することに注意してください。xについて微分するためには、xを、式の内部に埋め込まれている記号ではなく、関数の中の引数の1つにする必要があります。
x = 3;
n = Num Deriv( 3 * x ^ 2 );
xを関数の中の引数にするのが、正しい方法です。
x = 3;
f = Function( {x}, 3 * x ^ 2 );
n = Num Deriv( f( x ), 1 );
x = 3;
y = Num Deriv( x ^ 2 ); // または、y = Num Deriv( 3 ^ 2 );
x = Num Deriv( Sqrt( 7 ) ); // 0.188982168980445を戻す
y = Num Deriv( Normal Distribution( 1 ) ); // 0.241969514669371を戻す
z = Num Deriv2( Normal Distribution( 1 ) ); // -0.241969777547979を戻す
nameに対するexprの導関数を戻す。第2引数は、中括弧{ }でリストにして指定するか、1つだけの場合は単純に変数として指定できます。2つの導関数をとるときは、2つの名前リストを指定します。
|
||
NumDeriv(expr)
|
式(expr)の最初の引数で、1次微分した結果(1階導関数の値)を数値的に求める。
|
|
NumDeriv2(expr)
|
式(expr)の最初の引数で、2次微分した結果(2階導関数の値)を数値的に求める。
|