2 * Introduction to ezunits::
3 * Introduction to physical_constants::
4 * Functions and Variables for ezunits::
7 @node Introduction to ezunits, Introduction to physical_constants, ezunits, ezunits
8 @section Introduction to ezunits
10 @code{ezunits}は次元量を扱うためのパッケージです。
15 組み込み単位は国際単位系(SI)とUS慣習単位系を含み、他の単位が宣言できます。
16 @code{physical_constants}、物理定数のコレクション、も参照してください。
18 @code{load("ezunits")}はこのパッケージをロードします。
19 @code{demo(ezunits)}はいくつかの例を表示します。
20 便利な関数@code{known_units}は組み込みとユーザー宣言単位のリストを返し、
22 @code{display_known_unit_conversions}は
23 可読性の高いフォーマットで既知の変換一式を表示します。
25 式@math{a ` b}は、無次元量を示す@code{a}と次元単位@code{b}で
27 そのように宣言することなしに、シンボルを単位として使うことができます;
28 単位シンボルはいかなる特別なプロパティを持つ必要はありません。
30 それぞれ、@code{qty}関数と@code{units}関数で抽出することができます。
32 シンボルは、指定された量か指定された単位か両方を持つ次元量であると宣言することができます。
34 式@math{a ` b `@w{}` c}は
35 単位@code{b}から単位@code{c}に変換します。
37 SI基本単位、SI組立単位、いくつかの非SI単位に関する組み込み変換を持っています。
38 まだ@code{ezunits}が知らない単位変換は、宣言することができます。
39 @code{ezunits}が知っている単位変換は
40 組み込み変換とユーザー定義の変換から構成される
41 グローバル変数@code{known_unit_conversions}で指定されます。
42 単位の積や商、冪に関する変換は知られている単位変換の組から演繹されます。
44 Maximaは一般的に厳密でない数(浮動小数点数か多倍長浮動小数点数)より
46 次元量でそれらが現れた時、@code{ezunits}は厳密な数を保護します。
47 組み込み単位変換すべては厳密な数で表現されます;
48 宣言された変換で厳密でない数は厳密なものに強制的に変換されます。
50 単位の表示のために優先される系はありません;
51 入力単位は、変換を明示的に示さない限り、他の単位には変換されません。
53 前置詞m-, k-, M, G-(ミリ-, キロ-, メガ-, ギガ-)を
56 そんな前置詞は明示的な変換で示された時だけ適用されます。
62 @item @math{(x ` a) * (y ` b)} is equal to @math{(x * y) ` (a * b)}.
63 @item @math{(x ` a) + (y ` a)} is equal to @math{(x + y) ` a}.
64 @item @math{(x ` a)^y} is equal to @math{x^y ` a^y} when @code{y} is nondimensional.
68 和の中の単位が同じ次元を持つことを要求しません;
69 そんな項は足さられず、エラーは報告されません。
71 @code{ezunits}は初等的な次元解析関数を含みます。
72 すなわち、次元量の基本的な次元と基本的な単位、無次元量と自然単位系の計算です。
74 Barton Willisが書いた別のパッケージの類似の関数から焼き直されました。
77 基本的な次元のリストと基本的な単位の連想リストは保持されます;
79 基本的な次元は、長さ、質量、時刻、電荷、温度、量であり、
84 @category{Physical units}
85 @category{Share packages}
86 @category{Package ezunits}
89 @node Introduction to physical_constants, Functions and Variables for ezunits, Introduction to ezunits, ezunits
90 @section Introduction to physical_constants
92 @code{physical_constants}は物理定数のコレクションです。
93 CODATA 2006 推奨値からコピーしました。[1]
94 @code{load("physical_constants")}はこのパッケージをロードし、
95 まだロードされていないなら、@code{ezunits}もロードします。
97 物理定数は定数値のプロパティを持つシンボルとして表されます。
98 定数値は、@code{ezunits}が表すように次元量です。
99 関数@code{constvalue}は定数値を取りに行きます;
101 @code{constvalue}が値を取りに行くまで、
102 物理定数のシンボルは評価される式の中でシンボルのままです。
104 @code{physical_constants}はある補助情報、
106 数値の誤差の見積もり、TeX表示のためのプロパティを含みます。
107 物理定数を識別するために、それぞれのシンボルは
108 @code{physical_constant}性質を持ちます;
109 それ故に、@code{propvars(physical_constant)}はそんなシンボルすべてのリストを
112 @code{physical_constants}以下の定数を含みます。
178 Sackur-Tetrode定数 (絶対エントロピー定数)
195 [1] @url{http://physics.nist.gov/constants}
199 @code{physical_constant} プロパティを持つすべてのシンボルのリスト。
202 @c load ("physical_constants")$
203 @c propvars (physical_constant);
206 (%i1) load ("physical_constants")$
207 (%i2) propvars (physical_constant);
208 (%o2) [%c, %mu_0, %e_0, %Z_0, %G, %h, %h_bar, %m_P, %T_P, %l_P,
209 %t_P, %%e, %Phi_0, %G_0, %K_J, %R_K, %mu_B, %mu_N, %alpha,
210 %R_inf, %a_0, %E_h, %ratio_h_me, %m_e, %N_A, %m_u, %F, %R, %%k,
211 %V_m, %n_0, %ratio_S0_R, %sigma, %c_1, %c_1L, %c_2, %b, %b_prime]
217 @c load ("physical_constants")$
219 @c get (%c, description);
225 (%i1) load ("physical_constants")$
226 (%i2) constantp (%c);
228 (%i3) get (%c, description);
229 (%o3) speed of light in vacuum
230 (%i4) constvalue (%c);
243 @code{constvalue}が値を取りにいくまでシンボルのままです。
246 @c load ("physical_constants")$
255 (%i1) load ("physical_constants")$
259 (%i3) %, m = 1 ` lbm;
262 (%i4) constvalue (%);
265 (%o4) 89875517873681764 ` ------
269 Computing conversions to base units; may take a moment.
271 (%o5) ------------------ ` J
275 (%o6) --------------- ` GJ
278 (%o7) 4.0759872051556356e+7 ` GJ
282 @category{Physical units}
283 @category{Share packages}
284 @category{Package physical_constants}
287 @node Functions and Variables for ezunits, , Introduction to physical_constants, ezunits
288 @section Functions and Variables for ezunits
293 式 @math{a ` b}は次元量を表します。
294 @code{a}は無次元量を表し、@code{b}は次元単位を表します。
295 シンボルは、宣言せずに単位として使うことができます;
296 単位シンボルは特別なプロパティを持つ必要はありません。
297 式 @math{a ` b}の量と単位はそれぞれ、
298 @code{qty}と @code{units}関数で抽出することができます。
300 次元量の算術演算子は演算子の慣例規則に従って実行されます。
303 @item @math{(x ` a) * (y ` b)}は @math{(x * y) ` (a * b)}に等しい。
304 @item @math{(x ` a) + (y ` a)}は @math{(x + y) ` a}に等しい。
305 @item @math{(x ` a)^y}は @code{y}が無次元の時 @math{x^y ` a^y}に等しい。
308 @code{ezunits}は和の中の単位が同じ次元であることを要求しません;
309 そんな項は一緒には足されませんし、エラーは報告されません。
311 @code{load("ezunits")}はこの演算子をイネーブルにします。
325 (%i1) load ("ezunits")$
332 (%i5) dimensions (foo);
342 @c fundamental_units (bar);
345 (%i1) load ("ezunits")$
346 (%i2) bar : x ` acre;
348 (%i3) dimensions (bar);
351 (%i4) fundamental_units (bar);
360 @c baz : 3 ` sheep + 8 ` goat + 1 ` horse;
361 @c subst ([sheep = 3*goat, horse = 10*goat], baz);
362 @c baz2 : 1000`gallon/fortnight;
363 @c subst (fortnight = 14*day, baz2);
366 (%i1) load ("ezunits")$
367 (%i2) baz : 3 ` sheep + 8 ` goat + 1 ` horse;
368 (%o2) 8 ` goat + 3 ` sheep + 1 ` horse
369 (%i3) subst ([sheep = 3*goat, horse = 10*goat], baz);
371 (%i4) baz2 : 1000`gallon/fortnight;
373 (%o4) 1000 ` ---------
375 (%i5) subst (fortnight = 14*day, baz2);
385 @c 100 ` kg + 200 ` kg;
386 @c 100 ` m^3 - 100 ` m^3;
387 @c (10 ` kg) * (17 ` m/s^2);
388 @c (x ` m) / (y ` s);
392 (%i1) load ("ezunits")$
393 (%i2) 100 ` kg + 200 ` kg;
395 (%i3) 100 ` m^3 - 100 ` m^3;
398 (%i4) (10 ` kg) * (17 ` m/s^2);
403 (%i5) (x ` m) / (y ` s);
413 @category{Package ezunits}
421 式 @math{a ` b `@w{}` c}は単位 @code{b}を単位 @code{c}に変換します。
422 @code{ezunits}にはSI基本単位、SI組立単位、いくつかの非SI単位のための
424 @code{ezunits}がまだ知らない単位変換は宣言することができます。
425 @code{ezunits}が知っている単位変換はグローバル変数 @code{known_unit_conversions}に
426 明記されます。それは、組み込みとユーザー定義の変換を含みます。
427 単位の積、商、べきの変換は既知の単位変換一式から演繹されます。
429 単位の表示のためにより好まれる系はありません;
434 前置詞(milli-, centi-, deci-, etc)で単位を整理しようとしません。
436 @code{load("ezunits")}はこの演算子を有効にします。
444 @c display2d : false$
445 @c known_unit_conversions;
448 (%i1) load ("ezunits")$
449 (%i2) display2d : false$
450 (%i3) known_unit_conversions;
451 (%o3) @{acre = 4840*yard^2,Btu = 1055*J,cfm = feet^3/minute,
452 cm = m/100,day = 86400*s,feet = 381*m/1250,ft = feet,
453 g = kg/1000,gallon = 757*l/200,GHz = 1000000000*Hz,
454 GOhm = 1000000000*Ohm,GPa = 1000000000*Pa,
455 GWb = 1000000000*Wb,Gg = 1000000*kg,Gm = 1000000000*m,
456 Gmol = 1000000*mol,Gs = 1000000000*s,ha = hectare,
457 hectare = 100*m^2,hour = 3600*s,Hz = 1/s,inch = feet/12,
458 km = 1000*m,kmol = 1000*mol,ks = 1000*s,l = liter,
459 lbf = pound_force,lbm = pound_mass,liter = m^3/1000,
460 metric_ton = Mg,mg = kg/1000000,MHz = 1000000*Hz,
461 microgram = kg/1000000000,micrometer = m/1000000,
462 micron = micrometer,microsecond = s/1000000,
463 mile = 5280*feet,minute = 60*s,mm = m/1000,
464 mmol = mol/1000,month = 2629800*s,MOhm = 1000000*Ohm,
465 MPa = 1000000*Pa,ms = s/1000,MWb = 1000000*Wb,
466 Mg = 1000*kg,Mm = 1000000*m,Mmol = 1000000000*mol,
467 Ms = 1000000*s,ns = s/1000000000,ounce = pound_mass/16,
468 oz = ounce,Ohm = s*J/C^2,
469 pound_force = 32*ft*pound_mass/s^2,
470 pound_mass = 200*kg/441,psi = pound_force/inch^2,
471 Pa = N/m^2,week = 604800*s,Wb = J/A,yard = 3*feet,
472 year = 31557600*s,C = s*A,F = C^2/J,GA = 1000000000*A,
473 GC = 1000000000*C,GF = 1000000000*F,GH = 1000000000*H,
474 GJ = 1000000000*J,GK = 1000000000*K,GN = 1000000000*N,
475 GS = 1000000000*S,GT = 1000000000*T,GV = 1000000000*V,
476 GW = 1000000000*W,H = J/A^2,J = m*N,kA = 1000*A,
477 kC = 1000*C,kF = 1000*F,kH = 1000*H,kHz = 1000*Hz,
478 kJ = 1000*J,kK = 1000*K,kN = 1000*N,kOhm = 1000*Ohm,
479 kPa = 1000*Pa,kS = 1000*S,kT = 1000*T,kV = 1000*V,
480 kW = 1000*W,kWb = 1000*Wb,mA = A/1000,mC = C/1000,
481 mF = F/1000,mH = H/1000,mHz = Hz/1000,mJ = J/1000,
482 mK = K/1000,mN = N/1000,mOhm = Ohm/1000,mPa = Pa/1000,
483 mS = S/1000,mT = T/1000,mV = V/1000,mW = W/1000,
484 mWb = Wb/1000,MA = 1000000*A,MC = 1000000*C,
485 MF = 1000000*F,MH = 1000000*H,MJ = 1000000*J,
486 MK = 1000000*K,MN = 1000000*N,MS = 1000000*S,
487 MT = 1000000*T,MV = 1000000*V,MW = 1000000*W,
488 N = kg*m/s^2,R = 5*K/9,S = 1/Ohm,T = J/(m^2*A),V = J/C,
500 @c 1 ` W `` Btu/hour;
502 @c 100 ` degC `` degF;
503 @c -40 ` degF `` degC;
504 @c 1 ` acre*ft `` m^3;
508 (%i1) load ("ezunits")$
510 Computing conversions to base units; may take a moment.
522 (%i6) 1 ` W `` Btu/hour;
528 (%o7) 3.412322274881517 ` ----
530 (%i8) 100 ` degC `` degF;
532 (%i9) -40 ` degF `` degC;
534 (%i10) 1 ` acre*ft `` m^3;
536 (%o10) ----------- ` m
540 (%o11) 1233.48183754752 ` m
547 @c 100 ` m + 100 ` ft;
548 @c (100 ` m + 100 ` ft) `` ft;
550 @c (100 ` m + 100 ` ft) `` m;
554 (%i1) load ("ezunits")$
555 (%i2) 100 ` m + 100 ` ft;
556 (%o2) 100 ` m + 100 ` ft
557 (%i3) (100 ` m + 100 ` ft) `` ft;
558 Computing conversions to base units; may take a moment.
563 (%o4) 428.0839895013123 ` ft
564 (%i5) (100 ` m + 100 ` ft) `` m;
572 基本次元と基本単位を見つけるための次元解析
576 @c foo : 1 ` acre * ft;
578 @c fundamental_units (foo);
583 (%i1) load ("ezunits")$
584 (%i2) foo : 1 ` acre * ft;
586 (%i3) dimensions (foo);
589 (%i4) fundamental_units (foo);
593 Computing conversions to base units; may take a moment.
595 (%o5) ----------- ` m
599 (%o6) 1233.48183754752 ` m
606 @c declare_unit_conversion (MMBtu = 10^6*Btu, kW = 1000*W);
607 @c declare_unit_conversion (kWh = kW*hour, MWh = 1000*kWh,
610 @c 1 ` kW/m^2 `` MMBtu/bell/ft^2;
613 (%i1) load ("ezunits")$
614 (%i2) declare_unit_conversion (MMBtu = 10^6*Btu, kW = 1000*W);
616 (%i3) declare_unit_conversion (kWh = kW*hour, MWh = 1000*kWh,
619 (%i4) 1 ` kW*s `` MWh;
620 Computing conversions to base units; may take a moment.
624 (%i5) 1 ` kW/m^2 `` MMBtu/bell/ft^2;
626 (%o5) ---------- ` --------
632 @category{Package ezunits}
637 @deffn {関数} constvalue (@var{x})
638 @deffnx {関数} declare_constvalue (@var{a}, @var{x})
639 @deffnx {関数} remove_constvalue (@var{a})
641 @c REWORK THIS STATEMENT !!
643 シンボルに宣言された定数を代入した式の値をを返します。
645 定数は@code{declare_constvalue}で宣言されます。
646 @code{constvalue}が認識する定数は
647 @code{numerval}で宣言された値や@code{constantp}が認識する値と区別されることに
650 @code{physical_units}パッケージはたくさんの物理定数の定数値を宣言します。
652 @code{remove_constvalue}は
653 @code{declare_constvalue}の効果を戻します。
655 @code{load("ezunits")}はこれらの関数をロードします。
662 @c load ("physical_constants")$
664 @c get ('%G, 'description);
667 (%i1) load ("physical_constants")$
668 (%i2) constvalue (%G);
671 (%o2) 6.67428 ` -----
674 (%i3) get ('%G, 'description);
675 (%o3) Newtonian constant of gravitation
682 @c declare_constvalue (FOO, 100 ` lbm / acre);
683 @c FOO * (50 ` acre);
687 (%i1) load ("ezunits")$
688 (%i2) declare_constvalue (FOO, 100 ` lbm / acre);
692 (%i3) FOO * (50 ` acre);
694 (%i4) constvalue (%);
699 @category{Package ezunits}
704 @deffn {関数} units (@var{x})
705 @deffnx {関数} declare_units (@var{a}, @var{u})
708 もし@var{x}が無次元なら、1を返します。
710 @var{x}は、文字通り次元式 @math{a ` b}かもしれませんし、
711 @code{declare_units}を介して宣言された単位を持つシンボルかもしれませんし、
712 それらの一方または両方を含む式かもしれません。
714 @code{declare_units}は、
715 @code{units(@var{a})}は式@var{u}を返さなければいけないことを宣言します。
717 @code{load("ezunits")}はこれらの関数をロードします。
721 文字通り次元式へ適用された@code{units}。
729 @c units (foo * bar);
730 @c units (foo / bar);
734 (%i1) load ("ezunits")$
735 (%i2) foo : 100 ` kg;
747 (%i6) units (foo * bar);
751 (%i7) units (foo / bar);
760 宣言された単位を持つシンボルに適用された@code{units}。
765 @c declare_units (aa, J);
772 (%i1) load ("ezunits")$
775 (%i3) declare_units (aa, J);
782 (%i6) foo : 100 ` kg;
784 (%i7) units (aa * foo);
789 @category{Package ezunits}
794 @deffn {関数} qty (@var{x})
795 @deffnx {関数} declare_qty (@var{a}, @var{x})
797 @code{qty}は次元量@var{x}の無次元パーツを返します。
798 もし @var{x}が無次元なら、@var{x}を返します。
799 @var{x}は文字通り次元式 @math{a ` b}かも知れませんし、
801 それらの一方または両方を含む式かもしれません。
804 @code{qty(@var{a})}は無次元量@var{x}を返さなければいけないことを宣言します。
806 @code{load("ezunits")}はこれらの関数をロードします。
810 文字通り次元式に適用された@code{qty}。
821 (%i1) load ("ezunits")$
822 (%i2) foo : 100 ` kg;
834 (%i6) qty (foo * bar);
838 宣言された量のシンボルへ適用された@code{qty}。
842 @c declare_qty (aa, xx);
849 (%i1) load ("ezunits")$
850 (%i2) declare_qty (aa, xx);
857 (%i5) foo : 100 ` kg;
859 (%i6) qty (aa * foo);
864 @category{Package ezunits}
869 @c PROBABLY SHOULD RENAME THIS TO DIMENSIONALP !!
870 @deffn {関数} unitp (@var{x})
876 それ以外なら、@code{unitp}は @code{false}を返します。
878 @code{load("ezunits")}はこの関数を返します。
882 文字通り次元式へ適用された@code{unitp}。
889 (%i1) load ("ezunits")$
890 (%i2) unitp (100 ` kg);
894 次元的と宣言されたシンボルへ適用された@code{unitp}。
899 @c declare (foo, dimensional);
903 (%i1) load ("ezunits")$
906 (%i3) declare (foo, dimensional);
912 主演算子が次元的と宣言された式に適用された@code{unitp}。
916 @c unitp (bar (x, y, z));
917 @c declare (bar, dimensional);
918 @c unitp (bar (x, y, z));
921 (%i1) load ("ezunits")$
922 (%i2) unitp (bar (x, y, z));
924 (%i3) declare (bar, dimensional);
926 (%i4) unitp (bar (x, y, z));
931 @category{Package ezunits}
936 @deffn {関数} declare_unit_conversion (@var{u} = @var{v}, ...)
938 式 @var{u} = @var{v}, ... を
939 単位変換演算子 @math{`@w{}`}が知っている単位変換のリストに追加します。
940 @var{u}と @var{v}はともにその中のいかなる変数も単位である乗法の項か、
944 それぞれの式の左辺が(乗法式でなく)ただの単位か、
945 1に等しい量とただの単位である単位の文字通り次元式であるような
947 この限定は将来のバージョンで緩和されるかもしれません。
949 @code{known_unit_conversions}は既知の単位変換のリストです。
951 @code{load("ezunits")}はこの関数をロードします。
959 @c declare_unit_conversion (nautical_mile = 1852 * m,
960 @c fortnight = 14 * day);
961 @c 100 ` nautical_mile / fortnight `` m/s;
964 (%i1) load ("ezunits")$
965 (%i2) declare_unit_conversion (nautical_mile = 1852 * m,
966 fortnight = 14 * day);
968 (%i3) 100 ` nautical_mile / fortnight `` m/s;
969 Computing conversions to base units; may take a moment.
975 文字通り次元式の等式で表現された単位変換。
979 @c declare_unit_conversion (1 ` fluid_ounce = 2 ` tablespoon);
980 @c declare_unit_conversion (1 ` tablespoon = 3 ` teaspoon);
981 @c 15 ` fluid_ounce `` teaspoon;
984 (%i1) load ("ezunits")$
985 (%i2) declare_unit_conversion (1 ` fluid_ounce = 2 ` tablespoon);
987 (%i3) declare_unit_conversion (1 ` tablespoon = 3 ` teaspoon);
989 (%i4) 15 ` fluid_ounce `` teaspoon;
990 Computing conversions to base units; may take a moment.
995 @category{Package ezunits}
1000 @deffn {関数} declare_dimensions (@var{a_1}, @var{d_1}, ..., @var{a_n}, @var{d_n})
1001 @deffnx {関数} remove_dimensions (@var{a_1}, ..., @var{a_n})
1003 @code{declare_dimensions}は
1004 @var{a_1}, ..., @var{a_n}を
1005 それぞれ、次元@var{d_1}, ..., @var{d_n}を持つと
1008 @var{a_k}それぞれはシンボルかシンボルのリストです。
1009 もしリストなら、@var{a_k}内のすべてのシンボルは
1010 次元 @var{d_k}を持つように宣言されます。
1012 @code{remove_dimensions}は @code{declare_dimensions}の効果を戻します。
1014 @code{load("ezunits")}はこれらの関数をロードします。
1019 @c load ("ezunits") $
1020 @c declare_dimensions ([x, y, z], length, [t, u], time);
1021 @c dimensions (y^2/u);
1022 @c fundamental_units (y^2/u);
1025 (%i1) load ("ezunits") $
1026 (%i2) declare_dimensions ([x, y, z], length, [t, u], time);
1028 (%i3) dimensions (y^2/u);
1033 (%i4) fundamental_units (y^2/u);
1034 0 errors, 0 warnings
1042 @category{Package ezunits}
1047 @deffn {関数} declare_fundamental_dimensions (@var{d_1}, @var{d_2}, @var{d_3}, ...)
1048 @deffnx {関数} remove_fundamental_dimensions (@var{d_1}, @var{d_2}, @var{d_3}, ...)
1049 @deffnx {グローバル変数} fundamental_dimensions
1051 @code{declare_fundamental_dimensions}は基本次元を宣言します。
1052 シンボル @var{d_1}, @var{d_2}, @var{d_3}, ... は、
1053 もしそれらがまだリストの中にないなら、基本次元のリストに追加されます。
1055 @code{remove_fundamental_dimensions}は
1056 @code{declare_fundamental_dimensions}の効果を戻します。
1058 @code{fundamental_dimensions}は基本次元のリストです。
1059 デフォルトでは、リストはいくつかの物理次元から成ります。
1061 @code{load("ezunits")}はこれらの関数をロードします。
1066 @c load ("ezunits") $
1067 @c fundamental_dimensions;
1068 @c declare_fundamental_dimensions (money, cattle, happiness);
1069 @c fundamental_dimensions;
1070 @c remove_fundamental_dimensions (cattle, happiness);
1071 @c fundamental_dimensions;
1074 (%i1) load ("ezunits") $
1075 (%i2) fundamental_dimensions;
1076 (%o2) [length, mass, time, current, temperature, quantity]
1077 (%i3) declare_fundamental_dimensions (money, cattle, happiness);
1079 (%i4) fundamental_dimensions;
1080 (%o4) [length, mass, time, current, temperature, quantity,
1081 money, cattle, happiness]
1082 (%i5) remove_fundamental_dimensions (cattle, happiness);
1084 (%i6) fundamental_dimensions;
1085 (%o6) [length, mass, time, current, temperature, quantity, money]
1089 @category{Package ezunits}
1094 @deffn {関数} declare_fundamental_units (@var{u_1}, @var{d_1}, ..., @var{u_n}, @var{d_n})
1095 @deffnx {関数} remove_fundamental_units (@var{u_1}, ..., @var{u_n})
1097 @code{declare_fundamental_units}は
1098 @var{u_1}, ..., @var{u_n}を
1099 それぞれ、次元@var{d_1}, ..., @var{d_n}を持つように宣言します。
1100 引数すべてはシンボルでなければいけません。
1102 @code{declare_fundamental_units}をコールした後、
1103 @code{dimensions(@var{u_k})}は
1104 引数@var{u_1}, ..., @var{u_n}それぞれに対して
1106 @code{fundamental_units(@var{d_k})}は
1107 引数@var{d_1}, ..., @var{d_n}それぞれに対して
1111 @code{remove_fundamental_units}は
1112 @code{declare_fundamental_units}の効果を戻します。
1114 @code{load("ezunits")}はこれらの関数をロードします。
1119 @c load ("ezunits") $
1120 @c declare_fundamental_dimensions (money, cattle, happiness);
1121 @c declare_fundamental_units (dollar, money, goat, cattle, smile, happiness);
1122 @c dimensions (100 ` dollar/goat/km^2);
1123 @c dimensions (x ` smile/kg);
1124 @c fundamental_units (money*cattle/happiness);
1127 (%i1) load ("ezunits") $
1128 (%i2) declare_fundamental_dimensions (money, cattle, happiness);
1130 (%i3) declare_fundamental_units (dollar, money, goat, cattle, smile, happiness);
1131 (%o3) [dollar, goat, smile]
1132 (%i4) dimensions (100 ` dollar/goat/km^2);
1134 (%o4) --------------
1137 (%i5) dimensions (x ` smile/kg);
1141 (%i6) fundamental_units (money*cattle/happiness);
1142 0 errors, 0 warnings
1149 @category{Package ezunits}
1154 @deffn {関数} dimensions (@var{x})
1155 @deffnx {関数} dimensions_as_list (@var{x})
1161 @code{dimensions_as_list}は
1162 それぞれの要素が@var{x}の次元に関して対応する基礎次元の冪を示す整数であるようなリストとして次元量@var{x}の次元を返します。
1165 @code{load("ezunits")}はこれらの関数をロードします。
1170 @c load ("ezunits")$
1171 @c dimensions (1000 ` kg*m^2/s^3);
1172 @c declare_units (foo, acre*ft/hour);
1173 @c dimensions (foo);
1176 (%i1) load ("ezunits")$
1177 (%i2) dimensions (1000 ` kg*m^2/s^3);
1183 (%i3) declare_units (foo, acre*ft/hour);
1187 (%i4) dimensions (foo);
1195 @c load ("ezunits")$
1196 @c fundamental_dimensions;
1197 @c dimensions_as_list (1000 ` kg*m^2/s^3);
1198 @c declare_units (foo, acre*ft/hour);
1199 @c dimensions_as_list (foo);
1202 (%i1) load ("ezunits")$
1203 (%i2) fundamental_dimensions;
1204 (%o2) [length, mass, time, charge, temperature, quantity]
1205 (%i3) dimensions_as_list (1000 ` kg*m^2/s^3);
1206 (%o3) [2, 1, - 3, 0, 0, 0]
1207 (%i4) declare_units (foo, acre*ft/hour);
1211 (%i5) dimensions_as_list (foo);
1212 (%o5) [3, 0, - 1, 0, 0, 0]
1216 @category{Package ezunits}
1221 @deffn {関数} fundamental_units (@var{x})
1222 @deffnx {関数} fundamental_units ()
1224 @code{fundamental_units(@var{x})}は
1225 @code{dimensions(@var{x})}が決定するように
1226 @var{x}の基本次元に関連付けられた
1229 @var{x}は文字通り次元式@math{a ` b}か、
1230 @code{declare_units}を介して宣言された単位を持つシンボルか
1231 それらのいずれかもしくは両方を含む式かもしれません。
1233 @code{fundamental_units()}は
1234 @code{declare_fundamental_units}が宣言するように、
1235 既知の基本単位すべてのリストを返します。
1238 @code{load("ezunits")}はこの関数をロードします。
1243 @c load ("ezunits")$
1244 @c fundamental_units ();
1245 @c fundamental_units (100 ` mile/hour);
1246 @c declare_units (aa, g/foot^2);
1247 @c fundamental_units (aa);
1250 (%i1) load ("ezunits")$
1251 (%i2) fundamental_units ();
1252 (%o2) [m, kg, s, A, K, mol]
1253 (%i3) fundamental_units (100 ` mile/hour);
1257 (%i4) declare_units (aa, g/foot^2);
1262 (%i5) fundamental_units (aa);
1270 @category{Package ezunits}
1275 @deffn {関数} dimensionless (@var{L})
1277 次元量のリスト@var{L}から形成できる
1280 @code{load("ezunits")}はこの関数をロードします。
1285 @c load ("ezunits") $
1286 @c dimensionless ([x ` m, y ` m/s, z ` s]);
1289 (%i1) load ("ezunits") $
1290 (%i2) dimensionless ([x ` m, y ` m/s, z ` s]);
1291 0 errors, 0 warnings
1292 0 errors, 0 warnings
1298 Dimensionless quantities derived from fundamental physical quantities.
1299 Note that the first element on the list
1300 is proportional to the fine-structure constant.
1303 @c load ("ezunits") $
1304 @c load ("physical_constants") $
1305 @c dimensionless([%h_bar, %m_e, %m_P, %%e, %c, %e_0]);
1308 (%i1) load ("ezunits") $
1309 (%i2) load ("physical_constants") $
1310 (%i3) dimensionless([%h_bar, %m_e, %m_P, %%e, %c, %e_0]);
1311 0 errors, 0 warnings
1312 0 errors, 0 warnings
1315 (%o3) [--------------, ----]
1320 @category{Package ezunits}
1325 @c NEED TO FILL IN !!
1326 @deffn {関数} natural_unit (@var{expr}, [@var{v_1}, ..., @var{v_n}])
1328 @code{dimension(@var{expr}) = dimension(@var{v_1}^@var{e_1} ... @var{v_n}^@var{e_n})}であるような
1329 指数@var{e_1}, ..., @var{e_n}を見つけます。
1331 @code{load("ezunits")}はこの関数をロードします。
1341 @category{Package ezunits}