Nightlybuild/nightlytest scripts: Add documentation.
[maxima.git] / doc / info / ja / simplifications.texi
blobda2f1d203dfa01f6a47dd298859a44128c8f31ce
1 @menu
2 * Introduction to simplification::
3 * Package absimp::
4 * Package facexp::
5 * Package functs::
6 * Package ineq::
7 * Package rducon::
8 * Package scifac::
9 * Package sqdnst::
10 @end menu
12 @node Introduction to simplification, Package absimp, simplification, simplification
13 @section Introduction to simplification
15 ディレクトリ@code{maxima/share/simplification}は
16 整理ルールと整理関数を実装するいくつかのスクリプトと整理に関係しないいくつかの関数を含みます。
18 @c Adapted from absimp.usg ----------------------
20 @node Package absimp, Package facexp, Introduction to simplification, simplification
21 @section Package absimp
23 @code{absimp}パッケージは
24 @code{abs}と@code{signum}関数のために
25 組み込み整理ルールを拡張する
26 パターンマッチングルールを含みます。
27 @code{absimp}は、
28 組み込み@code{assume}関数で、また、
29 偶数や奇数に関して@code{modedeclare (m, even, n, odd)}のような宣言によって
30 確立された関係を考慮します。
32 @code{absimp}は
33 @code{abs}と@code{signum}を使って
34 @code{unitramp}と@code{unitstep}関数を定義します。
36 @code{load ("absimp")}はこのパッケージをロードします。
37 @code{demo (absimp)}はこのパッケージのデモを表示します。
39 例:
41 @c ===beg===
42 @c load ("absimp")$
43 @c (abs (x))^2;
44 @c diff (abs (x), x);
45 @c cosh (abs (x));
46 @c ===end===
47 @example
48 (%i1) load ("absimp")$
49 (%i2) (abs (x))^2;
50                                        2
51 (%o2)                                 x
52 (%i3) diff (abs (x), x);
53                                       x
54 (%o3)                               ------
55                                     abs(x)
56 (%i4) cosh (abs (x));
57 (%o4)                               cosh(x)
58 @end example
60 @c disol.usg: "disolate" already in doc/info/Expressions.texi
62 @c elim.usg: "eliminate" already in doc/info/Polynomials.texi
64 @opencatbox
65 @category{Simplification functions}
66 @category{Rules and patterns}
67 @category{Share packages}
68 @category{Package absimp}
69 @closecatbox
72 @c Adapted from facexp.usg ----------------------
73 @c ALL OF THE TEXT IN FACEXP.USG IS VERY VAGUE.
74 @c I HAVE NO IDEA WHAT THESE FUNCTIONS DO.
75 @c ALL OF THESE ITEMS NEED TO BE HEAVILY REVISED
76 @c (ASSUMING THIS PACKAGE IS SOMETHING WE WANT TO INVEST TIME IN)
77 @node Package facexp, Package functs, Package absimp, simplification
78 @section Package facexp
80 @c THIS IS VERY VAGUE. JUST WHAT DOES THIS DO?
81 @code{facexp}パッケージは、
82 制御された展開によって式を構造化する能力をユーザーに与えるいくつかの関連関数を含みます。
83 式が物理的意味を持つ変数を含むとき、この能力は特に役に立ちます。
84 そんな式の最も簡潔な形式は、それらの変数に関して式を完全に展開し、
85 その後係数を因数分解することで得られることがしばしばあるからです。
86 この手続きは標準のMaxima関数を使って実行することは難しくありませんが、
87 追加の微調整も望まれていて、これらの仕上げは適用するのが更に難しくなることがあります。
89 関数@code{facsum}とその関連形式は、
90 この方法で式の構造を制御するための便利な手段を提供します。
91 別の関数@code{collectterms}は、
92 この形式に既に整理された複数の式を
93 式全体を再整理することなく、足し合わせるのに使うことができます。
94 式が非常に大きいとき、この関数は役に立つかもしれません。
96 @c CAN'T FIND ANY SUCH FILE "DIAGEVAL".
97 @c THERE ARE COMMENTED-OUT DEFNS OF FACTENEXPAND, FACEXPTEN, AND FACTORFACEXPTEN
98 @c IN FACEXP (AND NOWHERE ELSE).
99 @c COMMENTING OUT THIS TEXT FOR NOW.
100 @c Note:  @code{factenexpand}, @code{facexpten}, and @code{factorfacexpten}  are available  only
101 @c after loading @code{diageval}. They are special functions used for  tensor
102 @c manipulation.
104 @code{load ("facexp")}はこのパッケージをロードします。
105 @code{demo (facexp)}はこのパッケージのデモを見せます。
107 @opencatbox
108 @category{Expressions}
109 @category{Share packages}
110 @category{Package facexp}
111 @closecatbox
114 @c THIS IS VERY VAGUE. JUST WHAT DOES THIS DO?
115 @c SOME EXAMPLES WOULD HELP HERE
116 @deffn {関数} facsum (@var{expr}, @var{arg_1}, ..., @var{arg_n})
117 引数@var{arg_1}, ..., @var{arg_n}に依存する
118 @var{expr}の形式を返します。
119 引数は@code{ratvars}に適した任意の形式か、そんな形式のリストを取り得ます。
120 もし引数がリストでなければ、
121 返される形式は、引数に関して完全に展開され、引数の係数は因数分解されます。
122 これらの係数は、非合理的な意味合いを除いて引数に依存しません。
124 引数のいずれかがリストなら、リストすべては1つのリストに結合されて、
125 引数の係数に対して@code{factor}をコールする代わりに
126 @code{facsum}は、
127 これらの係数に対して自分自身をコールします。
128 この再帰コールに関しては、上記で新しく構成されたリストが新しい引数リストとして使われます。
129 この処理は、リストの中に望まれた要素を入れ子にすることで、任意の深さまで繰り返すことができます。
132 It is possible that one may wish to @code{facsum} with respect  to more
133 complicated subexpressions,  such as  
134 @code{log (x + y)}のような、より複雑な部分式に関して
135 @code{facsum}したいかも知れません。
136 そんな引数も許されています。
138 @c CUTTING THIS OUT, BECAUSE IT IS OBVIOUSLY NOT CORRECT
139 @c SEE EXAMPLE IN BUG REPORT ID: 2834336 - ratsimp vs facsum
140 @c With no variable specification, for example @code{facsum (@var{expr})}, the 
141 @c result returned is the same as that returned by @code{ratsimp (@var{expr})}.
143 時々、ユーザーは
144 式に関して、先頭演算子によってのみ指定された上記形式いずれかが欲しいかもしれません。
145 例えば、
146 すべての@code{log}に関して@code{facsum}したかもしれません。
147 この場合、
148 この方法で扱われる特定の@code{log}か、
149 代わりに式@code{operator (log)}や@code{'operator (log)}
150 を引数に含むことができます。
151 もし
152 演算子@var{op_1}, ..., @var{op_n}に関して
153 式@var{expr}を@code{facsum}したいなら、
154 @code{facsum (@var{expr}, operator (@var{op_1}, ..., @var{op_n}))}を評価します。
155 @code{operator}形式はリスト引数の中でも可能です。
157 更に、
158 スイッチ@code{facsum_combine}と@code{nextlayerfactor}の設定は
159 @code{facsum}の結果に影響するかもしれません。
161 @opencatbox
162 @category{Package facexp}
163 @category{Expressions}
164 @closecatbox
166 @end deffn
168 @defvr {グローバル変数} nextlayerfactor
169 デフォルト値: @code{false}
171 @code{nextlayerfactor}が@code{true}の時、
172 @code{facsum}の再帰コールが
173 引数の係数の因数分解された形式の因子に適用されます。
175 @code{false}の時、
176 @code{facsum}は、
177 @code{facsum}への再帰コールが起こる時はいつでも、全体としてそれぞれの係数に適用されます。
180 @code{facsum}の引数リストに
181 アトム@code{nextlayerfactor}を入れると、
182 @code{nextlayerfactor: true}の効果がありますが、
183 式の次のレベル@i{だけ}に関してです。
185 @code{nextlayerfactor}はいつも
186 @code{true}か@code{false}にバインドされているので、
187 @code{facsum}の引数リストの中に現れる時はいつでも、
188 シングルクォートで表さなければいけません。
190 @opencatbox
191 @category{Package facexp}
192 @category{Expressions}
193 @closecatbox
195 @end defvr
197 @defvr {グローバル変数} facsum_combine
198 デフォルト値: @code{true}
200 引数が多項式の商の時、
201 @code{facsum_combine}は
202 @code{facsum}が返す最終結果の形式を制御します。
203 もし@code{facsum_combine}が@code{false}なら、
204 形式は既に記述したような完全に展開された和として返されますが、
205 もし@code{true}なら、
206 返される式は、既に記述した形式の多項式の比です。
208 有理式の分子と分母両方を@code{facsum}したいが、
209 分母が分子の項ずつに掛けられたくない時、
210 このスイッチの@code{true}設定は役に立ちます。
212 @opencatbox
213 @category{Package facexp}
214 @category{Expressions}
215 @closecatbox
217 @end defvr
219 @deffn {関数} factorfacsum (@var{expr}, @var{arg_1}, ... @var{arg_n})
220 @var{expr}の因子に関して引数として
221 @var{arg_1}, ... @var{arg_n}を付けて@code{facsum}をコールすることで得られる
222 @var{expr}の形式を返します。
223 もし@var{expr}の因子のいずれかがべきに累乗されるなら、
224 因子と指数と両方がこの方法で処理されます。
226 @opencatbox
227 @category{Package facexp}
228 @category{Expressions}
229 @closecatbox
231 @end deffn
233 @c -----------------------------------------------------------------------------
234 @anchor{collectterms}
235 @deffn {関数} collectterms (@var{expr}, @var{arg_1}, ..., @var{arg_n})
237 もしいくつかの式が@code{facsum}もしくは@code{factorfacsum}, @code{factenexpand}, @code{facexpten},
238  @code{factorfacexpten}で整理されていて、それらが一緒に加算されているなら、
239 関数@code{collectterms}を使ってそれらを結合することが望まれる場合があります。
240 @code{collectterms}は、@code{nextlayerfactor}を除いてこれらの他の関連した関数に渡すことができる引数すべてを
241 引数として取ることができます。
242 @code{collectterms}の利点は、@code{facsum}と似た形式を返すことです。
243 しかし、既に@code{facsum}で処理された加算形式なのでこの処理を繰り返す必要はありません。
244 この能力は加算する式が非常に大きい時特に役立ちます。
246 @opencatbox
247 @category{Package facexp}
248 @category{Expressions}
249 @closecatbox
250 @end deffn
252 @c Adapted from functs.usg ----------------------
254 @c conjugate already described in doc/info/Matrices.texi
255 @node Package functs, Package ineq, Package facexp, simplification
256 @section Package functs
258 @opencatbox
259 @category{Share packages}
260 @category{Package functs}
261 @closecatbox
263 @deffn {関数} rempart (@var{expr}, @var{n})
264 式@var{expr}からパーツ@var{n}を取り除きます。
266 もし@var{n}が形式@code{[@var{l}, @var{m}]}のリストなら、
267 パーツ@var{l}から@var{m}までが取り除かれます。
269 この関数を使うには、最初に@code{load("functs")}を書いてください。
271 @opencatbox
272 @category{Package functs}
273 @category{Expressions}
274 @closecatbox
276 @end deffn
278 @deffn {関数} wronskian ([@var{f_1}, ..., @var{f_n}], @var{x})
279 変数@var{x}に関する式のリスト[@var{f_1}, ..., @var{f_n}]の
280 Wronskian行列を返します。
281 Wronskian行列の行列式は、
282 式のリストのWronskian行列式です。
284 @code{wronskian}を使うには、最初に@code{load("functs")}してください。例えば:
286 @c ===beg===
287 @c load ("functs")$
288 @c wronskian([f(x), g(x)],x);
289 @c ===end===
290 @example
291 (%i1) load("functs")$
292 (%i2) wronskian([f(x), g(x)],x);
293 (%o2) matrix([f(x),g(x)],['diff(f(x),x,1),'diff(g(x),x,1)])
294 @end example
296 @opencatbox
297 @category{Package functs}
298 @category{Differential calculus}
299 @closecatbox
301 @end deffn
303 @c adjoint already described in doc/info/Matrices.texi
305 @deffn {関数} tracematrix (@var{M})
306 行列@var{M}の跡(対角要素の和)を返します。
308 この関数を使うには、最初に@code{load("functs")}を書いてください。
310 @opencatbox
311 @category{Package functs}
312 @category{Matrices}
313 @closecatbox
315 @end deffn
317 @deffn {関数} rational (@code{z})
318 分母を有理化するように、
319 @var{z}の分子と分母に分母の複素共役を掛けます。
320 もし与えられたものがそうであれば、正準有理式(CRE)形式を返し、
321 そうでないなら、一般形式を返します。
323 この関数を使うには、最初に@code{load("functs")}を書いてください。
325 @opencatbox
326 @category{Package functs}
327 @category{Expressions}
328 @closecatbox
330 @end deffn
332 @c uprobe calls ?uprobe and assumes file is a list => obsolete, not common lisp
334 @c kronecker superseded by kron_delta in src/nset.lisp
336 @deffn {関数} nonzeroandfreeof (@var{x}, @var{expr})
337 もし @var{expr}がゼロでなく、
338 @code{freeof (@var{x}, @var{expr})}が@code{true}を返すなら、
339 @code{true}を返します。
340 そうでなければ、@code{false}を返します。
342 この関数を使うには、最初に@code{load("functs")}を書いてください。
344 @opencatbox
345 @category{Package functs}
346 @category{Expressions}
347 @closecatbox
349 @end deffn
351 @deffn {関数} linear (@var{expr}, @var{x})
352 @var{expr}が変数@var{x}に関して線形の式の時、
353 @code{linear}は@code{@var{a}*@var{x} + @var{b}}を返します。
354 ここで、@var{a}はゼロでなく、@var{a}と@var{b}は@var{x}に依存しません。
355 そうでなければ、@code{linear}は@var{expr}を返します。
357 この関数を使うには、最初に@code{load("functs")}を書いてください。
359 @opencatbox
360 @category{Package functs}
361 @category{Expressions}
362 @closecatbox
364 @end deffn
366 @c -----------------------------------------------------------------------------
367 @anchor{gcdivide}
368 @deffn {関数} gcdivide (@var{p}, @var{q})
370 @code{takegcd}が@code{true}の時、
371 @code{gcdivide}は多項式@var{p}と@var{q}を最大公約多項式で割り、
372 結果の比を返します。
374 @code{takegcd}が@code{false}の時、
375 @code{gcdivide}は比@code{@var{p}/@var{q}}を返します。
377 この関数を使うには、最初に@code{load("functs")}を書いてください。
379 @mref{ezgcd}, @mref{gcd}, @mref{gcdex}, @mref{poly_gcd}も参照してください。
381 例:
383 @example
384 (%i1) load("functs")$
386 (%i2) p1:6*x^3+19*x^2+19*x+6; 
387                         3       2
388 (%o2)                6 x  + 19 x  + 19 x + 6
389 (%i3) p2:6*x^5+13*x^4+12*x^3+13*x^2+6*x;
390                   5       4       3       2
391 (%o3)          6 x  + 13 x  + 12 x  + 13 x  + 6 x
392 (%i4) gcdivide(p1, p2);
393                              x + 1
394 (%o4)                        ------
395                               3
396                              x  + x
397 (%i5) takegcd:false;
398 (%o5)                         false
399 (%i6) gcdivide(p1, p2);
400                        3       2
401                     6 x  + 19 x  + 19 x + 6
402 (%o6)          ----------------------------------
403                   5       4       3       2
404                6 x  + 13 x  + 12 x  + 13 x  + 6 x
405 (%i7) ratsimp(%);
406                              x + 1
407 (%o7)                        ------
408                               3
409                              x  + x
410 @end example
412 @opencatbox
413 @category{Package functs}
414 @category{Polynomials}
415 @closecatbox
416 @end deffn
418 @c lcm already described in doc/info/Number.texi
420 @deffn {関数} arithmetic (@var{a}, @var{d}, @var{n})
421 算術級数@code{@var{a}, @var{a} + @var{d}, @var{a} + 2*@var{d}, ..., @var{a} + (@var{n} - 1)*@var{d}}の第@var{n}項を返します。
423 この関数を使うには、最初に@code{load("functs")}を書いてください。
425 @opencatbox
426 @category{Package functs}
427 @category{Sums and products}
428 @closecatbox
430 @end deffn
432 @deffn {関数} geometric (@var{a}, @var{r}, @var{n})
433 幾何級数@code{@var{a}, @var{a}*@var{r}, @var{a}*@var{r}^2, ..., @var{a}*@var{r}^(@var{n} - 1)}の第@var{n}項を返します。
435 この関数を使うには、最初に@code{load("functs")}を書いてください。
437 @opencatbox
438 @category{Package functs}
439 @category{Sums and products}
440 @closecatbox
442 @end deffn
444 @deffn {関数} harmonic (@var{a}, @var{b}, @var{c}, @var{n})
445 調和級数@code{@var{a}/@var{b}, @var{a}/(@var{b} + @var{c}), @var{a}/(@var{b} + 2*@var{c}), ..., @var{a}/(@var{b} + (@var{n} - 1)*@var{c})}の第@var{n}項を返します。
447 この関数を使うには、最初に@code{load("functs")}を書いてください。
449 @opencatbox
450 @category{Package functs}
451 @category{Sums and products}
452 @closecatbox
454 @end deffn
456 @deffn {関数} arithsum (@var{a}, @var{d}, @var{n})
457 算術級数の1から@var{n}までの和を返します。
459 この関数を使うには、最初に@code{load("functs")}を書いてください。
461 @opencatbox
462 @category{Package functs}
463 @category{Sums and products}
464 @closecatbox
466 @end deffn
468 @deffn {関数} geosum (@var{a}, @var{r}, @var{n})
469 幾何級数の1から@var{n}までの和を返します。
470 もし@var{n}が無限大(@code{inf})なら、
471 @var{r}の絶対値が1未満でのみ、和は有限です。
473 この関数を使うには、最初に@code{load("functs")}を書いてください。
475 @opencatbox
476 @category{Package functs}
477 @category{Sums and products}
478 @closecatbox
480 @end deffn
482 @deffn {関数} gaussprob (@var{x})
483 Gaussian確率函数@code{%e^(-@var{x}^2/2) / sqrt(2*%pi)}を返します。
485 この関数を使うには、最初に@code{load("functs")}を書いてください。
487 @opencatbox
488 @category{Package functs}
489 @category{Mathematical functions}
490 @closecatbox
492 @end deffn
494 @deffn {関数} gd (@var{x})
495 Gudermannian函数@code{2*atan(%e^x)-%pi/2}を返します。
497 この関数を使うには、最初に@code{load("functs")}を書いてください。
499 @opencatbox
500 @category{Package functs}
501 @category{Mathematical functions}
502 @closecatbox
504 @end deffn
506 @deffn {関数} agd (@var{x})
507 逆Gudermannian函数@code{log (tan (%pi/4 + x/2)))}を返します。
509 この関数を使うには、最初に@code{load("functs")}を書いてください。
511 @opencatbox
512 @category{Package functs}
513 @category{Mathematical functions}
514 @closecatbox
516 @end deffn
518 @deffn {関数} vers (@var{x})
519 正矢(せいし)@code{1 - cos (x)}を返します。
521 この関数を使うには、最初に@code{load("functs")}を書いてください。
523 @opencatbox
524 @category{Package functs}
525 @category{Mathematical functions}
526 @closecatbox
528 @end deffn
530 @deffn {関数} covers (@var{x})
531 余矢(よし)@code{1 - sin (@var{x})}を返します。
533 この関数を使うには、最初に@code{load("functs")}を書いてください。
535 @opencatbox
536 @category{Package functs}
537 @category{Mathematical functions}
538 @closecatbox
540 @end deffn
542 @deffn {関数} exsec (@var{x})
543 外正割(exsecant)@code{sec (@var{x}) - 1}を返します。
545 この関数を使うには、最初に@code{load("functs")}を書いてください。
547 @opencatbox
548 @category{Package functs}
549 @category{Mathematical functions}
550 @closecatbox
552 @end deffn
554 @deffn {関数} hav (@var{x})
555 半正矢@code{(1 - cos(x))/2}を返します。
557 この関数を使うには、最初に@code{load("functs")}を書いてください。
559 @opencatbox
560 @category{Package functs}
561 @category{Mathematical functions}
562 @closecatbox
564 @end deffn
566 @c REDUNDANT WITH BINOMIAL COEFFICIENT; CUT IT ??
567 @deffn {関数} combination (@var{n}, @var{r})
568 一度に@var{r}個を取る@var{n}個のオブジェクトの組み合わせの数を返します。
570 この関数を使うには、最初に@code{load("functs")}を書いてください。
572 @opencatbox
573 @category{Package functs}
574 @category{Mathematical functions}
575 @closecatbox
577 @end deffn
579 @c REDUNDANT WITH PERMUTATIONS FUNCTION IN NSET; CUT IT ??
580 @deffn {関数} permutation (@var{n}, @var{r})
581 @var{n}個のオブジェクトの集合から選択された@var{r}個のオブジェクトの置換の数を返します。
583 この関数を使うには、最初に@code{load("functs")}を書いてください。
585 @opencatbox
586 @category{Package functs}
587 @category{Mathematical functions}
588 @closecatbox
590 @end deffn
592 @c Adapted from ineq.usg ----------------------
593 @c THIS PACKAGE IS INTERESTING BUT THIS TEXT NEEDS WORK AND EXAMPLES
594 @node Package ineq, Package rducon, Package functs, simplification
595 @section Package ineq
597 @code{ineq}パッケージは不等式の整理規則を含みます。
599 セッション例:
601 @c ===beg===
602 @c load("ineq")$
603 @c a>=4;  /* a sample inequality */
604 @c (b>c)+%; /* add a second, strict inequality */
605 @c 7*(x<y); /* multiply by a positive number */
606 @c -2*(x>=3*z); /* multiply by a negative number */
607 @c (1+a^2)*(1/(1+a^2)<=1); /* Maxima knows that 1+a^2 > 0 */
608 @c assume(x>0)$ x*(2<3); /* assuming x>0 */
609 @c a>=b; /* another inequality */
610 @c 3+%; /* add something */
611 @c %-3; /* subtract it out */
612 @c a>=c-b; /* yet another inequality */
613 @c b+%; /* add b to both sides */
614 @c %-c; /* subtract c from both sides */
615 @c -%;  /* multiply by -1 */
616 @c (z-1)^2>-2*z; /* determining truth of assertion */
617 @c expand(%)+2*z; /* expand this and add 2*z to both sides */
618 @c %,pred;
619 @c ===end===
620 @example
621 (%i1) load("ineq")$
622 Warning: Putting rules on '+' or '*' is inefficient, and may not work.
623 Warning: Putting rules on '+' or '*' is inefficient, and may not work.
624 Warning: Putting rules on '+' or '*' is inefficient, and may not work.
625 Warning: Putting rules on '+' or '*' is inefficient, and may not work.
626 Warning: Putting rules on '+' or '*' is inefficient, and may not work.
627 Warning: Putting rules on '+' or '*' is inefficient, and may not work.
628 Warning: Putting rules on '+' or '*' is inefficient, and may not work.
629 Warning: Putting rules on '+' or '*' is inefficient, and may not work.
630 (%i2) a>=4;  /* a sample inequality */
631 (%o2)                               a >= 4
632 (%i3) (b>c)+%; /* add a second, strict inequality */
633 (%o3)                            b + a > c + 4
634 (%i4) 7*(x<y); /* multiply by a positive number */
635 (%o4)                              7 x < 7 y
636 (%i5) -2*(x>=3*z); /* multiply by a negative number */
637 (%o5)                           - 2 x <= - 6 z
638 (%i6) (1+a^2)*(1/(1+a^2)<=1); /* Maxima knows that 1+a^2 > 0 */
639                                         2
640 (%o6)                             1 <= a  + 1
641 (%i7) assume(x>0)$ x*(2<3); /* assuming x>0 */
642 (%o7)                              2 x < 3 x
643 (%i8) a>=b; /* another inequality */
644 (%o8)                               a >= b
645 (%i9) 3+%; /* add something */
646 (%o9)                           a + 3 >= b + 3
647 (%i10) %-3; /* subtract it out */
648 (%o10)                              a >= b
649 (%i11) a>=c-b; /* yet another inequality */
650 (%o11)                            a >= c - b
651 (%i12) b+%; /* add b to both sides */
652 (%o12)                            b + a >= c
653 (%i13) %-c; /* subtract c from both sides */
654 (%o13)                         - c + b + a >= 0
655 (%i14) -%;  /* multiply by -1 */
656 (%o14)                          c - b - a <= 0
657 (%i15) (z-1)^2>-2*z; /* determining truth of assertion */
658                                       2
659 (%o15)                         (z - 1)  > - 2 z
660 (%i16) expand(%)+2*z; /* expand this and add 2*z to both sides */
661                                    2
662 (%o16)                            z  + 1 > 0
663 (%i17) %,pred;
664 (%o17)                               true
665 @end example
667 不等式の回りで括弧を使うことについて注意してください;
668 ユーザーが@code{(A > B) + (C = 5)}と入力した時、
669 結果は@code{A + C > B + 5}ですが、@code{A > B + C = 5}は構文エラーであり、
670 @code{(A > B + C) = 5}は完全に何か他のものです。
672 規則定義の完全なリストを見るには、
673 @code{disprule (all)}を実行してください。
675 Maximaが不等式に掛けられる量の符号を決定できない時、
676 ユーザーは問い合わせを受けるでしょう。
678 最もありふれた仕様の欠陥を以下に例示します:
680 @c ===beg===
681 @c eq: a > b;
682 @c 2*eq;
683 @c % - eq;
684 @c ===end===
685 @example
686 (%i1) eq: a > b;
687 (%o1)                              a > b
688 (%i2) 2*eq;
689 (%o2)                            2 (a > b)
690 (%i3) % - eq;
691 (%o3)                              a > b
692 @end example
694 別の問題は0掛ける不等式です;
695 これを0にするデフォルト動作はそのままです。
696 しかし、
697 もし@code{X*@var{some_inequality}}とタイプして、
698 Maximaが@code{X}の符号を尋ね、
699 @code{zero} (または@code{z})と答えたなら、
700 プログラムは@code{X*@var{some_inequality}}を返し、
701 @code{X}が0という情報を使いません。
702 そんな時は、
703 データベースは、決定の際、@code{X}を評価する目的ではなく、比較目的のためだけに使われるので、
704 @code{ev (%, x: 0)}を実行すべきです。
706 パッケージがロードされた時、
707 整理器が、パッケージなしよりたくさんの規則を検証するよう強制されるので、
708 ユーザーはより遅い応答に気がつくかもしれません。
709 だから、これらを利用した後、規則を取り除きたいかもしれません。
710 (あなたが定義したかもしれないものすべてを含み)規則すべてを消すには、
711 @code{kill (rules)}してください;
712 もしくは、もっと選択的にそれらのうちのいくつかだけ消すかもしれません;
713 もしくは、特定の規則に@code{remrule}を使ってください。
715 もし自分の規則を定義した後、このパッケージをロードするなら、
716 同じ名前を持つあなたの規則をつぶすでしょう。
717 このパッケージの規則は以下の通りです:
718 @code{*rule1}, ..., @code{*rule8},
719 @code{+rule1}, ..., @code{+rule18},
720 そして、それを参照するには、
721 @code{"+"}に関する最初の規則を限定して取り除くための@code{remrule ("+", "+rule1")}とか、
722 二番目の乗法規則の定義を表示するための@code{disprule ("*rule2")}とか、
723 規則名を引用符で囲まなければいけません。
725 @opencatbox
726 @category{Simplification functions}
727 @category{Rules and patterns}
728 @category{Share packages}
729 @category{Package ineq}
730 @closecatbox
733 @c lrats.usg: "lratsubst" and "fullratsubst" already in doc/info/Polynomials.texi
735 @c Adapted from rducon.usg ----------------------
736 @c THIS IS AN INTERESTING FUNCTION BUT THIS TEXT NEEDS WORK AND EXAMPLES
737 @node Package rducon, Package scifac, Package ineq, simplification
738 @section Package rducon
740 @opencatbox
741 @category{Expressions}
742 @category{Share packages}
743 @category{Package rducon}
744 @closecatbox
747 @deffn {関数} reduce_consts (@var{expr})
748 @var{expr}の定部分式を構成された定アトムで置き換え、
749 これら構成された定数すべての定義を等式のリスト@code{const_eqns}に保存し、
750 修正された@var{expr}を返します。
751 @var{expr}のそれらのパーツは、関数@code{constantp}が施された時@code{true}を返す
752 定数です。
753 それゆえ、
754 @code{reduce_consts}を呼び出す前に、
755 @example
756 declare ([@var{objects to be given the constant property}], constant)$
757 @end example
758 をして、自分の式に現れる定数量のデータベースを設定すべきです。
760 もしこれらの数式計算の後、Fortran出力を生成する予定があるなら、
761 最初のコードセクションの1つはすべての定数の計算であるべきです。
762 このコードセグメントを生成するには、
763 @example
764 map ('fortran, const_eqns)$
765 @end example
766 を実行してください。
768 @code{reduce_consts}に影響する@code{const_eqns}
769 を除いた変数は以下の通りです:
770 @code{const_prefix} (デフォルト値: @code{xx})
771 定部分式を表すために@code{reduce_consts}が生成するシンボルすべてに接頭として付けるのに使われる文字列です。
773 @code{const_counter} (デフォルト値: 1)は
774 @code{reduce_consts}が見つける定部分式それぞれを表すためのユニークなシンボルを生成するのに使われる整数添字です。
776 @code{load ("rducon")}はこの関数をロードします。
777 @code{demo (rducon)}はこの関数のデモを見せます。
779 @opencatbox
780 @category{Package rducon}
781 @category{Expressions}
782 @closecatbox
784 @end deffn
786 @c rncomb.usg: "rncombine" already in doc/info/Miscellaneous.texi
788 @c Adapted from scifac.usg ----------------------
789 @node Package scifac, Package sqdnst, Package rducon, simplification
790 @section Package scifac
792 @opencatbox
793 @category{Expressions}
794 @category{Share packages}
795 @category{Package scifac}
796 @closecatbox
799 @deffn {関数} gcfac (@var{expr})
800 @code{gcfac}は
801 科学者が式をより簡単にしようとする時に適用するのと同じ発見的方法の適用を試みる
802 因数分解関数です。
803 @code{gcfac}は単項式タイプの因数分解に限られます。
804 和に関しては、@code{gcfac}は以下を行います:
806 @enumerate
807 @item
808 整数上で素因数分解します。
809 @item
810 項の複雑さに関わらず、生じる項の最大の冪を係数として因数分解します。
811 @item
812 項の隣同士の対を因数分解する時に、(1)と(2)を使います。
813 @item
814 式がもはや変化しなくなるまで、
815 これらのテクニックを繰り返し、再帰的に適用します。
816 @end enumerate
818 対のすべての可能な再配列の中から最も簡潔な対因数分解された結果を産むものを見つけることの
819 組み合わせ的に困難な性質のため、
820 項目(3)は必ずしも、対での因数分解の最善の仕事をしません。
822 @code{load ("scifac")}はこの関数をロードします。
823 @code{demo (scifac)}はこの関数のデモを見せます。
825 @opencatbox
826 @category{Package scifac}
827 @category{Expressions}
828 @closecatbox
830 @end deffn
832 @c Adapted from sqdnst.usg ----------------------
833 @c THIS FUNCTION IS INTERESTING BUT THIS TEXT NEEDS WORK. HOW DEEPLY CAN SQRT BE NESTED ??
834 @node Package sqdnst,  , Package scifac, simplification
835 @section Package sqdnst
837 @deffn {関数} sqrtdenest (@var{expr})
838 可能なら、簡単で、数値的で、二項無理数(binomial surds)の@code{sqrt}をdenestします。
840 例えば、
842 @c ===beg===
843 @c load ("sqdnst")$
844 @c sqrt(sqrt(3)/2+1)/sqrt(11*sqrt(2)-12);
845 @c sqrtdenest(%);
846 @c ===end===
847 @example
848 (%i1) load ("sqdnst")$
849 (%i2) sqrt(sqrt(3)/2+1)/sqrt(11*sqrt(2)-12);
850                                     sqrt(3)
851                                sqrt(------- + 1)
852                                        2
853 (%o2)                        ---------------------
854                              sqrt(11 sqrt(2) - 12)
855 (%i3) sqrtdenest(%);
856                                   sqrt(3)   1
857                                   ------- + -
858                                      2      2
859 (%o3)                            -------------
860                                     1/4    3/4
861                                  3 2    - 2
862 @end example
864 時々、
865 @code{(19601-13860 sqrt(2))^(7/4)}に対してのように、
866 @code{sqrtdenest}を複数回適用することが役立ちます。
868 @code{load ("sqdnst")}はこの関数をロードします。
870 @opencatbox
871 @category{Expressions}
872 @category{Share packages}
873 @category{Package sqdnst}
874 @closecatbox
876 @end deffn
878 @c stopex.usg: "expandwrt", "expandwrt_denom", and "expandwrt_factored" already in doc/info/Simplification.texi