単位を使った記号計算

Wolframシステムは数だけでなく記号式を扱うこともできるため,さまざまな数式に使うことができる.Wolframシステムの単位系はこの記号的コードベースを利用しており,Quantity式を使って微積分を簡単にしている.
Solve[equation,vars]
x についての equation の解
Integrate[f,x]
不定積分
D[f,x]
(偏)導関数
Quantity式に使う記号的数式操作の例
一般
記号的コマンドの多くは単位を理解することができる.それでも単位を加えたり除いたりしたい場合もあるだろう.このような場合は,Wolframシステムの一般代替メカニズムで処理できる.
以下は単位を各シンボルに割り当てる.入力シンボルは次元を持つが出力シンボルは次元を持たないことに注意する:
方程式が次元について矛盾がないかどうかをテストする最も簡単な方法は,両辺を引き,数量の値を代入し,それが有効なQuantityオブジェクトに評価されるかどうかをチェックするというものである:
以下の値は方程式と矛盾しているので,メッセージが出力され,結果は部分的に評価されて返る.その結果出力にはHead Plusがある:
次の代入は,それぞれの数量を数値の部分だけに置き換え,純粋な記号式にする:
Solve
SolveQuantityを認識しており,方程式の中の未知変数の単位を自動的に判断する.変数の単位は,希望の単位を含むQuantity式の中に変数を挿入することで指定することができる.
次は"Meters"に対する"Yards"の割合を求める:
以下は,方程式v2 ()の2つの解を与える.解は の代替として与えられる:
未知の変数をQuantityとして入力することによって,特定の単位を指定することができる:
曖昧であったり次元が矛盾していたりしてSolveが未知の変数の単位を判別することができない場合は,未評価で返す:
Integrate
IntegrateQuantityを認識しており,被積分関数と積分変数の単位を正しく組み合せる.積分変数がQuantityオブジェクトの場合,積分を実行するための積分変数としてQuantityMagnitudeが使われ,そのQuantityUnitは結果において被積分関数の単位と組み合される.一般に入力は以下のいずれかの形式で記述するのがよい.

1.  被積分関数と積分変数すべてがQuantityオブジェクトである.

2.  Quantityオブジェクトは定積分の限界にのみ現れる.

上記以外の形式で入力することもできるが,Integrateがすべての式に対して矛盾のない単位の割当てを決めることができない場合,計算は失敗する.定積分における積分変数の想定次元は,変数と極限がどのように表されるかによって異なる.{x,Quantity[a,"unit1"],Quantity[b,"unit2"]}のような指定の場合,x"unit1"および"unit2"と同じ次元を持つことが想定される.{Quantity[x,"unit"],a,b}のような指定の場合は,通常 x 自体が次元であると想定される.後者の場合,abunit と同じ次元の数量でなければならない.
与えられた時間における変位を計算する:
次の形式では,変数tは無次元であり,実際の時間はQuantity[t,"Seconds"]である:
被積分関数のtを囲むQuantityラッパーが省略されたら,最終結果の次元はである:
変位を記号的に計算する:
線形電荷密度関数を積分する.被積分関数全体がQuantityであるため,単位の組合せが簡単にできる:
積分変数が数量であると宣言されておらず,被積分関数の数量オブジェクトが定数である場合,Integrateは被積分関数の分離形式を維持する:
積分変数がQuantityならば,結果はQuantityオブジェクトになる:
被積分関数の部分式として,矛盾したQuantityオブジェクトがある場合,Integrateはさまざまな式から単位を類推しなければならない.類推した結果,矛盾があるとIntegrateは失敗する:
D
DQuantityを認識し,微分変数の単位で微分されている式の中のQuantityオブジェクトの単位を正しく組み合せる.
一つの数量に対する別の数量の導関数を計算する:
位置の二階微分,つまり加速度を計算する:
Dは自動的に単位を追跡する:
いくつかのQuantityオブジェクトを含む式を微分する:
Quantityオブジェクトの総和を微分するとき,Expandは簡約化を提供することがよくある:
Quantity変数に関する傾きを計算する: