Go to the first, previous, next, last section, table of contents.


単位の簡単化

本節で解説する簡単化規則群は、 u s (calc-simplify-units) コマンドによって適用されます。 これは以前に解説した a s (a e ではありません) 通常規則群の 拡張です。単位の基本演算 参照 。

変数 UnitSimpRules は、 u s コマンドで適用される書替え規則群を格納します。 これは EvalRules および AlgSimpRules に追加的に適用されます。

単位を簡単化する時は、自動的に Scalar mode になります。 行列モードとスカラ・モード 参照 。

単位を含む和 a + b は、次のように簡単化されます。 まず u x コマンドのように a の単位(仮に u_a とします)を抽出し、 次に u bu s を使って b / u_a を簡単化します。 その結果に単位が残留すれば、元の和には矛盾があるということでそのまま残されます。 そうでなければ、結果は単位の項 u_a を使って書き直されます。

単位の自動整列モードになっていれば、 積や商で最初に来るのは数値であって(???)、 それより前にある単位は適宜修正されます。

積や商の単位をまとめる際、Calc はプリフィックスだけが異なる単位名も処理します。 例えば、`2 km m'`2000 m^2' に簡単化されます。 しかし ftin のように、 互換だが異なる単位はこの方法ではまとめません。

a / b にはさらに 3種類の簡単化が加わります。 まず、b が数値または数値を含む積であるなら、 Calc はこの数値の逆数を計算して分子に移動します。

2番目に、商の分子・分母の単位名に互換性があれば(例えば両方とも面積の単位とか)、 両単位の比に置換えられます。 例えば、`3 s in N / kg cm' の中の `in / cm'2.54 に置換えられます。

第3に、商の単位が完全に相殺しあって、 商に対する u b コマンドが無次元量の答を出す場合、 商はその値に簡単化されます。

べき乗や平方根については、 べき乗が実数ならば「不安全な」簡単化が実施され、 (a b)^ca^c b^c に、 (a/b)^ca^c / b^c に、 (a^b)^ca^(b c) になります。 (あらゆる単位を伴う量は当然実数と見なせるので、 この状況では安全な簡単化です。)

また、単位名が分数のべきとなり、 かつ基本単位群に展開した時のべきが元のべきの分母の倍数ならば、 単位名は基本単位群に展開され、前パラグラフのように簡単化されます。 例えば `acre^1.5' は、 @ 1.5 = 3:2 であり, A `acre'`m^2' で定義されていて, B m のべきの 2 が 3:2 の 2 の倍数である, 事に注目して簡単化されます。 従って、acre^1.5 はおよそ (4046 m^2)^1.5 に置換わり、次に 257440 m^3 になります。

floor や他の整数切上げ・切捨て関数と同じように、 関数 float, frac, clean, abs も、 単位名や単位を含む積・商に適用された場合は簡単化されます。 例えば、`round(1.6 in)'`round(1.6) round(in)' になります。 そして左の項 `round(1.6)' は 2 に評価され、 右の項 `round(in)'in に簡単化されます。

radarcmin のような角度単位付き引数の sin, cos, tan は、 まず基本単位(ラジアン)に変換してから 角度モードを一時的にラジアンに設定して評価することにより簡単化します。


Go to the first, previous, next, last section, table of contents.     利用度数