プログラミングで「たすきがけ」をしましょう。

Pythonで、「式の展開」をする方法と「因数分解」をする方法を紹介します。

Pythonって何?私にも使えるの?って方は、次のブログをチェックです!

Google Colaboratoryを初めて使う人へ(Python初心者へ)

Google Colaboratory(グーグルコラボラトリー)というGoogleの提供するアプリを使い始めるまでの紹介をします。 Colaboratoryを利用することは、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 + 24 + 2
4 - 24 - 2
4 × 24*2
4 ÷ 24/2
4^24**2
Pythonでの演算早見表

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)

はい、ご覧いただき、ありがとうございます!

様々な式に対して、因数分解できるか検証することもできますね!

コメントをどうぞ