Next: , 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に関して 式exprfacsumしたいなら、 facsum (expr, operator (op_1, ..., op_n))を評価します。 operator形式はリスト引数の中でも可能です。

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

グローバル変数: nextlayerfactor

デフォルト値: false

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

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

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

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

グローバル変数: facsum_combine

デフォルト値: true

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

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

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

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

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

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


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