Jacobian¶
関数¶
関数はいずれもtlnc
名前空間に属する。
引数のvector<Exprs...>
はベクトルを返す関数を表していて、
いずれも行列を返す関数を返す。
偏微分にはDerivativeを使っている。
-
jacobian
<N>(vector<Exprs...>)¶
-
jacobian
<N>(Exprs&&...)¶ x<0>
からx<N - 1>
のN個の変数を使ってヤコビ行列を生成する。
-
jacobian
<I, N>(vector<Exprs...>)¶
-
jacobian
<I, N>(Exprs&&...)¶ x<I>
からx<I + N - 1>
のN個の変数を使ってヤコビ行列を生成する。
-
jacobian
(vector<Exprs...>, vector<Xs...>)¶
使い方¶
using tlnc::x;
auto f = x<0>;
auto g = x<1>;
auto h = x<2>;
// ベクトルを返す関数
auto a = (f, g, h);
// x<0>, x<1>, x<2>を使ってヤコビ行列を作る
tlnc::jacobian<3>(a);
tlnc::jacobian<3>(f, g, h);
// x<1>, x<2>を使ってヤコビ行列を作る
tlnc::jacobian<1, 2>(a);
tlnc::jacobian<1, 2>(f, g, h);
// x<0>, x<2>を使ってヤコビ行列を作る
tlnc::jacobian(a, (x<0>, x<2>));
tlnc::jacobian((f, g, h), (x<0>, x<2>));