データサイエンス、機械学習、ブロックチェーンなど、数学理論に裏打ちされた技術に注目が集まっています。それに従い、エンジニアにも数学の知識がより必要になってきているのは、良く耳にするところ。そこで、高校数学を学び直せるクイズを用意!さあ、あなたは何問解ける!?
![アイキャッチ](http://type.jp/et/feature/wp-content/uploads/2019/07/tfrfgfdr.jpg)
問題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インタプリタが起動しました。
![Anacondaプロンプト](https://type.jp/et/feature/wp-content/uploads/2019/07/804befc85d388e46a9a99ce0f7b8d18c.jpg)
Pythonインタプリタを起動するには、まずAnacondaプロンプトを起動する
![](https://type.jp/et/feature/wp-content/uploads/2019/07/84f6062b93d5b11aa3cf30a91c2132f6.jpg)
Anacondaプロンプトでpython
と入力してPythonインタプリタを起動
![](https://type.jp/et/feature/wp-content/uploads/2019/07/96329aef164b66fce07c8d407c9f7ab8.jpg)
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]
![](https://type.jp/et/feature/wp-content/uploads/2019/07/c2788d32dc0699cf7646ac19d4c0faf8.jpg)
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からグラフを作成しています。このプログラムを実行してみましょう。すると、以下のようなグラフが表示されます。
![](https://type.jp/et/feature/wp-content/uploads/2019/07/RADSCAADSE.jpg)
プログラムを実行して表示されたグラフ
このグラフとx軸が交わるところ、すなわちy=0のところが最初の方程式の解になります。グラフからも、xが8になることが読み取れますね。
次回は、連立方程式を取り上げます。お楽しみに!
文/仙石 誠(日経BP)
![文系プログラマーのためのPythonで学び直す高校数学(発行・日経BP)](https://type.jp/et/feature/wp-content/uploads/2019/06/kljpoloiup0.jpg)
文系出身者でも分かりやすいと評判の数学【再】入門書。単に数学理論を解説するだけでなく、Pythonコードで確かめられるところが好評です。
著者:谷尻かおり(メディックエンジニアリング)
価格:2500円+税
RELATED関連記事
RANKING人気記事ランキング
![AI全盛期にオンプレミス回帰が加速? クラウドファースト見直しで問われるインフラエンジニアの役割](https://type.jp/et/feature/wp-content/uploads/2025/02/f58a3c5a9d812af0047c8c50db085c7d.jpg)
NEW!
AI全盛期にオンプレミス回帰が加速? クラウドファースト見直しで問われるインフラエンジニアの役割
![早期退職の嵐、予兆はどこに出る?「ネットで“自分”を公開」がパニック回避に](https://type.jp/et/feature/wp-content/uploads/2025/02/c812877166865fae1efd5ef902cbb304.jpg)
早期退職の嵐、予兆はどこに出る?「ネットで“自分”を公開」がパニック回避に
![生成AI時代におけるデータサイエンティストの価値とは? 今後求められる三つのスキル](https://type.jp/et/feature/wp-content/uploads/2025/01/MUIT_yamauchi_OGP.jpg)
生成AI時代におけるデータサイエンティストの価値とは? 今後求められる三つのスキル
![「ただ作る」だけでは足りない。ビジネス価値の最大化に挑む“攻めのシステム開発”の実態](https://type.jp/et/feature/wp-content/uploads/2025/01/nihonsohken_og.jpg)
「ただ作る」だけでは足りない。ビジネス価値の最大化に挑む“攻めのシステム開発”の実態
![大AI時代、FF14・吉田直樹がエンジニアの“手”に託す希望とは?【聞き手/今井翔太】](https://type.jp/et/feature/wp-content/uploads/2025/01/f64b10164364f06b849c13f135f6f131.jpg)
大AI時代、FF14・吉田直樹がエンジニアの“手”に託す希望とは?【聞き手/今井翔太】
JOB BOARD編集部オススメ求人特集
タグ