プログラミングで「たすきがけ」をしましょう。
Pythonで、「式の展開」をする方法と「因数分解」をする方法を紹介します。
Pythonって何?私にも使えるの?って方は、次のブログをチェックです!
それでは、よろしくお願いいたします。
※Colaboratory環境で行っています。
目次
Pythonで文字式の計算をする方法
Pythonで文字を含む式の計算をするためには「sympy」を利用します。
Google Colaoratoryを利用する方は、「sympy」は初めからインストールされているので、すぐに文字式の計算をすることができます。
sympy自体は「式の展開や因数分解」だけではなく、方程式を解くなど代数的な計算全般をカバーしています。
計算する問題
次の式を因数分解したり、また展開したり、Pythonで行う方法を紹介します。
$$2x^2 + 5xy + 3y^2$$
Sympyを使う
Pythonで文字を含む式の計算をするために、sympyをインポートします。
次のように入力します。
import sympy
sympyの利用方法として、あらかじめ計算に使う「文字」を「シンボル(記号)」として定義しておく必要があります。
今回は、xとyを使うので、2つのシンボルを定義します。
x = sympy.Symbol('x')
y = sympy.Symbol('y')
以上で、x と y が文字として利用できるようになりました。
ここまでのまとめです。
import sympy
x = sympy.Symbol('x')
y = sympy.Symbol('y')
この命令を実行(launch)しておきましょう。
何も起こらなければOKです。
Sympyで式を定義する
問題の式である 2x^2 + 5xy + 3y^2 をPythonに入力します。この式を P と置きます。
次のように入力して実行してください。
P = 2*x**2 + 5*x*y + 3*y**2
print(P)
2*x**2 + 5*x*y + 3*y**2
このように出力されれば、ちゃんと P が入力できたことになります。
念のため、Pythonでの演算を掲載しておきます。
数学 | Python |
---|---|
4 + 2 | 4 + 2 |
4 - 2 | 4 - 2 |
4 × 2 | 4*2 |
4 ÷ 2 | 4/2 |
4^2 | 4**2 |
Sympyで因数分解
式 P を定義しました。因数分解(たすきがけ)ができるので、Pythonに計算してもらいましょう。
Pythonで因数分解を行うためには、次のように入力します。
Q = sympy.factor(P)
print(Q)
このように入力して、実行すると、
(x + y)*(2*x + 3*y)
と表示されました。
因数分解成功です!やったね✌
なお、因数分解を行うだけであれば、次の入力だけで構いません。
print(sympy.factor(P))
Sympyで式の展開をする
Sympyで因数分解をすることができました。
式の展開もしたいですね。
Pを因数分解した式がQの式でした。
Q = (x+y)(2x+3y)
Qを展開するためには、次のように入力してください。
print(sympy.expand(Q))
2*x**2 + 5*x*y + 3*y**2
Qが展開された式である P が出力されれば成功ですね。
SympyでLaTeX表示(おまけ)
Sympyを利用することで、式の展開も因数分解(たすきがけ)も行うことができました。
でも、扱っている式が少し見にくいのが少し嫌です。
最後に、LaTeX表示させてみます。Google Colaboratoryの場合は、非常に簡単に行うことが可能です。
次のように入力してください。
display(P)
display(Q)
結果としては、次のようにきれいな数式の形で表示されます。
$2x^2 + 5xy + 3y^2$
$(x+y)(2x+3y)$
みやすいですね。
Sympyで式の展開と因数分解
Sympyで式の展開と因数分解をする方法を紹介しました。
今回、ご紹介したコードを整理しておきます。
import sympy
#xとyを文字として定義する
x = sympy.Symbol('x')
y = sympy.Symbol('y')
#多項式Pを定義して表示する
P = 2*x**2 + 5*x*y + 3*y**2
print(P)
#Pを因数分解して、Qと置き、表示する
Q = sympy.factor(P)
print(Q)
#Qを展開して表示する
print(sympy.expand(Q))
#PとQをLaTeX表示する
display(P)
display(Q)
はい、ご覧いただき、ありがとうございます!
様々な式に対して、因数分解できるか検証することもできますね!