Main Content

jacobian

シンボリック関数のヤコビ行列

説明

jacobian(f,v) は、シンボリック関数 fヤコビ行列v に対して計算します。結果の (i,j) 要素は f(i)v(j) です。

すべて折りたたむ

ベクトル関数のヤコビアンは、その関数の偏導関数の行列です。

ヤコビ行列 [x*y*z,y^2,x + z][x,y,z] について計算します。

syms x y z
jacobian([x*y*z,y^2,x + z],[x,y,z])
ans = 

(yzxzxy02y0101)

次に、ヤコビアン [x*y*z,y^2,x + z][x;y;z] について計算します。

jacobian([x*y*z,y^2,x + z], [x;y;z])
ans = 

(yzxzxy02y0101)

ヤコビ行列は 2 番目の位置に入力するベクトルの方向に対して不変です。

スカラー関数のヤコビアンは、その勾配の転置です。

2*x + 3*y + 4*z のヤコビアンを [x,y,z] について計算します。

syms x y z
jacobian(2*x + 3*y + 4*z,[x,y,z])
ans = (234)

次に、同じ式の勾配を計算します。

gradient(2*x + 3*y + 4*z,[x,y,z])
ans = 

(234)

スカラーについての関数のヤコビアンは、その関数の 1 次導関数です。ベクトル関数では、スカラーについてのヤコビアンは 1 次導関数のベクトルです。

[x^2*y,x*sin(y)] のヤコビアンを x について計算します。

syms x y
jacobian([x^2*y,x*sin(y)],x)
ans = 

(2xysin(y))

次に、導関数を計算します。

diff([x^2*y,x*sin(y)],x)
ans = (2xysin(y))

時間の関数である極座標 r(t)ϕ(t)、および θ(t) を指定します。

syms r(t) phi(t) theta(t)

球面座標から直交座標への座標変換を定義します。

R = [r*sin(phi)*cos(theta), r*sin(phi)*sin(theta), r*cos(phi)]
R(t) = (cos(θ(t))sin(ϕ(t))r(t)sin(ϕ(t))sin(θ(t))r(t)cos(ϕ(t))r(t))

球面座標から直交座標への座標変換のヤコビアンを求めます。

jacobian(R,[r,phi,theta])
ans(t) = 

(cos(θ(t))sin(ϕ(t))cos(ϕ(t))cos(θ(t))r(t)-sin(ϕ(t))sin(θ(t))r(t)sin(ϕ(t))sin(θ(t))cos(ϕ(t))sin(θ(t))r(t)cos(θ(t))sin(ϕ(t))r(t)cos(ϕ(t))-sin(ϕ(t))r(t)0)

入力引数

すべて折りたたむ

スカラーまたはベクトル関数。シンボリック式、シンボリック関数またはベクトルとして指定します。f がスカラーの場合、f のヤコビ行列は f の転置された勾配になります。

ヤコビアンを計算する変数または関数のベクトル。シンボリック変数またはシンボリック関数で指定するか、シンボリック変数のベクトルで指定します。v がスカラーの場合、結果は diff(f,v) の転置と等しくなります。vsym([]) のような空のシンボリック オブジェクトの場合、jacobian は、空のシンボリック オブジェクトを返します。

詳細

すべて折りたたむ

ヤコビ行列

ベクトル関数のヤコビ行列 f = (f1(x1,...,xn),...,fn(x1,...,xn)) は、f の導関数の行列です。

J(x1,xn)=[f1x1f1xnfnx1fnxn]

バージョン履歴

R2006a より前に導入