メインコンテンツ

symfunmatrix2symfun

R2026b

シンボリック行列関数からシンボリック関数への変換

R2022a 以降

説明

f = symfunmatrix2symfun(fM) は、symfunmatrix 型のシンボリック行列関数 fM を symfun 型のシンボリック関数 f に変換します。

出力シンボリック関数は、入力シンボリック行列関数と同じ行列次元をもち、その成分は自動生成された要素で埋められます。たとえば、syms fM(x) [1 2] matrix; f = symfunmatrix2symfun(fM) は、シンボリック行列関数 fM(x) をシンボリック関数 f(x) = [fM1_1(x), fM1_2(x)] に変換します。生成された要素 fM1_1 および fM1_2 は MATLAB® ワークスペースに表示されません。

例

例

すべて折りたたむ

2 行 1 列および 2 行 2 列のシンボリック行列変数を作成して、行列 X および A を表します。

syms X [2 1] matrix
syms A [2 2] matrix

関数 F(X,A) と ∂F(X,A)/∂XT を表す 2 つのシンボリック行列関数を作成します。シンボリック行列関数を作成するとき、シンボリック行列変数の既存の定義 X および A をワークスペースに保持します。シンボリック行列関数は、入力引数として X および A と同じサイズの行列を必要とします。

syms F(X,A) [1 1] matrix keepargs
syms dF(X,A) [2 1] matrix keepargs

関数 F(X,A)=XTAX を定義し、その微分 ∂F(X,A)/∂XT を求めます。結果のシンボリック関数は、X と A による行列表記になります。

F(X,A) = X.'*A*X
F(X, A) = XT A X
dF(X,A) = diff(F,X.')
dF(X, A) = A X+AT X

シンボリック行列関数をデータ型 symfunmatrix から symfun に変換します。結果のシンボリック関数は、X と A の行列要素によるスカラー表記になります。以下の関数は、入力引数としてスカラーを受け入れます。

Fsymfun = symfunmatrix2symfun(F)
Fsymfun(X1, X2, A1_1, A1_2, A2_1, A2_2) = X1 A1,1 X1+A1,2 X2+X2 A2,1 X1+A2,2 X2
dFsymfun = symfunmatrix2symfun(dF)
dFsymfun(X1, X2, A1_1, A1_2, A2_1, A2_2) = 

(2 A1,1 X1+A1,2 X2+A2,1 X2A1,2 X1+A2,1 X1+2 A2,2 X2)

入力引数

すべて折りたたむ

入力。シンボリック行列関数として指定します。

データ型: symfunmatrix

ヒント

  • シンボリック行列関数を入力として受け入れるすべての関数を Symbolic Math Toolbox™ で表示するには、コマンド methods symfunmatrix を使用します。

  • symfunmatrix2symfun を使用してシンボリック行列関数をシンボリック関数に変換する代わりに、ショートカット symfun を使用できます。例については、シンボリック行列関数からシンボリック関数への変換を参照してください。 (R2024b 以降)

バージョン履歴

R2022a で導入