連立1次方程式の解法


使い方

概要

画面は次のような構成になっています。

[元の方程式入力用リストボックス]
[元の方程式領域]
[コマンド入力用ボタン]
[コマンド領域]
[結果(数値)領域]
[結果(方程式)領域]

コマンド領域に「コマンド入力用ボタン」を使ってコマンドを入力するか、 キーボードからコマンドを入力して、[run]ボタンを押してください。 結果(方程式)領域に変換された方程式が表示されます。 コマンドおよび引数となる数値はスペースで区切ってください。

元の方程式を入力するには、リストボックスから選択するか、 それと同じ形式で[元の方程式領域]に入力して、[input] ボタンを押してください。

行を操作するコマンド

次のコマンドで、m、n は行の番号(0から始まる)を表す整数 (または数値を返すコマンド)、 a は数値(または数値を返すコマンド)です。 m、n は「現在の行」に対する相対的な位置で表します。

m n + --- m行 + n行 → m行
m n - --- m行 - n行 → m行
a m * --- m行 * a → m行
a m / --- m行 / a → m行
a m n *+ --- m行 + n行 * a → m行
a m n *- --- m行 - n行 * a → m行
a m n /+ --- m行 + n行 / a → m行
a m n /- --- m行 - n行 / a → m行
m n exch --- m行とn行を入れかえる

その他のコマンド

m n ~ --- m - n を返す
m n coef --- m 行 n 列の係数を返す
row --- 現在の行の番号を返す
col --- 現在の列の番号を返す
orgrow --- 以前の現在の行の番号を返す
m n [ ... ] --- 現在の行をm、現在の列をnふやして、 (その行、列があれば)[ ... ] 内を実行する
m n do --- 現在の行をm、現在の列をnふやして、 (その行、列があれば)[ に戻って処理を繰り返す。 ] まで実行したら、do の次に戻って処理を続ける。
m n doerr --- 現在の行をm、現在の列をnふやして、 (その行、列があれば(なければエラー))[ に戻って処理を繰り返す。 ] まで実行したら、doerr の次に戻って処理を続ける。
a b exit --- a が 0 でなければ、[ ... ] 内を抜けて、b を返す。 a が 0 ならば、次に進む。

次のようにすると、連立1次方程式の解を求めることができます。
0 0[ 0 0 0[0 0 coef row exit 1 0 doerr]row ~ exch 0 0 coef 0 / 1 0[0 0 coef 0 orgrow row ~ *- 1 0 do]1 1 do 1 1[orgrow row ~ 0 coef orgrow row ~ 0 *- 1 1 do]]