1 @c end concepts Simplification
3 * Functions and Variables for Simplification::
6 @c -----------------------------------------------------------------------------
7 @node Functions and Variables for Simplification, , Simplification, Simplification
8 @section Functions and Variables for Simplification
9 @c -----------------------------------------------------------------------------
11 @c -----------------------------------------------------------------------------
13 @defvr {キーワード} additive
15 もし@code{declare(f, additive)}が実行されると:
17 (1) もし@code{f}が1変数関数なら、@code{f}が和に適用された時はいつでも、
18 @code{f}は和の上に分配整理されます。
19 例えば、@code{f(y+x)}は、@code{f(y)+f(x)}に整理されます。
21 (2) もし@code{f}が2変数以上の関数なら、
22 @code{sum}や@code{integrate}の場合と同様に
23 加法性が第一番目の引数に対して定義されます。
24 例えば、@code{f(h(x)+g(x),x)}は@code{f(h(x),x)+f(g(x),x)}に整理されます。
25 @code{f}が@code{sum(x[i],i,lower-limit,upper-limit)}の形の式に適用されたときには
29 @category{Operators} @category{Declarations and inferences}
33 @c -----------------------------------------------------------------------------
34 @anchor{antisymmetric}
35 @defvr {宣言} antisymmetric
36 もし@code{declare(h,antisymmetric)}が実行されると、
37 @code{h}は反対称として整理されます。
38 例えば、@code{h(x,z,y)}は@code{-h(x,y,z)}と整理されます。
39 即ち、@code{symmetric}か@code{commutative}で得られた結果に(-1)^nを掛けたものとなります。
40 ここで、nはその形に変換するのに必要な置換の回数です。
43 @category{Operators} @category{Declarations and inferences}
47 @c -----------------------------------------------------------------------------
48 @deffn {関数} combine (@var{expr})
49 同じ分母を持つ項を単一の項に結合することによって和@var{expr}を整理します。
53 @category{Expressions}
57 @c -----------------------------------------------------------------------------
59 @defvr {宣言} commutative
61 もし@code{declare(h,commutative)}が実行されたなら、
62 @code{h}は可換関数として整理されます。
63 例えば、@code{h(x,z,y)}は@code{h(x,y,z)}に整理されます。
64 これは@code{symmetric}と同じです。
67 @category{Operators} @category{Declarations and inferences}
71 @c NEEDS CLARIFICATION, EXAMPLES
73 @c -----------------------------------------------------------------------------
75 @deffn {関数} demoivre (@var{expr})
76 @deffnx {オプション変数} demoivre
78 関数@code{demoivre (expr)}は、
79 グローバル変数@code{demoivre}を設定することなしに式を変換します。
81 変数@code{demoivre}が@code{true}の時、
82 複素数の指数関数は、円関数の項で表した同値な式に変換されます:
83 もし@code{b}が@code{%i}を含まなければ、
84 @code{exp (a + b*%i)}は、@code{%e^a * (cos(b) + %i*sin(b))}に整理されます。
85 @code{a}と@code{b}は展開されません。
87 @code{demoivre}のデフォルト値は@code{false}です。
89 @code{exponentialize}は、円関数や双曲関数を指数関数形に変換します。
90 @code{demoivre}と@code{exponentialize}は、同時に両方trueにはできません。
93 @category{Complex variables} @category{Trigonometric functions} @category{Hyperbolic functions}
99 @c -----------------------------------------------------------------------------
100 @anchor{function_distrib}
101 @deffn {関数} distrib (@var{expr})
104 式のトップレベルのみで働き、すなわち、再帰的でなく、
105 @code{expand}より速い点で、@code{expand}とは違います。
106 トップレベルの和すべてを展開する点で、@code{multthru}とは違います。
111 (%i1) distrib ((a+b) * (c+d));
112 (%o1) b d + a d + b c + a c
113 (%i2) multthru ((a+b) * (c+d));
114 (%o2) (b + a) d + (b + a) c
115 (%i3) distrib (1/((a+b) * (c+d)));
117 (%o3) ---------------
119 (%i4) expand (1/((a+b) * (c+d)), 1, 0);
121 (%o4) ---------------------
122 b d + a d + b c + a c
126 @category{Expressions}
130 @c -----------------------------------------------------------------------------
131 @anchor{distribute_over}
132 @defvr {オプション変数} distribute_over
135 @code{distribute_over}は、
136 リストや行列や等式のようなバッグ(重複を許す集合)上の関数のマッピングを制御します。
137 今回、すべてのMaxima関数がこのプロパティを持つ訳ではありません。
138 このプロパティはコマンド@code{properties}で調べることが可能です。
140 @code{distribute_over}を値@code{false}に設定した時、
141 関数のマッピングはオフにスイッチされます。
145 @code{sin}関数はリスト上にマップします:
151 (%i1) sin([x,1,1.0]);
152 (%o1) [sin(x), sin(1), .8414709848078965]
160 @c mod([x,11,2*a],10);
161 @c mod([[x,y,z],11,2*a],10);
164 (%i2) mod([x,11,2*a],10);
165 (%o2) [mod(x, 10), 1, 2 mod(a, 5)]
166 (%i3) mod([[x,y,z],11,2*a],10);
167 (%o3) [[mod(x, 10), mod(y, 10), mod(z, 10)], 1, 2 mod(a, 5)]
170 @code{floor}関数の行列や等式上のマッピング:
173 @c floor(matrix([a,b],[c,d]));
177 (%i4) floor(matrix([a,b],[c,d]));
178 [ floor(a) floor(b) ]
180 [ floor(c) floor(d) ]
182 (%o5) floor(a) = floor(b)
185 1変数以上の関数は、任意の引数上、または、すべての引数上にマップします:
188 @c expintegral_e([1,2],[x,y]);
191 (%i6) expintegral_e([1,2],[x,y]);
192 (%o6) [[expintegral_e(1, x), expintegral_e(1, y)],
193 [expintegral_e(2, x), expintegral_e(2, y)]]
196 関数がプロパティdistribute_overを持つかチェックします:
202 (%i7) properties(abs);
203 (%o7) [integral, distributes over bags, noun, rule, gradef]
207 @category{Simplification flags and variables}
211 @c -----------------------------------------------------------------------------
213 @defvr {オプション変数} domain
216 @code{domain}が@code{complex}に設定されている時、
217 @code{sqrt (x^2)}は、@code{abs(x)}を返さず、@code{sqrt (x^2)}
220 @c PRESERVE EDITORIAL COMMENT -- MAY HAVE SOME SIGNIFICANCE NOT YET UNDERSTOOD !!!
221 @c The notion of a "domain" of simplification is still in its infancy,
222 @c and controls little more than this at the moment.
225 @category{Simplification flags and variables}
229 @c -----------------------------------------------------------------------------
235 @code{declare(f, evenfun}や @code{declare(f, oddfun}は
236 関数 @code{f}を奇関数か偶関数として認識するように指示します。
241 (%i1) o (- x) + o (x);
243 (%i2) declare (o, oddfun);
245 (%i3) o (- x) + o (x);
247 (%i4) e (- x) - e (x);
249 (%i5) declare (e, evenfun);
251 (%i6) e (- x) - e (x);
256 @c -----------------------------------------------------------------------------
258 @deffn {関数} expand (@var{expr})
259 @deffnx {関数} expand (@var{expr}, @var{p}, @var{n})
262 指数和や和の積の積を実行し、有理式の分子をそれぞれの項に分割し、
263 (可換、非可換な)積が@var{expr}のすべてのレベルの和で分配されます。
265 多項式の場合、もっと効率的なアルゴリズムの@code{ratexpand}を普通使うべきです。
267 @code{maxnegex}と@code{maxposex}はそれぞれ、展開される最大の負と正の指数を制御します。
269 @code{expand (expr, p, n)}は、
270 @var{expr}を、@code{maxposex}に@var{p}を@code{maxnegex}に@var{n}を使って展開します。
271 これは、式のすべてではなく、一部を展開するために役立ちます。
273 @code{expon} - 自動的に展開される最大の負のべきの指数(@code{expand}のコールに独立して)。
274 例えば、もしも@code{expon}が4なら@code{(x+1)^(-5)}は自動では展開されません。
276 @code{expop} - 自動的に展開される最大の正の指数。
277 もし@code{expop}が3以上なら、@code{(x+1)^3}は自動的に展開されます。
278 もし@code{n}が@code{expop}よりも大きい時@code{(x+1)^n}が展開されるのが望まれるなら、
279 @code{maxposex}が@code{n}より小さくない場合のみ、@code{expand ((x+1)^n)}の実行が行われます。
281 @code{ev}で使われる@code{expand}フラグによって展開が実行されます。
283 ファイル@file{share/simplification/facexp.mac}は、
284 @c I should really use a macro which expands to something like
285 @c @uref{file://...,,simplification/facexp.mac}. But texi2html
286 @c currently supports @uref only with one argument.
287 @c Worse, the `file:' scheme is OS and browser dependent.
288 ユーザーに制御された展開によって式を構成する機能を提供するいくつかの関連関数
289 (特に自動ロードされる@code{facsum}, @code{factorfacsum}と@code{collectterms})と
290 変数(@code{nextlayerfactor}と@code{facsum_combine})を含みます。
291 @c MERGE share/simplification/facexp.usg INTO THIS FILE OR CREATE NEW FILE facexp.texi
292 簡単な関数の記述が@file{simplification/facexp.usg}にあります。
293 @code{demo("facexp")}でデモが実行できます。
298 @c expr:(x+1)^2*(y+1)^3;
301 @c expr:(x+1)^-2*(y+1)^3;
306 (%i1) expr:(x+1)^2*(y+1)^3;
308 (%o1) (x + 1) (y + 1)
311 (%o2) x y + 2 x y + y + 3 x y + 6 x y + 3 y + 3 x y
313 + 6 x y + 3 y + x + 2 x + 1
314 (%i3) expand(expr,2);
316 (%o3) x (y + 1) + 2 x (y + 1) + (y + 1)
317 (%i4) expr:(x+1)^-2*(y+1)^3;
326 (%o5) ------------ + ------------ + ------------ + ------------
328 x + 2 x + 1 x + 2 x + 1 x + 2 x + 1 x + 2 x + 1
329 (%i6) expand(expr,2,2);
342 @c expr:(1+x)^2*sin(x);
343 @c exponentialize:true;
347 (%i7) expr:(1+x)^2*sin(x);
350 (%i8) exponentialize:true;
352 (%i9) expand(expr,0,0);
354 %i (x + 1) (%e - %e )
355 (%o9) - -------------------------------
360 @category{Expressions}
366 @c -----------------------------------------------------------------------------
368 @deffn {関数} expandwrt (@var{expr}, @var{x_1}, ..., @var{x_n})
370 式@code{expr}を、変数@var{x_1}, ..., @var{x_n}に関して展開します。
372 返される形式は、変数を含む式の和の積を含みません。
373 @var{x_1}, ..., @var{x_n}は、変数、演算子、式であり得ます。
375 デフォルトでは、分母は展開されませんが、これは、スイッチ@code{expandwrt_denom}によって
378 この関数は@file{simplification/stopex.mac}から自動ロードされます。
381 @category{Expressions}
385 @c -----------------------------------------------------------------------------
386 @anchor{expandwert_denom}
387 @defvr {オプション変数} expandwrt_denom
390 @code{expandwrt_denom}は、@code{expandwrt}によって有理式の扱いを制御します。
391 もし@code{true}なら、式の分子も分母も@code{expandwrt}の引数に従って展開されますが、
392 もし@code{expandwrt_denom}が@code{false}なら、分子だけがその方法で展開されます。
395 @category{Expressions}
399 @c NEEDS A STAND-ALONE DESCRIPTION (NOT "IS SIMILAR TO")
401 @c -----------------------------------------------------------------------------
402 @anchor{expandwrt_factored}
403 @deffn {関数} expandwrt_factored (@var{expr}, @var{x_1}, ..., @var{x_n})
405 @code{expandwrt}に似ていますが、積の式を幾分違って扱います。
406 @code{expandwrt_factored}は、@code{expr}の、
407 変数@var{x_1}, ..., @var{x_n}を含む因子上でだけ展開します。
409 @c NOT SURE WHY WE SHOULD MENTION THIS HERE
410 この関数は、@file{simplification/stopex.mac}から自動ロードされます。
413 @category{Expressions}
417 @c -----------------------------------------------------------------------------
419 @defvr {オプション変数} expon
422 @code{expon}は、(@code{expand}のコールに依らず)自動的に展開される負のべき乗の最大指数です。
425 @code{(x+1)^(-5)}は自動的には展開されません。
428 @category{Expressions}
433 @c -----------------------------------------------------------------------------
434 @anchor{exponentialize}
435 @deffn {関数} exponentialize (@var{expr})
436 @deffnx {オプション変数} exponentialize
438 関数@code{exponentialize (expr)}は、
439 @var{expr}の中の円関数や双曲関数を指数関数に変換します。
440 グローバル変数@code{exponentialize}を設定する必要はありません。
442 変数@code{exponentialize}が@code{true}の時、
443 円関数や双曲関数すべては指数関数形に変換されます。
444 デフォルト値は@code{false}です。
446 @code{demoivre}は複素数の指数関数を円関数に変換します。
447 @code{exponentialize}や@code{demoivre}は同時にtrueにすることはできません。
450 @category{Complex variables} @category{Trigonometric functions} @category{Hyperbolic functions}
454 @c NEEDS CLARIFICATION
457 @c -----------------------------------------------------------------------------
459 @defvr {オプション変数} expop
462 @code{expop}は、自動的に展開される最高の正の指数です。
463 例えば、@code{(x + 1)^3}が入力された時、
464 @code{expop}が3以下の時だけ自動的に展開されます。
465 もし、@code{n}が@code{expop}より大きい@code{(x + 1)^n}が展開されることを望むなら、
466 @code{expand ((x + 1)^n)}の実行は、
467 @code{maxposex}がn以上の時だけ機能します。
470 @category{Expressions}
474 @c NEEDS CLARIFICATION, EXAMPLES
475 @c -----------------------------------------------------------------------------
476 @anchor{lassociative}
477 @defvr {宣言} lassociative
479 @code{declare (g, lassociative)}は、
481 @code{g}が左結合であることを告げます。
482 例えば、@code{g (g (a, b), g (c, d))}は@code{g (g (g (a, b), c), d)}に整理されます。
485 @category{Declarations and inferences} @category{Operators} @category{Simplification}
489 @c NEEDS CLARIFICATION, EXAMPLES
490 @c WHAT'S UP WITH THE QUOTE MARKS ??
492 @c -----------------------------------------------------------------------------
497 そう宣言された1変数関数@code{f}に関して、
498 "expansion" @code{f(x + y)}は@code{f(x) + f(y)}を出力し、
499 @code{a}が定数の@code{f(a*x)}は、@code{a*f(x)}を出力します。
501 「線形性」は、@code{sum}や@code{integrate}の場合のように定義されます。
502 すなわち、@code{a}と@code{b}が@code{x}に独立の場合,
503 @code{f (a*x + b, x)}は@code{a*f(x,x) + b*f(1,x)}を出力します。
505 @code{linear}は、@code{additive}かつ@code{outative}と同値です。
506 @code{opproperties}も参照してください。
509 @category{Declarations and inferences} @category{Operators} @category{Simplification}
515 @c -----------------------------------------------------------------------------
517 @defvr {オプション変数} maxnegex
521 @code{expand}コマンドによって展開される最大の負の指数です。
522 (@code{maxposex})も参照してください。)
525 @category{Expressions}
531 @c -----------------------------------------------------------------------------
533 @defvr {オプション変数} maxposex
537 @code{expand}コマンドで展開される最大指数です。
538 (@code{maxnegex})も参照してください。)
541 @category{Expressions}
547 @c -----------------------------------------------------------------------------
548 @anchor{multiplicative}
549 @defvr {宣言} multiplicative
551 @code{declare (f, multiplicative)}は、Maxima整理器に
552 @code{f}が乗法的であることを告げます。
557 整理器が積に適用された@code{f}に出会うといつでも、
558 @code{f}はその積上に分配されます。
559 例えば、@code{f(x*y)}は@code{f(x)*f(y)}に整理されます。
563 乗法性は、@code{f}の最初の引数の乗法性として定義されます。
565 @code{f (g(x) * h(x), x)}は、@code{f (g(x) ,x) * f (h(x), x)}に整理されます。
568 この式整理は、@code{f}が@code{product (x[i], i, m, n)}の形の式に適用された時にはなされません。
571 @category{Declarations and inferences} @category{Expressions} @category{Simplification}
577 @c -----------------------------------------------------------------------------
579 @deffn {関数} multthru (@var{expr})
580 @deffnx {関数} multthru (@var{expr_1}, @var{expr_2})
582 @var{expr}の(和の)因子に@var{expr}の他の因子を掛ける。
583 すなわち、@var{expr}は@code{@var{f_1} @var{f_2} ... @var{f_n}}です。
584 ここで、少なくとも1つの因子、@var{f_i}としましょう、は項の和です。
585 この和の各項に、積の中の他の因子を掛けます。
586 (すなわち、@var{f_i}を除いた因子すべてです。)
587 @code{multthru}は、指数化された和を展開しません。
588 この関数は、(可換であれ非可換であれ)積を和上に分配する最も速い方法です。
590 @code{multthru}は積によって和を割ることにも使うことができます。
592 @code{multthru (@var{expr_1}, @var{expr_2})}は、
593 (和もしくは等式の)@var{expr_2}の中の各項に@var{expr_1}を掛けます。
594 もし@var{expr_1}がそれ自身和でなければ、
595 この形式は@code{multthru (@var{expr_1}*@var{expr_2})}と同値です。
598 (%i1) x/(x-y)^2 - 1/(x-y) - f(x)/(x-y)^3;
600 (%o1) - ----- + -------- - --------
603 (%i2) multthru ((x-y)^3, %);
605 (%o2) - (x - y) + x (x - y) - f(x)
608 (%o3) - y + x y - f(x)
609 (%i4) ((a+b)^10*s^2 + 2*a*b*s + (a*b)^2)/(a*b*s^2);
611 (b + a) s + 2 a b s + a b
612 (%o4) ------------------------------
615 (%i5) multthru (%); /* note that this does not expand (b+a)^10 */
618 (%o5) - + --- + ---------
621 (%i6) multthru (a.(b+c.(d+e)+f));
622 (%o6) a . f + a . c . (e + d) + a . b
623 (%i7) expand (a.(b+c.(d+e)+f));
624 (%o7) a . f + a . c . e + a . c . d + a . b
628 @category{Expressions}
632 @c -----------------------------------------------------------------------------
633 @anchor{declaration_nary}
636 @code{declare(f, nary)}はMaximaに
637 関数 @code{f}をn項関数として認識するよう指示します。
640 @mxref{operator_nary, nary}関数をコールするのと同じではありません。
641 @code{declare(f, nary)}は唯一の効果は
642 例えば、 @code{foo(x, foo(y, z))}を
643 @code{foo(x, y, z)}に整理するように
644 入れ子の式をフラットにするようMaxima整理器に指示することです。
645 @mrefdot{declare}も参照してください。
650 (%i1) H (H (a, b), H (c, H (d, e)));
651 (%o1) H(H(a, b), H(c, H(d, e)))
652 (%i2) declare (H, nary);
654 (%i3) H (H (a, b), H (c, H (d, e)));
655 (%o3) H(a, b, c, d, e)
659 @c NEEDS CLARIFICATION, EXAMPLES
661 @c -----------------------------------------------------------------------------
663 @defvr {オプション変数} negdistrib
666 @code{negdistrib}が@code{true}の時,
668 例えば、@code{-(x + y)}は@code{- y - x}になります。
669 @code{false}に設定すると、@code{- (x + y)}はそのまま表示されることになるでしょう。
670 これは時々役に立ちますが、非常に注意してください;
672 当然のことながら、Maximaの中でローカルな使用以外には、
673 これは、@code{false}に設定したくないフラグの1つです。
676 @category{Simplification flags and variables}
681 @c -----------------------------------------------------------------------------
682 @anchor{opproperties}
683 @defvr {システム変数} opproperties
685 @code{opproperties}は、Maximaの整理器が認識する特殊演算子プロパティのリストです:
686 @code{linear}, @code{additive}, @code{multiplicative}, @code{outative}, @code{evenfun},
687 @code{oddfun}, @code{commutative}, @code{symmetric}, @code{antisymmetric}, @code{nary},
688 @code{lassociative}, @code{rassociative}.
691 @category{Global variables} @category{Operators}
698 @c -----------------------------------------------------------------------------
702 @code{declare (f, outative)}は、Maximaの整理器に
703 @code{f}の引数の中の定数因子が外に出すことができることを告げます。
708 整理器が積に適用された@code{f}に出会うといつでも、その積は定数因子と、ていすうでない因子に分割され、定数因子が外に出されます。
709 例えば、@code{f(a*x)}は、@code{a}を定数とすると、@code{a*f(x)}に整理されます。
713 outativityは、@code{sum}や@code{integrate}の場合のように定義されます。
714 すなわち、@code{f (a*g(x), x)}は、@code{a}が@code{x}に依らないとすると、
715 @code{a * f(g(x), x)}に整理されます。
718 @code{sum}, @code{integrate}, @code{limit}はすべて@code{outative}です。
721 @category{Declarations and inferences} @category{Operators}
725 @c -----------------------------------------------------------------------------
727 @deffn {関数} radcan (@var{expr})
729 対数関数、指数関数、累乗根を含む@var{expr}を、与えられ場変数の順序で式の大きなクラス上の標準形式に整理します;
730 関数的に同値な形式は特殊な形式にマップされます。
731 式の幾分大きなクラスのため、@code{radcan}は正規の形式を生成します。
732 このクラスの2つの式は、必ずしも、同じ結果ではありませんが、それらの差は@code{radcan}によって0に整理されます。
734 いくつかの式のため、@code{radcan}は特殊な時間消費をします。
735 これは、因数分解や指数関数の部分分解展開に基づいた整理のための式のコンポーネントの間のある関係を探求するコストです。
737 @c %e_to_numlog NEEDS ITS OWN @defvar !!!
739 @c %e_to_numlog HAS NO EFFECT ON RADCAN. RADCAN ALWAYS SIMPLIFIES
740 @c exp(a*log(x)) --> x^a. Commenting the following out. 11/2009
741 @c When @code{%e_to_numlog} is @code{true}, @code{%e^(r*log(expr))} simplifies
742 @c to @code{expr^r} if @code{r} is a rational number.
744 @c RADEXPAND CONTROLS THE SIMPLIFICATION OF THE POWER FUNCTION, E.G.
745 @c (x*y)^a --> x^a*y^a AND (x^a)^b --> x^(a*b), IF RADEXPAND HAS THE VALUE 'ALL.
746 @c THE VALUE OF RADEXPAND HAS NO EFFECT ON RADCAN. RADCAN ALWAYS SIMPLIFIES
747 @c THE ABOVE EXPRESSIONS. COMMENTING THE FOLLOWING OUT. 11/2009
748 @c When @code{radexpand} is @code{false}, certain transformations are inhibited.
749 @c @code{radcan (sqrt (1-x))} remains @code{sqrt (1-x)} and is not simplified
750 @c to @code{%i sqrt (x-1)}. @code{radcan (sqrt (x^2 - 2*x + 1))} remains
751 @c @code{sqrt (x^2 - 2*x + 1)} and is not simplified to @code{x - 1}.
756 @c radcan((log(x+x^2)-log(x))^a/log(1+x)^(a/2));
757 @c radcan((log(1+2*a^x+a^(2*x))/log(1+a^x)));
758 @c radcan((%e^x-1)/(1+%e^(x/2)));
761 (%i1) radcan((log(x+x^2)-log(x))^a/log(1+x)^(a/2));
765 (%i2) radcan((log(1+2*a^x+a^(2*x))/log(1+a^x)));
768 (%i3) radcan((%e^x-1)/(1+%e^(x/2)));
774 @category{Simplification functions}
778 @c NEEDS CLARIFICATION, EXAMPLES
780 @c -----------------------------------------------------------------------------
782 @defvr {オプション変数} radexpand
785 @code{radexpand}は、根号のいくつかの整理を制御します。
787 @code{radexpand}が@code{all}の時
788 n乗の積の因子のn番目の根を根号の外に出すようにします。
789 例えば、もし@code{radexpand}が@code{all}なら、
790 @code{sqrt (16*x^2)}は@code{4*x}に整理されます。
792 @c EXPRESS SIMPLIFICATON RULES IN GENERAL CASE, NOT SPECIAL CASE
793 特に、@code{sqrt (x^2)}を考えます。
796 もし@code{radexpand}が@code{all}もしくは@code{assume (x > 0)}が実行されたなら、
797 @code{sqrt(x^2)}は@code{x}に整理されます。
799 もし@code{radexpand}が@code{true}、かつ@code{domain}が@code{real}(これはデフォルトです)なら、
800 @code{sqrt(x^2)}は@code{abs(x)}に整理されます。
802 もし@code{radexpand}が@code{false}、もしくは、@code{radexpand}が@code{true}かつ@code{domain}が@code{complex}なら、
803 @code{sqrt(x^2)}は整理されません。
806 @c CORRECT STATEMENT HERE ???
807 @code{domain}は、@code{radexpand}が@code{true}の時だけ意味を持つことに注意してください。
810 @category{Simplification flags and variables}
816 @c NEEDS CLARIFICATION, EXAMPLES
818 @c -----------------------------------------------------------------------------
819 @anchor{rassociative}
820 @defvr {宣言} rassociative
822 @code{declare (g, rassociative)}は、
824 @code{g}が右結合であることを告げます。
826 @code{g(g(a, b), g(c, d))}は、@code{g(a, g(b, g(c, d)))}に整理されます。
829 @category{Declarations and inferences} @category{Operators}
833 @c NEEDS CLARIFICATION, EXAMPLES
835 @c -----------------------------------------------------------------------------
837 @deffn {関数} scsimp (@var{expr}, @var{rule_1}, ..., @var{rule_n})
839 順次的な相対整理(Sequential Comparative Simplification) (Stouteによる方法)。
841 規則@var{rule_1}, ..., @var{rule_n}に従って、
842 @var{expr}を整理しようとします。
845 そうでなければ、すべての整理が試された後、
848 @c MERGE EXAMPLES INTO THIS FILE
849 @code{example (scsimp)}はいくつかの例を表示します。
852 @category{Simplification functions}
856 @c -----------------------------------------------------------------------------
858 @defvr {オプション変数} simp
861 @code{simp}は整理を有効にします。
863 @code{simp}は@code{evflag}でもあります。
864 それは関数@code{ev}に認識されます。@code{ev}を参照してください。
867 値@code{false}で@code{evflag}として使われる時、
870 フラグは評価フェイズに続く整理を抑制できません。
874 整理がグローバルにオフにスイッチされます。
875 式@code{sin(1.0)}は数値に整理されません。
876 @code{simp}-フラグは整理をオンにスイッチします。
889 (%o3) .8414709848078965
893 @code{simp}-フラグは完全に整理を抑制できません。
894 割り当ては式の評価フェイズの間に起こるので、
896 変数@code{x}は、値として未整理の式を持ちます。
900 @c x:sin(1.0),simp:false;
906 (%i5) x:sin(1.0),simp:false;
907 (%o5) .8414709848078965
913 @category{Evaluation flags}
917 @c NEEDS CLARIFICATION, EXAMPLES
919 @c -----------------------------------------------------------------------------
921 @defvr {宣言} symmetric
923 @code{declare (h, symmetric)}は、Maximaの整理器に
924 @code{h}が対称関数であることを告げます。
925 例えば、@code{h (x, z, y)}は@code{h (x, y, z)}に整理されます。
927 @code{commutative}は@code{symmetric}と同義です。
930 @category{Declarations and inferences} @category{Operators}
934 @c -----------------------------------------------------------------------------
936 @deffn {関数} xthru (@var{expr})
938 (和でなければいけない)@var{expr}のすべての項を、
939 共通分母上で、@code{ratsimp}がするように積や指数和を展開することなしに結合させます。
940 @code{xthru}は、因子が陽であるときだけ、有理式の分子と分母の共通因子を消去します。
942 @c REPHRASE IN NEUTRAL TONE (GET RID OF "IT IS BETTER")
943 分子と分母の最大公約数の陽因子を消去するために、式を@code{ratsimp}する前に@code{xthru}を使うのがよい場合があります。
946 @c ((x+2)^20 - 2*y)/(x+y)^20 + (x+y)^(-19) - x/(x+y)^20;
950 (%i1) ((x+2)^20 - 2*y)/(x+y)^20 + (x+y)^(-19) - x/(x+y)^20;
954 (%o1) --------- + --------------- - ---------
956 (y + x) (y + x) (y + x)
967 @category{Expressions}