データサイエンス、機械学習、ブロックチェーンなど、数学理論に裏打ちされた技術に注目が集まっています。それに従い、エンジニアにも数学の知識がより必要になってきているのは、良く耳にするところ。そこで、高校数学を学び直せるクイズを用意!さあ、あなたは何問解ける!?
問題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インタプリタが起動している状態で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]
上の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関連記事
RANKING人気記事ランキング
米国優位が揺らぐ?ひろゆき「CPUの進化でGPU神話って崩壊しません?」【AI研究者・今井翔太が回答】
NEW!
表面的なテクニックより「基礎基本の重要性」に気付かされた一冊【Node.js 日本ユーザーグループ代表・古川陽介】
AWS認定資格10種類を一覧で解説! 難易度や費用、おすすめの学習方法も
正論モンスター化に要注意!ぎくしゃくしない「ミスの指摘」のコツ【澤円「コミュ力おばけ」への道】
社会で成功するゲーマーに、ひろゆきが聞く「現実世界を攻略できないゲーマーに足りないものって何すか?」
JOB BOARD編集部オススメ求人特集
タグ