2 * Introduction to Units::
3 * Functions and Variables for Units::
6 @node Introduction to Units, Functions and Variables for Units, unit, unit
7 @section Introduction to Units
9 @emph{unit}パッケージは、ユーザーが
10 任意の単位間での変換したり、方程式の中の次元を扱うことを可能にします。
11 このパッケージの機能はオリジナルのMaxima単位パッケージとは根本的に違います -
14 次元基底毎に最後の答えが翻訳される単位を選ぶことを可能にするようなルールセットを使います。
17 個々の答えに関連付けられた単位を容易に識別することを可能にします。
18 演繹された単位に整理する間、巧みな制御を供給することはもちろん、
19 ユーザーが式を基本的な基底単位に整理することを可能にします。
20 次元解析が可能で、変換と整理オプションを管理するために様々なツールが利用可能です。
22 @emph{units}はこれまでの手動変換オプションも提供します。
24 注意 - 単位変換が正確でない時、Maximaは
26 これは、単位を整理するのに使われる手法の結果です。
28 この状況はしばしば起こり、警告が出力を群れをなしておおうので、
29 (通常オンですが)単位の場合デフォルトでディセーブルにされています。
30 (単位変換の後、ratprintの存在している状態は復元されます。
31 だから、そうでなければ、ユーザーのその設定への変更は保持されます。)
32 もしユーザーが単位に関するこの情報を必要とするなら、
33 単位変換プロセスからの警告の印字を再アクティベートするために
34 @emph{unitverbose:on}を設定できます。
36 @emph{unit}はMaximaに、share/contrib/unitディレクトリに含まれます。
37 通常のMaximaのパッケージローディング慣例に従います:
42 *******************************************************************
43 * Units version 0.50 *
44 * Definitions based on the NIST Reference on *
45 * Constants, Units, and Uncertainty *
46 * Conversion factors from various sources including *
47 * NIST and the GNU units package *
48 *******************************************************************
50 Redefining necessary functions...
51 WARNING: DEFUN/DEFMACRO: redefining function TOPLEVEL-MACSYMA-EVAL ...
52 WARNING: DEFUN/DEFMACRO: redefining function MSETCHK ...
53 WARNING: DEFUN/DEFMACRO: redefining function KILL1 ...
54 WARNING: DEFUN/DEFMACRO: redefining function NFORMAT ...
55 Initializing unit arrays...
60 WARNINGメッセージが予想されますが、心配の原因ではありません -
62 @emph{unit}パッケージが本来のMaximaで既に定義されている関数を再定義していることを示しています。
64 ユーザーは、もし他のパッケージがこれらの関数に他の変更を加えたならそれらの変更はこのロードプロセスによって上書きされることに気づくべきです。
68 lispファイル@emph{unit-functions.lisp}もロードします。
72 Nebraska大学Kearney校(UNK)のBarton Willis, Robert Dodier,
73 そしてMaximaメーリングリストの他の大胆不敵な人々から
76 たぶん多くのバグがあります。知らせてください。
77 @code{float}と@code{numer}は期待の動作をしません。
79 TODO : 次元機能、温度の扱い、略語表示、仲間。単位を含む量の足し算の例を示す。
82 @category{Physical units}
83 @category{Share packages}
84 @category{Package unit}
88 @node Functions and Variables for Units, , Introduction to Units, unit
89 @section Functions and Variables for Units
91 @deffn {関数} setunits (@var{list})
92 デフォルトでは、 @emph{unit}パッケージは
93 組み立てられた次元はどんなものでも使いませんが、
94 MKS単位を使ってすべての単位を7つの基本的な次元に変換します。
106 (%o3) (------) (----)
117 (%i5) centigram*inch/minutes^2;
119 (%o5) (-------------) (----)
125 いくつかの場合、これは望みの振る舞いです。
128 @code{setunits}コマンドで達成されます:
131 (%i6) setunits([centigram,inch,minute]);
137 (%o7) (-------------) (------)
144 (%o8) (--------) (------)
153 (%i10) centigram*inch/minutes^2;
162 例えば、もしキログラム、メータ、秒に、それらの次元のデフォルトとして戻りたいなら、
166 (%i11) setunits([kg,m,s]);
170 (%i12) centigram*inch/minutes^2;
172 (%o12) (-------------) (----)
199 (%i21) centigram*inch/minutes^2;
201 (%o21) (-------------) (N)
208 質量、長さ、力として二乗された逆時間の非MKS組み合わせを認識し、
209 それをNewtonのものに変換したことに注目してください。
210 これは一般にMaximaがどのように働くかを示します。
211 例えば、もしNewtonのものよりダインを好むなら、
215 (%i22) setunits(dyn);
220 (%o23) (100000) (dyn)
223 (%i24) centigram*inch/minutes^2;
225 (%o24) (--------) (dyn)
245 (%i28) centigram*inch/minutes^2;
247 (%o28) (-------------) (----)
253 @code{uforget(N)}か @code{uforget(%force)}を使って
256 @code{uforget}も参照してください。
257 この関数を使うには、最初に @code{load("unit")}を書いてください。
260 @category{Package unit}
265 @deffn {関数} uforget (@var{list})
266 デフォルトでは、 @emph{unit}パッケージは
267 、NKS単位を使って、単位すべてを7つの基本次元に変換します。
269 @code{setunits}コマンドを使って変えることができます。
271 @code{uforget}コマンドを使って,
272 特定の次元に関してデフォルトの振る舞いに戻すことができます:
275 (%i13) setunits([centigram,inch,minute]);
279 (%i14) centigram*inch/minutes^2;
286 (%i15) uforget([cg,%in,%min]);
287 (%o15) [false, false, false]
290 (%i16) centigram*inch/minutes^2;
292 (%o16) (-------------) (----)
298 @code{uforget}は単位ではなく次元上で働きます。
299 だから、特定の次元の任意の単位は機能します。
302 @code{setunits}も参照してください。
303 この関数を使うには、最初に @code{load("unit")}を書いてください。
306 @category{Package unit}
311 @deffn {関数} convert (@var{expr}, @var{list})
312 グローバル環境をリセットすることがやりすぎの時、
313 @code{convert}コマンドがあります。
315 変換に使うのに、1つの引数か単位のリストを受け付けることができます。
320 もしこの振る舞いを制御しているグローバル環境(@code{ratprint})が真なら、
321 不正確な計算に対して、"rat"警告が見られるでしょう。
326 たとえグローバル環境が組立次元に整理するように設定されても
327 @code{convert}はユーザーに基本次元変換することを許すことです。
338 (%i3) convert(kg*m/s^2,[g,km,s]);
345 (%i4) convert(kg*m/s^2,[g,inch,minute]);
347 `rat' replaced 39.37007874015748 by 5000/127 = 39.37007874015748
349 (%o4) (-----------) (-----)
354 (%i5) convert(kg*m/s^2,[N]);
358 (%i6) convert(kg*m^2/s^2,[N]);
362 (%i7) setunits([N,J]);
366 (%i8) convert(kg*m^2/s^2,[N]);
370 (%i9) convert(kg*m^2/s^2,[N,inch]);
372 `rat' replaced 39.37007874015748 by 5000/127 = 39.37007874015748
378 (%i10) convert(kg*m^2/s^2,[J]);
386 (%i12) setunits([g,inch,s]);
400 (%o15) (-------) (-----)
405 (%i16) convert(kg*m/s^2,[g,inch,s]);
407 `rat' replaced 39.37007874015748 by 5000/127 = 39.37007874015748
409 (%o16) (-------) (-----)
416 @code{setunits}と @code{uforget}も参照してください。
417 この関数を使うには、最初に @code{load("unit")}を書いてください。
420 @category{Package unit}
426 @defvr {オプション変数} usersetunits
430 記述されたものよりもデフォルト単位の振る舞いを持ちたいなら、
432 @emph{maxima-init.mac}と @emph{usersetunits}変数を利用することができます。
434 この変数がリストに割り当てられているかを見るためにスタートアップ時にチェックします。
435 もし割り当てられているなら、そのリスト上でsetunitsを使い、
436 そのリストからの単位をデフォルトに取ります。
438 自身のデフォルト上にusersetunitsで定義された振る舞いに戻します。
441 以下を含む@emph{maxima-init.mac}ファイルを持っているなら:
443 usersetunits : [N,J];
445 we would see the following behavior:
449 *******************************************************************
450 * Units version 0.50 *
451 * Definitions based on the NIST Reference on *
452 * Constants, Units, and Uncertainty *
453 * Conversion factors from various sources including *
454 * NIST and the GNU units package *
455 *******************************************************************
457 Redefining necessary functions...
458 WARNING: DEFUN/DEFMACRO: redefining function
459 TOPLEVEL-MACSYMA-EVAL ...
460 WARNING: DEFUN/DEFMACRO: redefining function MSETCHK ...
461 WARNING: DEFUN/DEFMACRO: redefining function KILL1 ...
462 WARNING: DEFUN/DEFMACRO: redefining function NFORMAT ...
463 Initializing unit arrays...
465 User defaults found...
466 User defaults initialized.
485 (%i6) setunits([dyn,eV]);
494 (%o8) (6241509596477042688) (eV)
498 (%o9) (6241509596477042688) (eV m)
502 (%o10) (6241509596477042688000) (eV)
505 (%i11) uforget([dyn,eV]);
506 (%o11) [false, false]
525 @code{usersetunits}なしでは、
526 初期の入力はMKSに変換されたでしょうし、
527 uforgetはMKS規則への復帰をもたらしたでしょう。
529 ユーザーの好みは両方のケースで考慮されます。
530 もし望まれるなら、これらはまだオーバーライドされることができることに注目してください。
532 すなわち、ユーザーデフォルトを出荷デフォルトに再設定するには -
533 @code{dontusedimension}コマンドをつかうことができます。
534 @code{usedimension}が@code{uforget}を使用上自由にする時だけ
535 @code{uforget}はユーザー設定を再び戻すことができますが、
537 @code{kill(usersetunits)}は
538 ユーザーデフォルトの知識すべてをセッションから完全に削除します。
540 これらの様々なオプションがいかに働くかを示すいくつかの例です。
551 (%i4) setunits([dyn,eV]);
560 (%o6) (6241509596477042688) (eV)
563 (%i7) uforget([dyn,eV]);
575 (%i10) dontusedimension(N);
579 (%i11) dontusedimension(J);
580 (%o11) [%energy, %force]
598 (%i14) setunits([dyn,eV]);
617 (%i17) uforget([dyn,eV]);
618 (%o17) [false, false]
636 (%i20) usedimension(N);
637 Done. To have Maxima simplify to this dimension, use
638 setunits([unit]) to select a unit.
642 (%i21) usedimension(J);
643 Done. To have Maxima simplify to this dimension, use
644 setunits([unit]) to select a unit.
663 (%i24) setunits([dyn,eV]);
668 (%o25) (100000) (dyn)
672 (%o26) (6241509596477042688) (eV)
675 (%i27) uforget([dyn,eV]);
676 (%o27) [false, false]
687 (%i30) kill(usersetunits);
691 (%i31) uforget([dyn,eV]);
692 (%o31) [false, false]
713 一旦、ユーザーがそれらを使うのに成長すれば、
714 それらがワーキング環境上でまさに完全な制御を持つことをユーザーは見いだすに違いありません。
716 @c One other significant customization option available is the @code{setunitprefix}
717 @c command. Normally, abbreviations used in this package are as close to those
718 @c used in standard texts as possible. Some people, however, prefer to use those
719 @c symbols for normal work and have units labeled in some other fasion.
720 @c @code{setunitprefix} is provided for this case. Here is an example of its use:
723 @category{Package unit}
729 @deffn {関数} metricexpandall (@var{x})
730 望みの計量単位すべてを自動的に生成するグローバル単位リストを再構築します。
732 ユーザーがいくつの計量接頭子の定義を望むか指定するのに使われる数値引数です。
733 引数は、より低い数字の単位を定義するより高い数字それぞれを持つような
737 0 - none. Only base units
738 1 - kilo, centi, milli
739 (default) 2 - giga, mega, kilo, hecto, deka, deci, centi, milli,
741 3 - peta, tera, giga, mega, kilo, hecto, deka, deci,
742 centi, milli, micro, nano, pico, femto
747 これは非常にたくさんの数の単位をもたらすので、完全な展開を定義しませんが、
748 多少なりとも完全な方法でリストを再構築するのに
749 @code{metricexpandall}を使うことができます。
750 @emph{unit.mac}ファイルの中の適切な変数は @var{%unitexpand}です。
751 @c This should be made configurable as a maxima-init.mac controllable option.
754 @category{Package unit}
759 @defvr {変数} %unitexpand
763 @emph{unit}の初期ロードの最中に
764 @code{metricexpandall}に供給される
768 @category{Package unit}
774 @c @deffn {関数} functionname (@var{arg1}, @var{arg2}, ..., @var{argn})
777 @c @defvr {オプション変数} variablename
778 @c デフォルト値: @code{true}