2つの式①・②の係数と右辺の数を入力してください。下の数式は入力欄と連動していて、数字の部分を直接書き換えても計算できます。
このページでできること
- 2元1次連立方程式 \(ax + by = c,\ dx + ey = f\) を、係数と右辺の数を入れるだけでその場で解けます。計算機には手書きと同じ形の連立の式が表示され、数字の部分を直接書き換えて計算することもできます
- 解き方は加減法(係数をそろえて辺々足し引きする)と代入法(\(y = \) の形にして代入する)から選べて、中学2年の教科書と同じ流れの途中式が表示されます
- 係数には小数・負の数のほか、3/4 のような分数も入力できます(分数・小数の係数は「両辺を何倍かして整数に直す」ところから途中式を表示します)
- 解がちょうど1組に決まる場合のほか、解なし(2直線が平行)・解が無数にある(不定:同じ直線)の場合も、理由つきで判定します。答えは約分済みの分数(厳密値)で表示し、分数になったときは小数も併記。2直線のグラフ(交点=解)と、両方の式に代入する検算も見られます
- 式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
この計算は何の役に立つ?
「りんご1個とみかん1個で300円、りんご2個とみかん1個で480円」のように、合計金額しかわからないレシートが2枚あれば、りんごを \(x\) 円・みかんを \(y\) 円として \(x + y = 300\)、\(2x + y = 480\) という連立方程式が立ち、りんご180円・みかん120円と単価が割り出せます。
「個別の値段は書いていないが、組み合わせの合計ならわかる」という状況は、経理の内訳計算や見積もりの分解でもよく現れる、連立方程式の一番の定番です。
基本料金1,500円+1GBあたり500円のプランAと、基本料金3,000円+1GBあたり200円のプランBは、月額を \(y\) 円・データ量を \(x\) GBとすると \(y = 500x + 1500\)、\(y = 200x + 3000\) という2本の式になり、連立して解くと \(x = 5\)(GB)で月額が同じ4,000円になるとわかります。
つまり「5GBより多く使うならプランBが得」。2直線の交点=分岐点を求める計算は、電気料金やサブスクの比較でも同じように使えます(料金が使用量に比例して増えるプランを想定した計算です)。
家から駅まで1,500m。分速60mで歩き、途中から分速150mで走って15分で着いたなら、歩いた距離を \(x\) m・走った距離を \(y\) mとして、距離の式 \(x + y = 1500\) と時間の式 \(\dfrac{x}{60} + \dfrac{y}{150} = 15\) が立ちます。解くと歩き500m・走り1,000mです。
「合計」と「配分で決まるもう1つの量(時間・費用など)」の2つの条件がそろうと連立方程式になる、という型は、速さの問題に限らず広く使えます。
濃度5%の食塩水と10%の食塩水を混ぜて、8%の食塩水を300g作りたいとき、5%側を \(x\) g・10%側を \(y\) gとすると、全体量の式 \(x + y = 300\) と食塩の量の式 \(0.05x + 0.1y = 24\)(300gの8%=24g)が立ち、解くと5%側120g・10%側180gです。
めんつゆの希釈、消毒液や肥料の調製、金属の合金など、「2つの材料を混ぜて目標の濃度にする」場面で広く使われている計算です。
1個800円で売る商品の材料費が1個500円、月の家賃などの固定費が9万円なら、月の販売数を \(x\) 個・金額を \(y\) 円として、売上の式 \(y = 800x\) と費用の式 \(y = 500x + 90000\) の交点を求めると、\(x = 300\) 個・\(y = 24\) 万円。月300個が黒字と赤字の分かれ目(損益分岐点)だとわかります。
事業計画や値付けの検討で最初に確かめる数字の一つで、中身は連立方程式そのものです(売価・原価が数量によらず一定という前提の計算です)。
式とグラフ
用語・記号の解説
記号
| \(x,\ y\) | エックス・ワイ | 求めたい2つの数(未知数)を表す文字。方程式では「まだわかっていない数」に、アルファベットの終わりの方の文字 \(x,\ y,\ z\) を使う慣例があります。 |
| \(a,\ b,\ c,\ d,\ e,\ f\) | エー・ビー・シー・ディー・イー・エフ | 係数や右辺の定数(わかっている数)を一般的に表す文字。「決まった数」には、アルファベットの初めの方の文字を使う慣例があります。このページでは①を \(ax + by = c\)、②を \(dx + ey = f\) と書いています。 |
| ①・② | まるいち・まるに | 式に付ける番号。「①×2」「①+②」のように、どの式にどんな操作をしたかを短く書くために使います。教科書や答案でも使われる書き方です。 |
| \(\{\) | ちゅうかっこ | 連立方程式の左側に付ける大きなかっこ。「この2本の式を同時に成り立たせる」という意味のしるしで、2本がセットであることを表します。 |
| \(ae - bd\) | エーイー ひく ビーディー | 解を一気に出す公式の分母に現れる、係数を斜めに掛けて引いた値。0かどうかで「解が1組に決まるか」が分かれます。行列の言葉では、係数を並べた行列の行列式にあたります。 |
| \((x,\ y)\) | エックス・ワイの組 | 2つの値をセットで書く書き方。連立方程式の解は \(x\) と \(y\) のペアなので、\((2,\ 3)\) のように組で書きます。グラフでは点の座標と同じ書き方です。 |
用語
| 連立方程式 | れんりつほうていしき | 2つ以上の方程式をひと組にして、すべての式を同時に成り立たせる文字の値を求める問題。中学2年で学びます。 |
| 2元1次方程式 | にげんいちじほうていしき | 文字(元)が2つで、どの項も1次(2乗や文字どうしの掛け算がない)の方程式。「元」は文字の個数、「次」は文字の指数の最大を表します。\(x + y = 5\) は2元1次方程式です。 |
| 解 | かい | 方程式を成り立たせる文字の値。連立方程式では \(x\) と \(y\) の値の組が解で、グラフでは2直線の交点の座標にあたります。 |
| 加減法 | かげんほう | 2つの式の係数をそろえ、左辺どうし・右辺どうしを足したり引いたりして1つの文字を消して解く方法。名前は「加(足す)」と「減(引く)」から来ています。 |
| 辺々 | へんぺん | 2つの等式の「左辺どうし」「右辺どうし」をまとめて指す言い方。「辺々足す」は、左辺どうしを足したものと右辺どうしを足したものを「=」で結んで、新しい等式を作ることです(辺々引くも同様)。 |
| 代入法 | だいにゅうほう | 一方の式を「\(y = \)(\(x\) の式)」の形に変形し、それを他方の式の \(y\) に代入して1つの文字を消して解く方法。 |
| 代入 | だいにゅう | 文字の場所に、値や式を当てはめること。\(y = 5 - x\) を \(2x - y = 1\) に代入すると \(2x - (5 - x) = 1\) になります。 |
| 消去 | しょうきょ | 2つの文字のうち1つを式から消して、文字が1つだけの方程式にすること。加減法・代入法は、どちらも消去のための手段です。 |
| 移項 | いこう | 等式の項を、符号を変えて反対側の辺に移すこと。\(x + 3 = 7\) の \(3\) を移項すると \(x = 7 - 3\) になります。「両辺から同じ数を引く」操作の省略形です。 |
| 係数 | けいすう | 文字の前に付いている数。\(2x\) の 2 が係数です。\(x\) のように数が書かれていない項の係数は 1、\(-y\) の係数は \(-1\) と考えます。 |
| 等式の性質 | とうしきのせいしつ | 等式の両辺に同じ数を足しても、引いても、掛けても、(0以外で)割っても、等式は成り立ったままである、という性質。天秤の両側に同じ重さを載せてもつり合ったままであることに例えられます。加減法・代入法の変形すべての根拠です。 |
| 最小公倍数 | さいしょうこうばいすう | 2つの数に共通する倍数のうち最小のもの。加減法で係数をそろえるときの目標の数に使います(係数2と3なら6にそろえる)。 |
| 平行 | へいこう | 2本の直線がどこまで行っても交わらないこと。連立方程式では、2つの式のグラフが平行だと交点がないので「解なし」になります。 |
| 不定 | ふてい | 解が1組に決まらず、無数にあること。2つの式が同じ直線を表している場合で、直線上のすべての点が解になります。 |
| 交点 | こうてん | 2つのグラフが交わる点。連立方程式の解は、2つの式のグラフ(2本の直線)の交点の座標と一致します。 |
| 検算 | けんざん | 求めた解を元の2つの式に代入して、左辺と右辺が本当に等しくなるか確かめること。連立方程式は代入するだけで確かめられるので、検算の習慣をつけると計算ミスに自分で気づけます。 |
| クラメルの公式 | クラメルのこうしき | 係数から直接解を計算する公式で、\(x = \dfrac{ce - bf}{ae - bd},\ y = \dfrac{af - cd}{ae - bd}\) と書けます。スイスの数学者クラメル(Cramer)の名前に由来します。高校の行列や大学の線形代数で学ぶ内容ですが、2元1次なら中学の範囲の計算だけで確かめられます。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
つまずいたら、この表の内容に戻って復習するのが近道です。
| 文字を使った式(中学1年) |
|
| 正負の数の計算(中学1年) |
|
| 等式の性質と1次方程式(中学1年) |
|
| 座標とグラフ(中学1〜2年) |
|
| 分数の計算(小学5年〜中学1年) |
|
Excelで計算する方法
| ①の x の係数 a | 1 |
| ①の y の係数 b | 1 |
| ①の右辺 c | 5 |
| ②の x の係数 d | 2 |
| ②の y の係数 e | -1 |
| ②の右辺 f | 1 |
| 分母 ae−bd | =B1*B5-B2*B4 |
| 解 x((ce−bf)÷(ae−bd)) | =(B3*B5-B2*B6)/B7 |
| 解 y((af−cd)÷(ae−bd)) | =(B1*B6-B3*B4)/B7 |
| ①の x の係数 a | 1 |
| ①の y の係数 b | 1 |
| ①の右辺 c | 3 |
| ②の x の係数 d | 2 |
| ②の y の係数 e | 2 |
| ②の右辺 f | 6 |
| 分母 ae−bd | =B1*B5-B2*B4 |
| 分子 ce−bf | =B3*B5-B2*B6 |
| 分子 af−cd | =B1*B6-B3*B4 |
| 判定 | =IF(B7<>0,"解が1組に決まる",IF(AND(B8=0,B9=0),"不定(解は無数)","解なし(平行)")) |
| ①の x の係数 a | 1 |
| ①の y の係数 b | 1 |
| ①の右辺 c | 5 |
| ②の x の係数 d | 2 |
| ②の y の係数 e | -1 |
| ②の右辺 f | 1 |
| 解 x | 2 |
| 解 y | 3 |
| ①の左辺 ax+by(cと一致すれば正しい) | =B1*B7+B2*B8 |
| ②の左辺 dx+ey(fと一致すれば正しい) | =B4*B7+B5*B8 |
1つ目の表は x + y = 5、2x − y = 1 を解く例で、分母 ae−bd は −3、解は x = 2、y = 3 になります。分母が 0 のときは割り算がエラー(#DIV/0!)になりますが、それが「解が1組に決まらない」合図です。
2つ目の表は x + y = 3、2x + 2y = 6 の例で、判定は「不定(解は無数)」になります。②の右辺 f を 10 に変えると「解なし(平行)」に変わります。
3つ目の表は解を両方の式に代入する検算で、①の左辺は 5、②の左辺は 1 になり、それぞれの右辺と一致します。
Googleスプレッドシートで計算する方法
| ①の x の係数 a | 1 |
| ①の y の係数 b | 1 |
| ①の右辺 c | 5 |
| ②の x の係数 d | 2 |
| ②の y の係数 e | -1 |
| ②の右辺 f | 1 |
| 分母 ae−bd | =B1*B5-B2*B4 |
| 解 x((ce−bf)÷(ae−bd)) | =(B3*B5-B2*B6)/B7 |
| 解 y((af−cd)÷(ae−bd)) | =(B1*B6-B3*B4)/B7 |
| ①の x の係数 a | 1 |
| ①の y の係数 b | 1 |
| ①の右辺 c | 3 |
| ②の x の係数 d | 2 |
| ②の y の係数 e | 2 |
| ②の右辺 f | 6 |
| 分母 ae−bd | =B1*B5-B2*B4 |
| 分子 ce−bf | =B3*B5-B2*B6 |
| 分子 af−cd | =B1*B6-B3*B4 |
| 判定 | =IF(B7<>0,"解が1組に決まる",IF(AND(B8=0,B9=0),"不定(解は無数)","解なし(平行)")) |
| ①の x の係数 a | 1 |
| ①の y の係数 b | 1 |
| ①の右辺 c | 5 |
| ②の x の係数 d | 2 |
| ②の y の係数 e | -1 |
| ②の右辺 f | 1 |
| 解 x | 2 |
| 解 y | 3 |
| ①の左辺 ax+by(cと一致すれば正しい) | =B1*B7+B2*B8 |
| ②の左辺 dx+ey(fと一致すれば正しい) | =B4*B7+B5*B8 |
Pythonで計算する方法
from fractions import Fraction
# ①: a1*x + b1*y = c1
# ②: a2*x + b2*y = c2 (3/4 のような分数は Fraction(3, 4) と書ける)
a1, b1, c1 = Fraction(1), Fraction(1), Fraction(5)
a2, b2, c2 = Fraction(2), Fraction(-1), Fraction(1)
denominator = a1 * b2 - a2 * b1 # 解の公式の分母 ae − bd
if denominator != 0:
x = (c1 * b2 - c2 * b1) / denominator
y = (a1 * c2 - a2 * c1) / denominator
print(f"解: x = {x}, y = {y}")
print(f"小数で表すと: x = {float(x)}, y = {float(y)}")
elif c1 * b2 - c2 * b1 == 0 and a1 * c2 - a2 * c1 == 0:
print("不定(2つの式は同じ直線を表します。解は無数にあります)")
else:
print("解なし(2つの直線は平行で、交点がありません)")
数式記述言語(LaTeX等)での書き方(コピペ可)
ax + by = c, dx + ey = f
\begin{cases} ax + by = c \\ dx + ey = f \end{cases}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mo>{</mo>
<mtable columnalign="left">
<mtr><mtd>
<mi>a</mi><mi>x</mi><mo>+</mo><mi>b</mi><mi>y</mi><mo>=</mo><mi>c</mi>
</mtd></mtr>
<mtr><mtd>
<mi>d</mi><mi>x</mi><mo>+</mo><mi>e</mi><mi>y</mi><mo>=</mo><mi>f</mi>
</mtd></mtr>
</mtable>
</mrow>
</math>
{(ax + by = c),(dx + ey = f):}
Solve[{a*x + b*y == c, d*x + e*y == f}, {x, y}]
solve({a*x + b*y = c, d*x + e*y = f}, {x, y});
S = solve(a*x + b*y == c, d*x + e*y == f, [x, y])
ax + by = c, dx + ey = f
(ax + by) − (ax + ey) = c − f
(ax + by) - (ax + ey) = c - f
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mo>(</mo><mi>a</mi><mi>x</mi><mo>+</mo><mi>b</mi><mi>y</mi><mo>)</mo>
<mo>−</mo>
<mo>(</mo><mi>a</mi><mi>x</mi><mo>+</mo><mi>e</mi><mi>y</mi><mo>)</mo>
<mo>=</mo>
<mi>c</mi><mo>−</mo><mi>f</mi>
</mrow>
</math>
(ax + by) - (ax + ey) = c - f
Simplify[(a*x + b*y) - (a*x + e*y) == c - f]
(a*x + b*y) - (a*x + e*y) = c - f;
simplify((a*x + b*y) - (a*x + e*y) == c - f)
(ax + by) − (ax + ey) = c − f
y = px + q, dx + e(px + q) = f
y = px + q,\quad dx + e(px + q) = f
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>y</mi><mo>=</mo><mi>p</mi><mi>x</mi><mo>+</mo><mi>q</mi>
<mo>,</mo>
<mi>d</mi><mi>x</mi><mo>+</mo><mi>e</mi>
<mo>(</mo><mi>p</mi><mi>x</mi><mo>+</mo><mi>q</mi><mo>)</mo>
<mo>=</mo><mi>f</mi>
</mrow>
</math>
y = px + q, dx + e(px + q) = f
Solve[{y == p*x + q, d*x + e*y == f}, {x, y}]
subs(y = p*x + q, d*x + e*y = f);
subs(d*x + e*y == f, y, p*x + q)
y = px + q, dx + e(px + q) = f
x = (ce − bf)/(ae − bd), y = (af − cd)/(ae − bd)
x = \frac{ce - bf}{ae - bd},\quad y = \frac{af - cd}{ae - bd}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>x</mi><mo>=</mo>
<mfrac>
<mrow><mi>c</mi><mi>e</mi><mo>−</mo><mi>b</mi><mi>f</mi></mrow>
<mrow><mi>a</mi><mi>e</mi><mo>−</mo><mi>b</mi><mi>d</mi></mrow>
</mfrac>
<mo>,</mo>
<mi>y</mi><mo>=</mo>
<mfrac>
<mrow><mi>a</mi><mi>f</mi><mo>−</mo><mi>c</mi><mi>d</mi></mrow>
<mrow><mi>a</mi><mi>e</mi><mo>−</mo><mi>b</mi><mi>d</mi></mrow>
</mfrac>
</mrow>
</math>
x = (ce - bf)/(ae - bd), y = (af - cd)/(ae - bd)
{x, y} = {(c*e - b*f)/(a*e - b*d), (a*f - c*d)/(a*e - b*d)}
x := (c*e - b*f)/(a*e - b*d); y := (a*f - c*d)/(a*e - b*d);
x = (c*e - b*f)/(a*e - b*d); y = (a*f - c*d)/(a*e - b*d);
x = (ce − bf)/(ae − bd), y = (af − cd)/(ae − bd)
ChatGPT に聞いて計算してもらう方法
あなたは数学(連立方程式)の計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 連立方程式 x + y = 5、2x − y = 1 を解いてください。 次の内容をそれぞれ示してください。 1. 解 x, y(分数になる場合は約分済みの分数と小数の両方で) 2. 加減法(どちらかの文字の係数をそろえて辺々足し引きする方法)での途中式 3. 求めた解を両方の式に代入する検算 Pythonでは標準ライブラリの fractions モジュールを使って厳密に計算し、計算に使った式と実行結果の数値を示してください。解が存在しない場合・無数にある場合は、その理由も説明してください。
計算ドリル(演習問題)
このページの解き方(加減法・代入法)を、自分の手で使えるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
