Go to the first, previous, next, last section, table of contents.


セレクションを用いて式を再整理する

j R (calc-commute-right) コマンドは、 セレクションされたサブ数式をその周りの数式内で右手に動かします。 一般にセレクションは和か積の中のひとつの項で、 和や積が代数学の交換法則に従って配置替えされます。

j 'j DEL の時と同様に、 もし現在の数式にセレクションがないなら、カーソルの乗っている項が使われます。 本節で説明するコマンドは全て、この性質を持ちます。 次の例では、カーソルを `a' の上に置いて、j R と繰返しタイプします。

1:  a + b - c          1:  b + a - c          1:  b - c + a

上の最後のステップで `a'`c' と交換されますが、 符号がそれに応じて調整されることに注目してください。 和や積の項を動かす時、j R は数式の数学的意味を決して変えません。

セレクションされた項が、ベクトルや関数引数の要素であっても動作します。 セレクションされた項は右側の項と交換されます。 この場合、ベクトルあるいは関数の「意味」はもちろん劇的に変わります。

1:  [a, b, c]          1:  [b, a, c]          1:  [b, c, a]

1:  f(a, b, c)         1:  f(b, a, c)         1:  f(b, c, a)

j L (calc-commute-left) コマンドは j R と同様に、 セレクションされた項を左側の項と入換えます。

数値接頭引数を付けると、セレクションされた項を一度に何ステップか動かします。 周りの式の端を越えて左右に動かそうとするとエラーになります。 セロの接頭引数を付けると、 セレクションされた項を所定の方向に最大限動かします。

j D (calc-sel-distribute) コマンドは、 セレクションされた和や積を周囲の数式の中に分配法則を使って展開します。 (訳注: セレクション部のカッコを開く効果がある?) 例えば、 `a * (b - c)'`b - c' がセレクションされているという状態では、 結果は `a b - a c' です。 また、このコマンドは周囲のべき乗に積や商を分配したり、 `exp(a + b)'`a + b' がセレクションされた状態から `exp(a) exp(b)' へ変換したり、 `ln(a ^ b)'`a ^ b' がセレクションされた状態から `ln(a) b' へ変換したりできます。

多数項の和や積の場合、j D は一度に 1項ずつ取出します。 `a * (b + c - d)' は一回の j D`a * (c - d) + a b' に変り、 このときセレクションは `c - d' に変るので、 続けて j D をタイプして完全に展開できます。 j D コマンドは、 数値接頭引数によって一度に展開する最大回数を指定することができます。 デフォルトは 1回だけです。

j D コマンドは書替え規則を使って実装されています。 Selections with Rewrite Rules 参照 。 規則群は Calc 変数 DistribRules にストアされています。 この規則群を手軽に見るには s e (calc-edit-variable) を使います。 これは変数にストアされた値を表示し編集するコマンドです。 編集モードから戻るには M-# M-# と押します。 実質の変更をしないように注意してください。 さもないと、その後の j D コマンドの挙動が変ってしまいます!

新しいケースを処理するために j D を拡張するには、 上で説明したように DistribRules を編集するだけです。 s p コマンドを使えば、 将来の Calc セッションのためにこの変数の値をセーブできます。 その他の変数操作 参照 。

j M (calc-sel-merge) コマンドは j D の反対で、 与式が `a b - a c'`a b'`a c' がセレクションされていると、 結果は `a * (b - c)' になります。 j Mexpln のような関数呼出しもまとめる事ができます。 変数 MergeRules を調べると、あらゆる関係規則群が見られます。

j C (calc-sel-commute) コマンドは、 セレクションされた和, 積, 方程式の引数を交換します。 どんな時でも、j b モードが有効になっているかのように振舞います。 つまりこのコマンドは、 `a + b + c' をネストされた和 `(a + b) + c' として扱います。 最初の `+' にカーソルを置けば、結果は `(b + a) + c'です。 2番目の `+' にカーソルを置けば、結果は `c + (a + b)' です (これはデフォルトの簡単化機能が `(c + a) + b' に再編成してしまいます)。 関係規則は、変数 CommuteRules にストアされています。

j C の恩恵を高めるために、 (m O コマンドで)デフォルトの簡単化機能を止める必要があるかもしれません。 例えば、 `a - b' を交換すると `-b + a' になりますが、 デフォルトの簡単化機能を切っておかないと、 これを「簡単化」して `a - b' に戻してしまいます。 本節で説明した他の操作のいくつかについても、同じ事が言えます。

j N (calc-sel-negate) コマンドは、 セレクションされた項をサインチェンジして、 意味を変えないように周辺の数式を調整します。 例えば、与式が `exp(a - b)'`a - b' がセレクションされていると、 結果は `1 / exp(b - a)' です。 対照的に、 項をセレクションして通常の n (calc-change-sign) コマンドを使うと、 周辺を調整せずにサインチェンジするので、 数式全体の意味を変えてしまいます。 規則群の変数は NegateRules です。

j & (calc-sel-invert) コマンドは j N に似ていて、 セレクションされた項の逆数をとります。 例えば、与式が `a - ln(b)'`b' がセレクションされていると、 結果は `a + ln(1/b)' です。 規則群の変数は InvertRules です。

j E (calc-sel-jump-equals) コマンドは、 セレクションされた項を方程式の片方の辺から他辺に動かします。 与式が `a + b = c + d'`c' がセレクションされていると、 結果は `a + b - c = d' です。 セレクションされた項が `*', `/', `^' 式の一部であっても、 このコマンドは働きます。 関係規則群の変数は JumpRules です。

j I (calc-sel-isolate) コマンドは、 方程式のセレクションされた項をそちらの辺に分離します。 これは a S (calc-solve-for) コマンドを使って方程式を解きます。 そしてハイパボリック・フラグは同様に影響します。 方程式を解く(Solving Equations) 参照 。 適用にあたって、j I はしばしば j E より使いやすいです。 それはより多くの代数法則を理解して、そして方程式だけでなく不等式にも有効です。

j * (calc-sel-mult-both-sides) コマンドは、 代数方式による式の入力を促して、 それをセレクションされた分数または方程式の両側に掛けます。 そして a s (calc-simplify) を使って両側を簡単化します。 任意の数値接頭引数を付けると、この簡単化を抑制できます。 j / (calc-sel-div-both-sides) コマンドもあって、 これは j * に似ていますが、入力した因数を掛ける代わりに割算します。

特殊機能として、もし(訳注: 元の)分数の分子が 1 ならば、 分母の第1 レベルが分配法則により(つまり C-u -1 a x コマンドを使って) 展開されます。 スタックに式 `1 / (sqrt(a) + 1)' があるとして、 分母の平方根を除くために分母分子に `sqrt(a) - 1' を掛けるとします。 結果は `(sqrt(a) - 1) / (sqrt(a) - 1) (sqrt(a) + 1)' のはずですが、 Calc のデフォルト簡単化機能は分母分子を約分して元の式に戻そうとしてしまいます。 Calc はそれを防止するため分母の第1 レベルを展開し、 `sqrt(a) (sqrt(a) - 1) + sqrt(a) - 1' とします。 (a x コマンドを使って残りの部分を展開すれば、 分母は望む形式 `a - 1' まで簡単化します。) 分子が 1 でない場合、 Calc のデフォルト簡単化機能は分母分子の約分可能性に気付きませんから、 この初期展開は必要ありません。

不等式がセレクションされていた場合、 j *j / は任意の因子を受付けますが、 因子の正負が確認できない場合は警告を発します。 (因子が負の場合、不等式の方向は適切に取替えられます。) 所定の変数の正負を Calc に知らせる方法は、 宣言 参照 。 因子の符号が確実に判らない場合、 Calc はそれが正であると見なして処理し、かつ警告メッセージを示します。

セレクションが分数, 方程式, 不等式のいずれでもない場合、 これらのコマンドは乗除因子を引抜きます。 入力された数式で割算(あるいは掛算)し、簡単化し、 そして入力式を掛け(または割り)戻します。

j + (calc-sel-add-both-sides) コマンドと j - (calc-sel-sub-both-sides) コマンドは、同様に、 方程式または不等式の両辺に加算または減算します。 それ以外がセレクションされていた場合、加減因子を引抜きます。 数値接頭引数を付けると中間結果の簡単化を抑制します。

j U (calc-sel-unpack) コマンドは、 セレクションされた関数呼出しを剥ぎ取ってその引数だけにしてしまいます。 例えば与式が `a + sin(x^2)'`sin(x^2)' がセレクションされていると、 結果は `a + x^2' です。 (`x^2' はセレクションされたまま残りますから、 sincos に変えるなら、 そのまま C を押してセレクション範囲のコサインを取るだけで良いです。)

j v (calc-sel-evaluate) コマンドは、 選択されたサブ数式に対し、標準的なデフォルト簡単化を行います。 これは通常すべての結果に対し自動的になされますが、 前のセレクション関連操作によって部分的に抑制されたり、 m O コマンドによって全く止められていることもあります。 このコマンドは a v に自動セレクション特性を付与しただけのものです (代数的操作 参照 )。

C-u 2 j v として数値接頭引数に 2 を指定すると、 a s (calc-simplify) コマンドを セレクションされたサブ数式に適用します。 3 以上の接頭引数では、例えば C-u j v では、 a e (calc-simplify-extended) コマンドを適用します。 式の簡単化 参照 。 負の接頭引数では、a v と同様に、第1レベルだけを簡単化します。 ここで「第1」レベルとは、セレクションされたサブ数式の第1レベルを指します。

j " (calc-sel-expand-formula) コマンドは a " (代数的操作 参照 ) に通じるもので、 j va v に通じているようなものです。

j r (calc-rewrite-selection) コマンドを使って、 他のセレクション指向の代数操作を定義できます。 書替え規則(Rewrite Rules) 参照 。


Go to the first, previous, next, last section, table of contents.     利用度数