Maxima branch_5_47_base_7_g39559bd_dirty Manual: Package facexp

Next: Package functs, Previous: Package absimp, Up: simplification [Contents][Index]

### 75.3 Package facexp

`facexp`パッケージは、 制御された展開によって式を構造化する能力をユーザーに与えるいくつかの関連関数を含みます。 式が物理的意味を持つ変数を含むとき、この能力は特に役に立ちます。 そんな式の最も簡潔な形式は、それらの変数に関して式を完全に展開し、 その後係数を因数分解することで得られることがしばしばあるからです。 この手続きは標準のMaxima関数を使って実行することは難しくありませんが、 追加の微調整も望まれていて、これらの仕上げは適用するのが更に難しくなることがあります。

関数`facsum`とその関連形式は、 この方法で式の構造を制御するための便利な手段を提供します。 別の関数`collectterms`は、 この形式に既に整理された複数の式を 式全体を再整理することなく、足し合わせるのに使うことができます。 式が非常に大きいとき、この関数は役に立つかもしれません。

`load ("facexp")`はこのパッケージをロードします。 `demo (facexp)`はこのパッケージのデモを見せます。

Expressions ·Share packages ·Package facexp ·

関数: facsum (expr, arg_1, ..., arg_n)

  引数arg_1, ..., arg_nに依存する exprの形式を返します。 引数は`ratvars`に適した任意の形式か、そんな形式のリストを取り得ます。 もし引数がリストでなければ、 返される形式は、引数に関して完全に展開され、引数の係数は因数分解されます。 これらの係数は、非合理的な意味合いを除いて引数に依存しません。

  引数のいずれかがリストなら、リストすべては1つのリストに結合されて、 引数の係数に対して`factor`をコールする代わりに `facsum`は、 これらの係数に対して自分自身をコールします。 この再帰コールに関しては、上記で新しく構成されたリストが新しい引数リストとして使われます。 この処理は、リストの中に望まれた要素を入れ子にすることで、任意の深さまで繰り返すことができます。

  It is possible that one may wish to `facsum` with respect to more complicated subexpressions, such as `log (x + y)`のような、より複雑な部分式に関して `facsum`したいかも知れません。 そんな引数も許されています。

  時々、ユーザーは 式に関して、先頭演算子によってのみ指定された上記形式いずれかが欲しいかもしれません。 例えば、 すべての`log`に関して`facsum`したかもしれません。 この場合、 この方法で扱われる特定の`log`か、 代わりに式`operator (log)`や`'operator (log)` を引数に含むことができます。 もし 演算子op_1, ..., op_nに関して 式exprを`facsum`したいなら、 `facsum (expr, operator (op_1, ..., op_n))`を評価します。 `operator`形式はリスト引数の中でも可能です。

  更に、 スイッチ`facsum_combine`と`nextlayerfactor`の設定は `facsum`の結果に影響するかもしれません。

  Package facexp ·Expressions ·

グローバル変数: nextlayerfactor

  デフォルト値: `false`

  `nextlayerfactor`が`true`の時、 `facsum`の再帰コールが 引数の係数の因数分解された形式の因子に適用されます。

  `false`の時、 `facsum`は、 `facsum`への再帰コールが起こる時はいつでも、全体としてそれぞれの係数に適用されます。

  `facsum`の引数リストに アトム`nextlayerfactor`を入れると、 `nextlayerfactor: true`の効果がありますが、 式の次のレベルだけに関してです。

  `nextlayerfactor`はいつも `true`か`false`にバインドされているので、 `facsum`の引数リストの中に現れる時はいつでも、 シングルクォートで表さなければいけません。

  Package facexp ·Expressions ·

グローバル変数: facsum_combine

  デフォルト値: `true`

  引数が多項式の商の時、 `facsum_combine`は `facsum`が返す最終結果の形式を制御します。 もし`facsum_combine`が`false`なら、 形式は既に記述したような完全に展開された和として返されますが、 もし`true`なら、 返される式は、既に記述した形式の多項式の比です。

  有理式の分子と分母両方を`facsum`したいが、 分母が分子の項ずつに掛けられたくない時、 このスイッチの`true`設定は役に立ちます。

  Package facexp ·Expressions ·

関数: factorfacsum (expr, arg_1, ... arg_n)

  exprの因子に関して引数として arg_1, ... arg_nを付けて`facsum`をコールすることで得られる exprの形式を返します。 もしexprの因子のいずれかがべきに累乗されるなら、 因子と指数と両方がこの方法で処理されます。

  Package facexp ·Expressions ·

関数: collectterms (expr, arg_1, ..., arg_n)

  もしいくつかの式が`facsum`もしくは`factorfacsum`, `factenexpand`, `facexpten`, `factorfacexpten`で整理されていて、それらが一緒に加算されているなら、 関数`collectterms`を使ってそれらを結合することが望まれる場合があります。 `collectterms`は、`nextlayerfactor`を除いてこれらの他の関連した関数に渡すことができる引数すべてを 引数として取ることができます。 `collectterms`の利点は、`facsum`と似た形式を返すことです。 しかし、既に`facsum`で処理された加算形式なのでこの処理を繰り返す必要はありません。 この能力は加算する式が非常に大きい時特に役立ちます。

  Package facexp ·Expressions ·

Next: Package functs, Previous: Package absimp, Up: simplification [Contents][Index]