最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

シンボリック数、シンボリック変数およびシンボリック式の作成

このページでは、シンボリック数、シンボリック変数およびシンボリック式を作成する方法を説明します。シンボリック数学による処理の詳細は、シンボリック計算の実行を参照してください。

シンボリック数の作成

シンボリック数は 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 つの関数による仮定の処理は異なります。詳細は、シンボリック オブジェクト名の再利用を参照してください。

symssym をそれぞれ使用して、シンボリック変数 xy を作成します。

syms x
y = sym('y')

最初のコマンドは、MATLAB ワークスペースでシンボリック変数 x を作成します。この変数 x には値 x が代入されます。2 番目のコマンドは、値 y を持つシンボリック変数 y を作成します。

syms では、1 つのコマンドで複数の変数を作成できます。変数 ab および c を作成します。

syms a b c

番号付きシンボリック変数から成る MATLAB 配列を作成する場合、syms 構文は不便です。したがって、多数の番号付きシンボリック変数の配列を作成するには、代わりに sym を使用します。

ワークスペースをクリアします。シンボリック変数 a1, ..., a20 を含む行ベクトルを作成し、MATLAB 変数 A に割り当てます。MATLAB ワークスペースの変数を表示します。

clear all
A = sym('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 個のシンボリック変数から成る 120 列の配列です。

symsyms を組み合わせることにより、多くの新しいシンボリック変数を対応する変数名で MATLAB ワークスペースに作成できます。

ワークスペースをクリアします。新しいシンボリック変数 a1, ..., a10 を作成し、それらの変数に MATLAB 変数名 a1, ..., a10 をそれぞれ割り当てます。MATLAB ワークスペースの変数を表示します。

clear all
syms(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) など)

  • 以前に使用した同名のシンボリック変数から仮定を継承しているシンボリック変数

シンボリック式の作成

黄金比を表すためにシンボリック変数を使ってみましょう。

φ=1+52

次のコマンド

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 = ax2 + bx + c を調べます。まず、シンボリック変数 abc、および 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 を使用した変数の再作成ではその仮定は消去されません。詳細は、シンボリック オブジェクトおよびその仮定の削除を参照してください。

関連するトピック