Pythonで中学 数学の「方程式の計算」をする方法を紹介します。レベルは「中1」です。
はじめに
Pythonがインストールしてあり、使い方を知っていることが前提です。
また、Pythonでの基本的な計算方法を知っておくことが前提です。
こちらの記事を参考にしてください。
必要なもの
Pythonが使えるデバイス。
パソコン、ラズパイ、タブレット、スマホなど。
※自分はChromebookのLinuxを使っています。
sympyをインストールする
方程式の計算でも文字式と同様にPythonライブラリ「sympy」を使います。
最新版をインストールしましょう。
pip3 install sympy==1.9
sympyをインストールするには、Pythonがすでにインストールされていることが前提です。
インストールできない人は以下の方法でインストールできるかもしれません。※Linuxの場合です。
sudo apt-get install python-pip
sudo pip install sympy
方程式 一般的な解き方
このような問題があったとします。
Q 次の方程式を解きなさい。
10x=4-6x
Pythonで解くには右辺の方をゼロにする必要があります。
したがって、次のように書き換えます。
10x-4+6x=0
これをもとにコードを書いていきます。※コピペして自分のファイルに保存してください。
import sympy
x = sympy.Symbol('x')
y = sympy.Symbol('y')
print(sympy.solve(10*x-4+6*x, x)) #10x-4+6x=0
#出力結果[1/4] 答え 4分の1
問題点
しかし、この方法では、自分で「移項」させなければならず、非常に面倒くさいです。
よく考えてみると、左辺にあるものを右辺に移す際には、「すべてマイナスをかけてやればよい」ので、
コードに中にそれを書き込んで、自動で計算するプログラムにします。
工夫したやり方
自分で移項しないで方程式の問題を解いてみます。
Q 次の方程式を解きなさい。
10x=4-6x
※コピペして自分のファイルに保存してください。
import sympy
x = sympy.Symbol('x')
y = sympy.Symbol('y')
expr1=10*x #左辺
expr2=-(4-6*x) #右辺 マイナスをかける
print(sympy.solve(expr1+expr2, x)) #xの値を出す
#出力結果[1/4] 答え 4分の1
かっこのある方程式
工夫したやり方で「かっこのある方程式」を解いてみます。
Q 次の方程式を解きなさい。
7x-6=3(x-4)
import sympy
x = sympy.Symbol('x')
y = sympy.Symbol('y')
expr1=7*x-6
expr2=-(3*(x-4))
print(sympy.solve(expr1+expr2, x))
#出力結果 [-3/2] 答え -2分の3
最後に
sympyについて調べていくと、「2次方程式」や「連立方程式」のコードもありました。
気になる人はコピペして試してみてください。
2次方程式
import sympy
x = sympy.Symbol('x')
y = sympy.Symbol('y')
print(sympy.solve(x**2 - 3 * x + 2)) #xの2乗 -3x +2
# [1, 2]
連立方程式
import sympy
x = sympy.Symbol('x')
y = sympy.Symbol('y')
expr1 = 3 * x + 5 * y - 29 #3x+5y-29
expr2 = x + y - 7
print(sympy.solve([expr1, expr2]))
# {x: 3, y: 4}
関連記事
【超基礎編】Pythonで中学 数学の問題を自動作成する方法 - Qiita
Pythonで中学 比例の計算・グラフを描く方法 - Qiita
Pythonで中学 文字式の計算 - Qiita
Python で計算する準備 足し算・引き算・掛け算・割り算・分数・累乗 - Qiita