ロジカ式ロゴ

Python
データ分析

ページ一覧に戻る
Lesson 12 SymPyで連立方程式
渡辺先生

2本の直線の交点を、グラフと式の両方で確かめます。

まず自分で予想してから、コードを動かしてみよう!

そうた

結果だけでなく、そう考えた理由も説明してみます。

ひな

QUESTION まず考えよう

基本料金が異なる2つのプランは、何回使うと同じ料金になるでしょう?

2つの料金プランの直線が交わる点と連立方程式の解の関係

この図で分かること・考え方

  1. 2本の直線の交点では、利用回数と料金が両方とも等しくなります。
  2. 交点のx座標が利用回数、y座標がそのときの共通料金です。
  3. グラフで見当をつけ、連立方程式で正確な値を確かめます。

PREDICT 実行前の予想

表や暗算で交点を予想してから実行してください。

TRY 実行して確かめよう

TRY
import matplotlib.pyplot as plt from sympy import symbols, Eq, solve x = symbols('x') answer = solve(Eq(500 + 100*x, 200 + 160*x), x)[0] print('同額になる回数:', answer) uses = list(range(0, 11)) plan_a = [500 + 100*n for n in uses] plan_b = [200 + 160*n for n in uses] plt.plot(uses, plan_a, marker='o', label='Aプラン') plt.plot(uses, plan_b, marker='s', label='Bプラン') plt.grid(True) plt.legend() plt.show()
渡辺先生

グラフや数値のどこが予想と同じで、どこが違ったかを見つけましょう。

CHECK 結果を読み取ろう

交点より前と後で、どちらのプランが安いですか。

📖 考え方を確認する

5回でどちらも1000円です。5回より少なければB、多ければAが安くなります。

CHALLENGE 自分で直してみよう

Aが700+80x、Bが300+120xのとき、同額になる回数と料金を求めてください。

CHALLENGE
from sympy import symbols, Eq, solve x = symbols('x') # 2つの料金が等しい方程式を作ろう

📖 解答例と解説

from sympy import symbols, Eq, solve

x = symbols('x')
answer = solve(Eq(700 + 80*x, 300 + 120*x), x)[0]
fee = 700 + 80 * answer
print('利用回数:', answer, '回')
print('料金:', fee, '円')

10回で同額になり、料金は1500円です。解は2つの条件が重なる点です。

POINT
  •  連立方程式の解は2本のグラフの交点
  •  交点の前後も比べる
  •  回数と料金など、両方の値を答える

NEXT 次の学びへ

渡辺先生

練習問題では、販売数の2つの条件を同時に満たします。

振り返り:今回使った命令、結果から分かったこと、この方法を使える場面を、それぞれ1文で書きましょう。