MATLAB ヘルプ センター
このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
シンボリック関数の作成
f(inputs) = formula
f = symfun(formula,inputs)
f = symfun(fM)
f(inputs) = formula はシンボリック関数 f を作成します。たとえば、f(x,y) = x + y を使用すると、inputs 内のシンボリック変数は、入力引数です。シンボリック式 formula は、関数 f の本体です。
f
inputs
formula
f(x,y) = x + y
例
f = symfun(formula,inputs) は、形式に則ったシンボリック関数の作成方法です。
f = symfun(fM) は、symfunmatrix 型のシンボリック行列関数 fM を symfun 型のシンボリック関数 f に変換します。 (R2024b 以降)
fM
symfunmatrix
symfun
すべて折りたたむ
シンボリック関数 f(x,y) = x + y を定義します。まず、syms を使用して関数を作成します。その後、関数を定義します。
syms
syms f(x,y) f(x,y) = x + y
f(x, y) = x+y
x = 1 と y = 2 における f の値を求めます。
x = 1
y = 2
f(1,2)
ans = 3
形式に則った構文を使用して関数を再定義します。
syms x y f = symfun(x+y,[x y])
formula を使用して、シンボリック関数の本体を返します。本体は、関数にインデックスを付けるといった演算に使用できます。argnames を使用して、シンボリック関数の引数を返します。
argnames
シンボリック関数 [x^2, y^4] にインデックスを付けます。シンボリック関数がスカラーであるため、関数に直接インデックス付けができません。代わりに、関数の本体にインデックスを付けます。
[x^2, y^4]
syms f(x,y) f(x,y) = [x^2, y^4]; fbody = formula(f); fbody(1)
ans = x2
fbody(2)
ans = y4
関数の引数を返します。
fvars = argnames(f)
fvars = (xy)
2 つのシンボリック関数を作成します。
syms f(x) g(x) f(x) = 2*x^2 - x; g(x) = 3*x^2 + 2*x;
2 つのシンボリック関数を、データ型が symfun の別のシンボリック関数 h(x) に結合します。
h(x) = [f(x); g(x)]
h(x) = (2 x2-x3 x2+2 x)
(2 x2-x3 x2+2 x)
関数 h(x) を x=1 および x=2 で評価します。
h(1)
ans = (15)
(15)
h(2)
ans = (616)
(616)
また、この 2 つの関数を組み合わせて、データ型が sym のシンボリック式の配列にすることもできます。
sym
h_expr = [f(x); g(x)]
h_expr = (2 x2-x3 x2+2 x)
1 番目と 2 番目のシンボリック式にアクセスするために、h_expr にインデックスを付けます。
h_expr
h_expr(1)
ans = 2 x2-x
h_expr(2)
ans = 3 x2+2 x
R2024b 以降
2 行 1 列および 2 行 2 列のシンボリック行列変数を作成して、行列 X および A を表します。
2
1
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)=XT A X を定義し、その微分 ∂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 = symfun(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 = symfun(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)
(2 A1,1 X1+A1,2 X2+A2,1 X2A1,2 X1+A2,1 X1+2 A2,2 X2)
関数本体。シンボリック式、シンボリック式のベクトル、または sym データ型に変換可能なシンボリック式の行列として指定します。
例: x + y
x + y
関数の入力引数。シンボリック変数、またはシンボリック変数の配列 (複数指定の場合) で指定します。
例: [x,y]
[x,y]
データ型: sym
変換されるシンボリック行列関数。シンボリック行列関数として指定します。
または、symfunmatrix2symfun を使用して、シンボリック行列関数をシンボリック関数に変換することもできます。
symfunmatrix2symfun
データ型: symfunmatrix
シンボリック関数。symfun オブジェクトとして返されます。
関数 f のデータ型は symfun ですが、f(1,2) のような評価済みの関数のデータ型は sym になります。
すべて展開する
symfun を使用して、symfunmatrix 型のシンボリック行列関数を symfun 型のシンボリック関数に変換できます。例については、シンボリック行列関数からシンボリック関数への変換を参照してください。
argnames | formula | matlabFunction | sym | syms | symvar
matlabFunction
symvar
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ