アイキャッチ

問題2. 方程式を元にPythonでグラフを描けますか?【Pythonで学び直す高校数学】

ITニュース

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

    連載第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インタプリタが起動しました。

    Anacondaプロンプト

    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コードで確かめられるところが好評です。

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

    >>詳細はこちら

    Xをフォローしよう

    この記事をシェア

    RELATED関連記事

    RANKING人気記事ランキング

    JOB BOARD編集部オススメ求人特集






    サイトマップ