シンボリック数、シンボリック変数およびシンボリック式の作成
このページでは、シンボリック数、シンボリック変数およびシンボリック式を作成する方法を説明します。シンボリック数学による処理の詳細は、シンボリック計算の実行を参照してください。
シンボリック数の作成
シンボリック数はsym
を使用して作成できます。シンボリック数は正確な表現であり、浮動小数点数とは異なります。
sym
を使用してシンボリック数を作成し、浮動小数点による同じ数と比較します。
sym(1/3) 1/3
ans = 1/3 ans = 0.3333
シンボリック数は、正確な有理型で表現されます。一方、浮動小数点数は小数近似です。シンボリックな結果はインデントされませんが、標準の MATLAB®の結果はインデントされます。
シンボリック数の計算は正確です。この正確性について、sin(pi)
をシンボリック的および数値的に求めることで示します。シンボリックな結果は正確ですが、数値の結果は近似です。
sin(sym(pi)) sin(pi)
ans = 0 ans = 1.2246e-16
数値のシンボリック表現の詳細は、数値のシンボリックへの変換を参照してください。
シンボリック変数の作成
シンボリック変数の作成には、syms
またはsym
のいずれかを使用できます。これらの関数の標準的な使用法を以下に示します。
sym
- 番号付きシンボリック変数を作成したり、MATLAB 関数のシンボリック変数を作成したりします。syms
– 対話型のシンボリック ワークフロー、つまり MATLAB コマンド ラインまたは MATLAB ライブ スクリプトでのシンボリック変数作成に対して、"新しい" シンボリック変数を作成します。"新しい"シンボリック変数には仮定がありません。
syms
コマンドはsym
構文の省略表現ですが、2 つの関数による仮定の処理は異なります。詳細は、シンボリック オブジェクト名の再利用を参照してください。
syms
とsym
をそれぞれ使用して、シンボリック変数x
とy
を作成します。
syms x y = sym('y')
最初のコマンドは、MATLAB ワークスペースでシンボリック変数x
を作成します。この変数x
には値x
が代入されます。2 番目のコマンドは、値y
を持つシンボリック変数y
を作成します。
syms
では、1 つのコマンドで複数の変数を作成できます。変数a
、b
およびc
を作成します。
syms a b c
番号付きシンボリック変数から成る MATLAB 配列を作成する場合、syms
構文は不便です。したがって、多数の番号付きシンボリック変数の配列を作成するには、代わりにsym
を使用します。
ワークスペースをクリアします。シンボリック変数a1, ..., a20
を含む行ベクトルを作成し、MATLAB 変数A
に割り当てます。MATLAB ワークスペースの変数を表示します。
clearall一个=ym('a', [1 20]) whos
A = [ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,... a11, a12, a13, a14, a15, a16, a17, a18, a19, a20] Name Size Bytes Class Attributes A 1x20 8 sym
A
は 20 個のシンボリック変数から成る1
行20
列の配列です。
sym
とsyms
を組み合わせることにより、多くの新しいシンボリック変数を対応する変数名で MATLAB ワークスペースに作成できます。
ワークスペースをクリアします。新しいシンボリック変数a1, ..., a10
を作成し、それらの変数に MATLAB 変数名a1, ..., a10
をそれぞれ割り当てます。MATLAB ワークスペースの変数を表示します。
clearallsyms(sym('a', [1 10])) whos
Name Size Bytes Class Attributes a1 1x1 8 sym a10 1x1 8 sym a2 1x1 8 sym a3 1x1 8 sym a4 1x1 8 sym a5 1x1 8 sym a6 1x1 8 sym a7 1x1 8 sym a8 1x1 8 sym a9 1x1 8 sym
MATLAB ワークスペースには、シンボリック変数である 10 個の MATLAB 変数が含まれます。
syms
コマンドはsym
構文の手頃な省略表現です。一般的な使用法は、対話型のシンボリック ワークフローに対して新しいシンボリック変数を作成することです。sym
構文を使用して次を作成します。
MATLAB 関数のシンボリック変数
多数の番号付きシンボリック変数
値が MATLAB ワークスペース内の名前と異なっているシンボリック変数
シンボリック数 (
sym(5)
など)以前に使用した同名のシンボリック変数から仮定を継承しているシンボリック変数
シンボリック式の作成
黄金比を表すためにシンボリック変数を使ってみましょう。
次のコマンド
phi = (1 + sqrt(sym(5)))/2;
により、シンボリック変数が作成されます。これで、phi
についてのさまざまな数学演算が実行できます。たとえば、以下のようになります。
f = phi^2 - phi - 1
は以下を返します。
f = (5^(1/2)/2 + 1/2)^2 - 5^(1/2)/2 - 3/2
今度は、2 次関数f
=ax
2+bx
+c
を調べます。まず、シンボリック変数a
、b
、c
、およびx
を作成します。
syms a b c x
次に、式をf
に代入します。
f = a*x^2 + b*x + c;
ヒント
シンボリック数を作成するには、sym
コマンドを使用します。定数のシンボリック表現の作成にsyms
関数は使用しないでください。たとえば、値が5
の式を作成するには、f = sym(5)
を入力します。コマンドf = 5
では、f
はシンボリック式として定義され”ません。”
シンボリック オブジェクト名の再利用
変数をシンボリック式と等価に設定し、syms
コマンドを変数に適用すると、MATLAB ソフトウェアは前に定義した式を変数から除去します。たとえば、以下のようになります。
syms a b f = a + b
は以下を返します。
f = a + b
この後で,次のように入力するとします。
syms f f
すると、MATLAB は式f
から値a + b
を消去します。
f = f
変数から、MATLAB セッションで以前に割り当てていた定義を消去するにはsyms
コマンドを使用できます。syms
は複素数、実数、整数および正数という変数の仮定を消去します。これらの仮定はシンボリック オブジェクトとは別に保存されます。しかし、sym
を使用した変数の再作成ではその仮定は消去されません。詳細は、シンボリック オブジェクトおよびその仮定の削除を参照してください。