データサイエンス、機械学習、ブロックチェーンなど、数学理論に裏打ちされた技術に注目が集まっています。それに従い、エンジニアにも数学の知識がより必要になってきているのは、良く耳にするところ。そこで、高校数学を学び直せるクイズを用意!さあ、あなたは何問解ける!?

問題2. 方程式を元にPythonでグラフを描けますか?【Pythonで学び直す高校数学】
連載第1回の「10進数と2進数――その違い、分かりますか?」では、コンピュータが数を扱う際の基本である2進数について取り上げました。もしかすると、ちょっと物足りないと思った人もいるかもしれません。
今回はもっと“数学”をしてみましょう。テーマは「方程式」です。
本連載ではPythonを実行する環境として、Anacondaディストリビューションのインストールを前提にしています。簡単な使い方は第1回「10進数と2進数――その違い、分かりますか?」で解説していますが、詳しく解説しているサイトもたくさんあります。PythonやAnacondaを操作したことがないという人は、そうしたサイトもぜひ参考にしてみてください。
方程式とは、文字を含んだ等式です。文字に代入する値によって、等式が成立することもあれば、成立しないこともあります。
例えば、「30個のキャンディを3個ずつ子供たちに配ったら、6個余りました。さて、子供は何人いるでしょう?」という文章題があったとします。
分からないのは子供の人数なので、これをxとします。そうすると前述の文章は
3x+6=30
という式で表せます。これが子供の数を未知数xとした方程式です。この未知数xを求めることが、方程式を解くということになります。
まずは、この方程式を解いてみましょう。未知数を左辺に残すように式を整理すると、
3x=30-6
3x=24
x=8
となり、子供は8人いたことが分かります。
ここで、最初に作った方程式を整理して、右辺を0にしてみます。
3x+6=30
3x-24=0
ここで0をyに置き換えて、両辺を入れ替えます。これにより式は、
y=3x-24
となります。こうすると、xの値によってyの値を求めることができます。これが関数です。関数とは「入力する値が決まると、出力が1つに決まる式」です。
【問題】xが1から10のとき、3x-24の値がどうなるか、Pythonで計算してみよう
上の式も、xに1から10までの値を入れていくと、yの値が1つにそれぞれ決まります。これをPythonインタプリタで確かめてみましょう。Pythonインタプリタを起動するには、まずスタートメニューから「Anacondaプロンプト」を起動します。Anacondaプ ロンプトが起動したら、コマンドラインに「python」と入力してEnterキーを押します。するとプロンプトが「>」から「>>>」に変わります。これでPythonインタプリタが起動しました。

Pythonインタプリタを起動するには、まずAnacondaプロンプトを起動する

Anacondaプロンプトでpython
と入力してPythonインタプリタを起動

Pythonインタプリタが起動したところ。「>>>」と表示されているところに続けて、コードを入力する
※終了するときは、Pythonインタプリタが起動している状態でexit()
を入力。するとプロンプトがAnacondaに戻るので、今度はexit
を入力すると、Anacondaプロンプトが終了します。
Pythonインタプリタが起動したら、まず最初に「y = []」を入力します。これで、計算結果であるyを記録するリストを作ります。最初なので空のリストを作りました。
>>> y = []
続いて、次の行で1から10までの値を処理するようにxの値の範囲を指定します。
>>> for x in range(1, 11):
Pythonに慣れていない人は、最後の「:」を忘れないようにしましょう(①)。また次の行ではプロンプトが「>>>
」から「...
」に変わります。ここで必ずスペースキーを4回入力し、行頭をインデントしてから次のコードを入力します(②)。
... y.append(3 * x -24)
次の行もプロンプトが「...
」と表示されます。ここでEnterキー(もしくはReturnキー)だけを押します。するとその次の行ではプロンプトが「>>>
」に戻ります。
この時点でyを求める計算は終わっています。ここで「y」を入力すると、次の行でyの結果を表示できます。
>>> y
[-21, -18, -15, -12, -9, -6, -3, 0, 3, 6]

Pythonインタプリタでここまでの計算を実行したところ
上の2行のリストの下側は、前から順にxが1のときのy、xが2のときのyといったように、yの計算結果を順に表示したものです。最後は、xが10のときにyが6になることを示しています。
※①、②はPythonの文法に従った記述で、その通りに入力しないとプログラムが動作しません。
このようにxとyの組み合わせができるなら、グラフが描けますね。Pythonでy=3x-24をグラフ化してみましょう。Jupyter Notebookを起動して、以下のリストを入力します。
※各行の先頭にある行番号は入力しません
※Jupyter Notebookの使い方は、第1回「10進数と2進数――その違い、分かりますか?」を参照してください。
1: %matplotlib inline
2: import matplotlib.pyplot as plt
3:
4: # 計算結果をデータ化
5: x = list(range(1, 11)) # xの値を1~10に指定
6: y = []
7: for i in range(10):
8: y.append(3 * x[i] - 24) # y = 3x - 24を計算して結果を記録
9:
10: # 計算結果からグラフを作成
11: plt.plot(x, y)
12: plt.grid(color='0.8')
13: plt.show()
1~2行目で、グラフを作成するライブラリ「Matplotlib」を使う準備をしています。
5~7行目で、xの値を指定し、xの値を変えながら3x-24の値を計算。その結果でyのリストを作っています。
最後に10~12行目で、計算結果のxとyからグラフを作成しています。このプログラムを実行してみましょう。すると、以下のようなグラフが表示されます。

プログラムを実行して表示されたグラフ
このグラフとx軸が交わるところ、すなわちy=0のところが最初の方程式の解になります。グラフからも、xが8になることが読み取れますね。
次回は、連立方程式を取り上げます。お楽しみに!
文/仙石 誠(日経BP)

文系出身者でも分かりやすいと評判の数学【再】入門書。単に数学理論を解説するだけでなく、Pythonコードで確かめられるところが好評です。
著者:谷尻かおり(メディックエンジニアリング)
価格:2500円+税
RELATED関連記事
JOB BOARD編集部オススメ求人特集
RANKING人気記事ランキング

「アジャイルは構わんけど…」経営層が苦い顔をするのはなぜ? 牛尾剛×えふしん対談から探る

「三流でもいいは甘えだった」牛尾 剛が米マイクロソフトで痛感した、妥協を捨てる覚悟

画像生成AIの進化、本業の人はどうみる? 現実味を帯びる「デザイナー終了説」の真実

日本の技術者は万博を楽しむ知力が残っているか? 落合陽一に聞く、逆風ムードでも「万博に行くべき理由」

AWS認定資格10種類を一覧で解説! 難易度や費用、おすすめの学習方法も
タグ