== Excelなどを使って連立1次方程式を解く方法 ==
T. 方程式の解(1個,不定,不能)

(1) 【1次方程式の解】(まとめ)
 a, bを定数とし,xを未知数とする1次方程式

の解は
ア) a≠0のとき

イ) a=0, b=0のとき
不定(無限に多くの解がある)
ウ) a=0, b≠0のとき
不能(解はない)
FAQ(よくある質問)
● ア)は,イ)ウ)の場合のように,a≠0, b≠0の場合と,a≠0, b=0の場合に分けなくてもよいのですか?
a≠0, b=0の場合,x=0になりますが,それはア)という一般の場合の中で,の結果にb=0を代入すれば得られる1つの例になっている.すなわち,ア)の解答に含まれているから,分けても利点がなく,分離しないほうがよい.
● イ)ウ)は,
イ)a=0のとき,
その@) b=0のとき,
そのA) b≠0のとき
のように分類したほうが論理的だと思いますが?
⇒ それでもよいが,分類の階層を浅くして,単純に並べるほうが見やすい=間違いにくいという考え方もある.
(2) 【連立1次方程式の解】(まとめ)
 a, b, c, d, p, qを定数とし,x, yを未知数とする連立1次方程式
・・・(2.1)
・・・(2.2)
が,
ア)Δ=ad−bc≠0のとき,解は唯1通りに定まる.
イ)Δ=0かつ,(2.1)と(2.2)が一致するとき,解は不定(無限に多くの解がある)
ウ)Δ=0かつ,(2.1)と(2.2)が平行な直線(一致はしない)のとき,解は不能(解はない)
【アの例】


のように,行列式Δ≠0のとき,係数行列の逆行列が存在するから

のように,逆行列の積だから,解は唯1通りに定まる.
連立方程式の解き方として,他にクラメルの定理を使う方法もあるが,このページで表計算ソフトを使って解く方法を解説するには,逆行列の方法の方が簡単なので,逆行列で説明する.
【イの例】
・・・(*1)
・・・(*2)
のように,(*1)の各係数を一定倍すると(*2)に一致するとき
 左辺の係数から計算した行列式Δ=0で,かつ,右辺の係数も同じ定数倍になっているときは,(*1)(*2)は同じ直線を表していることになり,その直線上の点はすべて連立方程式(*1)(*2)の解になる.
 (*1)の解は,x=4−2t, y=ttは実数)と書ける.
【ウの例】
・・・(*1)
・・・(*2)
のように,(*1)の左辺の係数を一定倍すると(*2)の左辺の係数に一致するが,右辺の係数はその倍率で一致しないとき
 左辺の係数から計算した行列式Δ=0で,かつ,右辺の係数が異なる倍率になっているときは,(*1)(*2)は平行な2つの直線を表していることになり,共有点はない.
 このとき,連立方程式(*1)(*2)の解はない.((*1)を満たすものは(*2)を満たさないから,両方を満たすものはない)

U. 表計算ソフトで解けるもの,解けないもの

 このページでは,Excelなどのスプレッドシート(表計算ソフト)を使って,連立1次方程式を解く方法を要約する.
 実際に使うものは,パソコン版の(スマホ版ではない)ブラウザやソフトとして,
(A)PCにインストールして使うMicrosoft OfficeのExcel 2007(32Bit), 2010(64Bit)など旧型のもの
(B)ブラウザから無料で使えるExcel Online
(C)ブラウザから無料で使えるGoogle スプレッドシート
(D)PCに無料でインストールして使えるwxMaxima
とする.各々について,係数や解の形によって利用できるものと利用できないものの一覧は次の通り.具体例は,後に順次解説する.
係数行列の成分が「整数・小数」「分数」「無理数」「複素数」「文字式」であるとき
ア)Δ≠0で,係数行列の逆行列が存在するもの
@) 整数・小数 連立方程式の成分解の成分
(A)PC版Excel 可能可能
(B)Excel online 可能可能
(C)Googleスプレッドシート可能可能
(D)wxMaxima 可能可能

A) 分数 連立方程式の成分解の成分
(A)PC版Excel 可能可能
(B)Excel online 可能可能
(C)Googleスプレッドシート可能可能
(D)wxMaxima 可能可能
B) 無理数 連立方程式の成分解の成分
(A)PC版Excel 可能不可
(B)Excel online 可能不可
(C)Googleスプレッドシート可能不可
(D)wxMaxima 可能可能

C)複素数連立方程式の成分解の成分
(A)PC版Excel
(B)Excel online
(C)Google スプレッドシート
(D)wxMaxima 可能可能

D)文字式連立方程式の成分解の成分
(A)PC版Excel 不可不可
(B)Excel online 不可不可
(C)Google スプレッドシート不可不可
(D)wxMaxima 可能可能
イ)Δ=0で,不定解になるもの
 (A)(B)(C)のいずれも無理.(D)のみ可能
ウ)Δ=0で,不能解になるもの
 (A)(B)(C)のいずれも無理.(D)を使えば,「解がない」ということは分かる

V. 実際の解き方
ア)の@)A)は(A)(B)(C)でできるので,
(A)(B)(C)の表計算ソフトを使って解く方法を解説する.
ア)のB)〜D)とイ)ウ)は,表計算ソフトでは無理なので,
(D)のwxMaximaを使って解く方法を解説する.
ア)
@)連立方程式の係数が「整数・小数」で,
  解も「整数・小数」で求める問題

- 表1 -

ABCDEFGHI
11213
2439−1
【例ア-i】


の連立1次方程式を解きたい場合

の形で,逆行列と右辺の係数行列との積を作る.
■(A)Excelの旧型,(B)Excel Online,(C)Google スプレッドシートを使うとき
(1) 表1でA1:B2に係数行列の左辺の成分を書き込む
(2) D1に手書きで=MINVERSE(A1:B2)と書き込む
※関数名を正確に覚えていない場合など,この部分をメニューから選択して書き込みたいとき
(A)旧版のExcelの場合
「数式」→「関数の挿入」→「数学/三角」または「すべて表示」→MINVERSE()
配列のテキストボックスがブリンクしている間に,A1:B2をドラッグ反転させる→Enter
ここまでで,逆行列のうちの1つの成分D1ができただけなので,これを元に逆行列全体を配列に指定する
D1:E2の範囲をマウスでドラッグし反転表示にする→数式バーと呼ばれる画面上の方のfxという記号の右にある枠内にマウスをポイントしてから,Ctrl+Shift+Enter(CtrlキーとShiftキーを押している間にEnterキーを押す) (#)
以上で,D1:E2に逆行列の成分が書き込まれるので,最後に逆行列と右辺の係数行列との積を求める
(B)Excel Onlineの場合
D1に手書きで=MINVERSE(A1:B2)と書き込めば,D1:E2の範囲に逆行列が展開されるので,(#)の手順は不要
関数名を正確に覚えていない場合など,この部分をメニューから選択して書き込みたいときは, Excel Onlineの上端にあるメニューの「数式→fx関数の挿入→数学/三角→MINVERSE」と進んでもよい.([ fx→数学/三角→MINVERSE」,「数式→fx関数の挿入→すべて→MINVERSE」「ホーム→Σ→その他の関数→数学/三角→MINVERSE」も可能.)
元の行列を表す範囲は,キーボードを使って書き込んでもよいが,「テキストカレット(テキスト入力の現在位置を示す | が点滅しているもの)が=MINVERSE(|_)となっているときに,マウスでA1からB2までドラッグしてから,Enterキーを押す」とよい.
(C)Googleスプレッドシートの場合
D1に手書きで=MINVERSE(A1:B2)と書き込めば,D1:E2の範囲に逆行列が展開されるので,(#)の手順は不要
関数名を正確に覚えていない場合など,この部分をメニューから選択して書き込みたいときは,※関数名を正確に覚えていない場合など,この部分をメニューから選択して書き込みたいとき「挿入→関数→配列,または,すべて→MINVERSE()」「Σ→配列,または,すべて→MINVERSE()」
 元の行列を表す範囲は,キーボードを使って書き込んでもよいが,「テキストカレット(テキスト入力の現在位置を示す | が点滅しているもの)が=MINVERSE(|_)となっているときに,マウスでA1からB2までドラッグしてから,Enterキーを押す」とよい.
(3) G1:G2に係数行列の右辺の成分を書き込む
(4) I1に手書きで=MMULT(D1:E2, G1:G2)と書き込む
※関数名の書き込みを,メニューをたどって行う場合は,上記の(2)と同様

【類題ア-i】 次の連立方程式の解を求めてください.
(1)


(2)




(3)



(4)





[解答を見る]

ア)
A)連立方程式の係数が「整数・分数」で,
  解を「分数」で求める問題

- 表2 -

ABCDEFGHI
13−143
2251−1
【例ア-A】


の連立1次方程式を解きたい場合

の形で,逆行列と右辺の係数行列との積を作る.
■(A)Excelの旧型,(B)Excel Online,(C)Google スプレッドシートを使うとき
 実際に行う作業は【例ア-i】と全く同じでよい.
 途中経過の逆行列や結果の解が,初期設定で次の表3のような小数で表示され,どのような分数に対応しているのか(何を表しているのか)よくわからないという場合に,これらを分数表示に直すには,次のように行えばよい.
- 表3 -

ABCDEFGHI
13−10.294・・・0.058・・・41.235・・・
225-0.117・・・0.176・・・1-0.294・・・

(A)旧版のExcelの場合
 小数表示になっている箇所のうちで,分数に直したい範囲をドラッグして反転表示にする.
「書式」→「セルの書式設定」→「表示形式:分数:3桁増加」→OK
• 「3桁増加」は,おそらく英語版の「Up to three digits」(=3桁まで)の誤訳だと思われる.
• 表示形式:分数には「1桁」「2桁」「3桁」とあるが,3桁を選んでおけば,1桁の場合も2桁の場合にも正しく表示される.(真の値よりも桁数が少ないと近似分数になる)
(なお,仮分数になる場合は,帯分数で表示される.以下の(B)(C)も同様)
• 907/1063のように分母に4桁の整数が必要な分数を表示するには,
「書式」→「セルの書式設定」→「表示形式:ユーザー定義:# ???/???に手書きで書く加えて #????/????とする」→OK

(B)Excel Onlineの場合
 上の(A)旧版のExcelとほぼ同様であるが,メニューをたどって行く途中経過は,少し変わる.
 小数表示になっている箇所のうちで,分数に直したい範囲をドラッグして反転表示にする.
「ホーム」→「テキストボックスで標準となっている欄をクリック」→「表示形式:分数:3桁増加」→OK
※なお,フリーのExcel Onlineでは,ユーザー定義の表示形式は,現在サポートされていないので,4桁以上の整数を分母として表示することはできない.
(C)Googleスプレッドシートの場合
 小数表示になっている箇所のうちで,分数に直したい範囲をドラッグして反転表示にする.
「表示形式」→「123 数字」→「カスタム数値形式」→「# ??/?? となっているものを手書きで # ???/???; -# ???/???に書き換える」→「適用」
• # ???/???だけでは,(Excelとよく似ているが)負の分数のマイナス符号が表示されないので,セミコロン(;)に続いて -# ???/???も書き加える.
• 4桁まで,5桁までは各々「# ????/????; -# ????/????」「# ?????/?????; -# ?????/?????」とする.
• 初めに「123▼」から入っても同様に進むことができる.
【類題ア-A】 次の連立方程式の解を分数で求めてください.
(1)


(2)




(3)



(4)





[解答を見る]

• ア)B)解が無理数(根号など)の場合
• ア)C)問題や解が複素数の場合
• ア)D)問題や解が文字式の場合
は(A)(B)(C)の表計算ソフトでは解けない.(D)wxMaximaを使えば解ける.
 以下では,(D)で解く方法を解説する.
【例ア-B】


の連立1次方程式を解きたい場合
《逆行列を使って解く方法》

の形で,逆行列と右辺の係数行列との積を作る.
•「代数」→「手入力による行列生成」→「行数:2,列数:2,タイプ:一般,変数名:A などと入力」→
 次のように行列の成分を入力する
sqrt(3)
sqrt(2)

−sqrt(3)
sqrt(2)

• また,右辺の係数行列を次のようにして入力する
「代数」→「手入力による行列生成」→「行数:2,列数:1,タイプ:一般,変数名:P などと入力」→
 次のように行列の成分を入力する
−1
5
• 逆行列と右辺の行列の積を求める
 invert(A).P+Shift+Enter
行列Aの逆行列を求める関数は invert(A)
行列の積を求める演算子はドット(.)だから,A−1Pを求めるには,invert(A).P+Shift+Enterとする
結果

《方程式→連立一次方程式を解く》のメニューから入る方法
「方程式」→「連立一次方程式を解く」→「方程式の数:2」→OK
 次のように連立一次方程式を入力する
特に,係数と変数の間の積(アスタリスク)を忘れないように注意
sqrt(3)*x+sqrt(2)*y=-1
-sqrt(3)*x+sqrt(2)*y=5
 変数x, y
結果


【類題ア-B】 次の連立方程式の解を無理数で求めてください.
(1)



(2)





[解答を見る]

【例ア-C】


の連立1次方程式を解きたい場合
《逆行列を使って解く方法》

の形で,逆行列と右辺の係数行列との積を作る.
•「代数」→「手入力による行列生成」→「行数:2,列数:2,タイプ:一般,変数名:A などと入力」→
 次のように行列の成分を入力する
 虚数単位を表す文字は,数学ではiであるが,電気・電子など電流をiで表す分野では,虚数単位をjで表す場合もある.
 wxMaximaでは,一般の変数ではない虚数単位として%iもしくは%jを用いる.(1つの式の中では,どちらか一方に揃える)
−1+%i
1−4*%i

3+2*%i
2−3*%i

• また,右辺の係数行列を次のようにして入力する
「代数」→「手入力による行列生成」→「行数:2,列数:1,タイプ:一般,変数名:P などと入力」→
 次のように行列の成分を入力する
10+2*%i
5−%i
• 逆行列と右辺の行列の積を求める
 invert(A).P+Shift+Enter
行列Aの逆行列を求める関数は invert(A)
行列の積を求める演算子はドット(.)だから,A−1Pを求めるには,invert(A).P+Shift+Enterとする
結果
一旦得られる式は込み入っているので,「式の変形」→「複素関数への操作」→「複素関数の展開」により

《方程式→連立一次方程式を解く》のメニューから入る方法
「方程式」→「連立一次方程式を解く」→「方程式の数:2」→OK
 次のように連立一次方程式を入力する
特に,係数と変数の間の積(アスタリスク)を忘れないように注意
(-1+%i)*x+(1-4*%i)*y=10+2*%i
(3+2*%i)*x+(2-3*%i)*y=5-%i
 変数x, y
結果


【類題ア-C】 次の連立方程式の解を求めてください.
(1)


(2)




[解答を見る]

【例ア-D】
a≠1, −2のとき,次のx, yの連立1次方程式を解きたい場合



《逆行列を使って解く方法》

の形で,逆行列と右辺の係数行列との積を作る.
•「代数」→「手入力による行列生成」→「行数:3,列数:3,タイプ:一般,変数名:A などと入力」→
 次のように行列の成分を入力する
a
1
1

1
a
1

1
1
a

• また,右辺の係数行列を次のようにして入力する
「代数」→「手入力による行列生成」→「行数:3,列数:1,タイプ:一般,変数名:P などと入力」→
 次のように行列の成分を入力する
1
a
a^2
• 逆行列と右辺の行列の積を求める
 invert(A).P+Shift+Enter
結果
一旦得られる式は込み入っているので,「式の変形」→「式の整理」により

《方程式→連立一次方程式を解く》のメニューから入る方法
「方程式」→「連立一次方程式を解く」→「方程式の数:3」→OK
 次のように連立一次方程式を入力する
特に,係数と変数の間の積(アスタリスク)を忘れないように注意
a*x+y+z=1
x+a*y+z=a
x+y+a*z=a^2
 変数x, y, z
結果


【類題ア-D】 次の連立方程式の解を求めてください.
(1)
a≠1, −2のとき



(2)
a≠1, −1/2のとき



[解答を見る]

イ)Δ=0で,不定解になるもの
【例イ】
次の連立1次方程式を解きたい場合



※この連立方程式では,左辺の係数行列について,行列式Δ=0になるので、逆行列は存在しない.したがって,逆行列を使って解くことはできない.
《方程式→連立一次方程式を解く》のメニューから入る方法
「方程式」→「連立一次方程式を解く」→「方程式の数:3」→OK
 次のように連立一次方程式を入力する
特に,係数と変数の間の積(アスタリスク)を忘れないように注意
2*x-y+3*z=7
x-2*y+3*z=8
x+3*y-2*z=-7
 変数x, y, z
結果

wxMaximaでは,不定解を表すための媒介変数を%r1, %r2, ... などで表すので,数学の答案として書くときは,次の形にする.
 x=2−t, y=t−3, z=ttは任意の実数)

【類題イ】 次の連立方程式の解を求めてください.
(1)



(2)



[解答を見る]

ウ)Δ=0で,不能解になるもの
【例ウ】
次の連立1次方程式を解きたい場合



※この連立方程式では,左辺の係数行列について,行列式Δ=0になるので、逆行列は存在しない.したがって,逆行列を使って解くことはできない.
《方程式→連立一次方程式を解く》のメニューから入る方法
「方程式」→「連立一次方程式を解く」→「方程式の数:3」→OK
 次のように連立一次方程式を入力する
特に,係数と変数の間の積(アスタリスク)を忘れないように注意
x+3*y+3*z=-11
-2*x-4*y-2*z=14
x+y-z=-2
 変数x, y, z
結果

日本語で「解なし」と表示されるのではなく, [ ] と表示されることが,解なしということを表す
【類題ウ】 次の連立方程式の解を求めてください.
(1)



(2)



[解答を見る]

※アD)イ)ウ)--文字係数
文字係数の連立方程式で,文字の値に応じて「解がただ1つに定まる」「不定解になる」「不能解になる」に分かれるもの
【例※1】
次の連立1次方程式を解きたい場合



 この連立方程式を,wxMaximaで普通に「連立一次方程式として解く」と,解

が示される.これに対して,定数aの値に応じて「ただ1つの解になる場合」「不定解になる場合」「不能解になる場合」を分けて求めるには?
aも1つの未知数として解くことを考える.
• その場合,x+y+az=1などは,未知数の積を含んでいるから,連立「一次」方程式ではなく,連立「高次」方程式になる.
• そこで,メニューから「方程式」→「連立高次方程式の解を求める」と進むことを考える.
「方程式」→「連立高次方程式の解を求める」→「方程式の個数:3」  次のように連立一次方程式を入力する
特に,係数と変数の間の積(アスタリスク)を忘れないように注意
x+y+a*z=1
x+a*y+z=3
a*x+y+z=2*a
 変数x, y, z, a
ここで,aも1つの未知数にしておく
結果
次の形で解が示される.


wxMaximaでは,任意定数は %r1, %r2,・・・で表される(それまでの作業で1番から順に使っていくので,上の例のように,最初にこの問題を解いた場合は,%r1とそれとは別の%r2を使って表される.数学でよく用いられる書き方に直せば次のようになる).
(sは任意の実数)
(tは任意の実数)
 これらを通常の数学の答案に直すと
(1) a≠1, −2のとき
(sは任意の実数)
(2) a=1のとき
解なし
(3) a=−2のとき
(tは任意の実数)
【例※2】
次の連立1次方程式を解きたい場合



「方程式」→「連立高次方程式の解を求める」→「方程式の個数:3」  次のように連立一次方程式を入力する
a*x+y+2*z=0
3*x+a*y+z=0
2*x+y+a*z=0
 変数x, y, z, a
ここで,aも1つの未知数にしておく
結果
次の形で解が示される.
[
[x=%r3,y=-(4*%r3)/3,z=-%r3/3,a=2],
[x=0,y=0,z=0,a=%r4],
[x=%r5,y=(-sqrt(5)-1)*%r5,z=%r5,a=sqrt(5)-1],
[x=%r6,y=(sqrt(5)-1)*%r6,z=%r6,a=-sqrt(5)-1]
]
そこで,数学の答案としては,次のように書けばよい.
(1) a≠のとき

(2) a=2のとき
(sは任意の実数)
(3) a=のとき
(tは任意の実数)
(4) a=のとき
(uは任意の実数)


【例※3】
次の連立1次方程式が解を持つようなaの値を定めたい場合



「方程式」→「連立高次方程式の解を求める」→「方程式の個数:3」  次のように連立一次方程式を入力する
a*x+y+2*z=1
x+y+z=2
x+2*y+z=3
 変数x, y, z, a
ここで,aも1つの未知数にしておく
結果
次の形で解が示される.
[[x=-2/(%r1-2),y=1,z=%r1/(%r1-2),a=%r1]]
そこで,数学の答案としては,次のように書けばよい.
a≠2のとき
(tは任意の実数)
a=2のとき
解なし
 ゆえに,a≠2のとき解をもつ・・・(答)

【類題※1】 
(1)
次の連立方程式が自明解(x=y=0)以外の解をもつように,定数aの値を定めてください.


(2)
次の連立方程式が自明解(x=y=0)以外の解をもつように,定数aの値を定めてください.


(3)
次の連立方程式が自明解(x=y=z=0)以外の解をもつように,定数aの値を定めてください.



(4)
次の連立方程式が自明解(x=y=z=0)以外の解をもつように,定数aの値を定めてください.



(5)
次の連立方程式が自明解(x=y=z=0)以外の解をもつように,定数aの値を定めてください.



[解答を見る]

【類題※2】 
(1)
次の連立方程式の解が無数に存在するように,定数aの条件を求めてください.



(2)
aを定数とするとき,次の連立方程式の解を求めてください.



(3)
aを定数とするとき,次の連立方程式の解を求めてください.



(4)
aを定数とするとき,次の連立方程式の解を求めてください.



(5)
aを定数とするとき,次の連立方程式の解を求めてください.



(6)
aを定数とするとき,次の連立方程式の解を求めてください.



[解答を見る]
...(PC版)メニューに戻る