Techトレンド Vol.907

問題2. 方程式を元にPythonでグラフを描けますか? 【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のときのyxが2のときのyといったように、yの計算結果を順に表示したものです。最後は、xが10のときにyが6になることを示しています。

※①、②はPythonの文法に従った記述で、その通りに入力しないとプログラムが動作しません。

このようにxyの組み合わせができるなら、グラフが描けますね。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行目で、計算結果のxyからグラフを作成しています。このプログラムを実行してみましょう。すると、以下のようなグラフが表示されます。

プログラムを実行して表示されたグラフ

このグラフとx軸が交わるところ、すなわちy=0のところが最初の方程式の解になります。グラフからも、xが8になることが読み取れますね。

次回は、連立方程式を取り上げます。お楽しみに!

文/仙石 誠(日経BP)


文系プログラマーのためのPythonで学び直す高校数学(発行・日経BP)

文系プログラマーのためのPythonで学び直す高校数学(発行・日経BP)

文系出身者でも分かりやすいと評判の数学【再】入門書。単に数学理論を解説するだけでなく、Pythonコードで確かめられるところが好評です。

著者:谷尻かおり(メディックエンジニアリング)
価格:2500円+税

>>詳細はこちら

この記事が気に入ったらいいね!しよう

エンジニアtypeの最新情報をお届けします

RELATED POSTS関連記事

JOB BOARD編集部おすすめ求人

エンジニア転職フェア開催 IT&モノづくりエンジニアを求める優良企業が大集結!



記事検索

サイトマップ



記事ランキング

SIerって本当にヤバいの? ひろゆきが語る、業界ごと沈まないためのキャリア戦略

SIerって本当にヤバいの? ひろゆきが語る、業界ごと沈まな...

英文メールでよく見る「略語」の意味は?アメリカ&シンガポール企業で働くエンジニアが解説

英文メールでよく見る「略語」の意味は?アメリカ&シンガポール...

頭痛にコーヒーが効くって本当? 管理栄養士がエンジニアに送る「頭痛対策フード」3つ

頭痛にコーヒーが効くって本当? 管理栄養士がエンジニアに送る...

BASEえふしんが『モバツイ』時代にやらかした“恥ずかし過ぎる失敗”とは?

BASEえふしんが『モバツイ』時代にやらかした“恥ずかし過ぎ...

【ひろゆき】人間関係のストレスで潰れる前にエンジニアが“諦めていい”3つのこと「他人ルールからさっさと降りて、自分ルールで生きればいい」

【ひろゆき】人間関係のストレスで潰れる前にエンジニアが“諦め...

TAGS

「type転職エージェント」無料転職サポートのご案内