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


複数解(Multiple Solutions)

方程式によっては 2つ以上の解があります。 ハイパボリック・フラグを付けて H a S [fsolve] とすると、 全ての一般解ファミリーを返します。 Calc は互いに独立な任意の整数を表す n1, n2, ... や 任意の符号(+1 または -1) を表す s1, s2, ... という変数群を創出します。 ハイパボリック・フラグを付けなければ、 任意の整数にはゼロ、任意の符号にはプラスを充てたものが代表解(主値)となります。 注意: n1s1 のような変数は、 この方程式解決エンジン以外では特別な意味を持ちません。 s l (calc-let) コマンドを普通に使って これらの変数に実際の値をいろいろと代入し、解を得ることができます。

例えば、' x^2 = y RET H a S x RET とすると、 `x = s1 sqrt(y)' という解が得られます。これは方程式の 2つの解が `sqrt(y)'`-sqrt(y)' であることを表します。 別の解釈をすれば、平方根演算とは実のところ 2値関数であると言えます。 Calc の関数は全て単一の戻り値を返さなければならないので、 (Calc の) sqrt は正の結果を返します。 そこで H a S はこの結果を修正し、 s1 を使って数学的平方根の可能な値を全て示します。

似たような現象が、他の方面でも存在します。 `sqrt(y) = x'y について解くとしましょう。 Calc は両辺を二乗して `y = x^2' を得ます。 これは正しいですが、紛らわしい解を招くことがあります。 `sqrt(y) = -3' を解くとしましょう。 Calc は y = 9 を正当な解として返します。 これは(2値関数であるべき)平方根の数学観として正しいが、 正値を返すべく定義された Calc の sqrt では間違い(あり得ないこと)です。 これは a SH a S も、どちらでも起こります。

正の整数を Calc 変数 GenCount にストアすると、 Calc は任意の符号には式 `as(n)' 、 任意の整数には式 `an(n)' を充てるようになります。ただし、 nGenCount を1ずつインクリメントして得られる一連番号です。 普通の任意符号・任意整数の記号は、 Calc コマンドの都度に s1n1 から始るのに対し、 GenCount 方式では (訳注: 一連番号なので) それぞれの任意値に固有の名前を付けます。それにこの方式では、 任意値が変数ではなく関数呼出しなので都合が良い場合があります。 例えば `as(n)' のようなパターンを使って、 すべての任意の符号を認識する書替え規則を作ることができます。 s l コマンドは変数にしか作用しませんが、 a b (calc-substitute) コマンドを使えば `as(3)' のような関数呼出しを実際の値に置換えることができます。

s G (calc-edit-GenCount) コマンドは、 この変数を生成したり編集する便利なコマンドです。 編集が終ったら、M-# M-# を押して完了します。

GenCount に値がストアされていなかったり、 ストアされている値が負だったりすると、 標準の s1/n1 表記が使われます。

インバース・フラグを付けた I a S [finv] は、 スタック Top の式を指定変数の関数として扱い、逆関数を求めます。 この逆関数は同じ変数名を使って表現されます。 例えば、I a S x2x + 6x/2 - 3 にします。 インバース・フラグとハイパボリック・フラグの両方を付けた H I a S [ffinv] を使えば、 完全に一般化された逆関数を得ることができます。

ある種の方程式、つまり多項式は、既知の有限個の解を持ちます。 a P (calc-poly-roots) [roots] コマンドは、 H a S を使って方程式の一般解を求め、そして任意符号変数(例: s1)や 有限の範囲でのみ有効な任意整数変数(例: n1)の全てについて、 とり得る全ての値に展開します。 結果はベクトル(リスト)形式にまとめて返されます。 例えば、`roots(x^4 = 1, x)' とすると 4つの解 `[1, -1, (0, 1), (0, -1)]' を返します。 一般に、n次の多項式は、複素平面上に n個の根を持ちます。 (解の変数に real 宣言を与えると、存在する実数解だけが返されます; 宣言 参照 。)

注意: a PH a S を使うので、 多項式が文字式の係数を持っていれば文字式の解を返すことができます。 しかし、Calc の解決エンジンはどんな多項式でも厳密解を出せるわけではありません。 多項式が含むべきが x^4 までなら厳密に解くことができます。 それ以上に高次の多項式は場合に依ります。 x^6 + x^3 + 1 ならば x^3 の2次方程式 (x^3)^2 + (x^3) + 1 に変換され解かれてから、立方根を取ることにより x について解かれます。 しかし多くの場合、x^6 + x + 1 などでは、 どう書替えれば解けるか Calc は知りません。 それでもなお、シンボリックモード(m s) になっていない限り、 a P コマンドは数値解のリストを出すことができます。 (すでにシンボリックモードに入っている場合は、 N (calc-eval-num) キーを使えば、 一時的にシンボリックモードを切った状態でスタックの式を再評価できることを 思い出しましょう。) もちろん、多項式の係数が全て数値(実数または複素数)であれば a P の答は数値解のみです。


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