ProgrammingのTipなど

sympyを使った代数

sympyのインストール
ここではsympyライブラリを使った代数方程式を説明します
まだsympyをインストールをしてなければ
まずpipを使ってpython3にsympyをインストールしてください
pip install sympy
そしてsympyを使うには
ファイルの先頭に
import sympy as sy
と書いてください
文字式と方程式の宣言
python3で代数方程式を扱うには
変数をそのまま宣言していてはできず
symbols関数を使って代数の変数として宣言する必要があります
また方程式もEq関数を使って宣言する必要があります(省略可能)

文字式の宣言
変数を文字式としてx,yを宣言する
x,y = sy.symbols('x y')
これでxとyをsympy上の方程式での変数として使えます
方程式の宣言
方程式を宣言するにはEq関数を使います
Eq(左辺の方程式, 右辺の方程式)
例えば
x^2 + 1 = 10
という式を宣言したければ
y = sy.Eq(x**2 + 1, 10)
となります

左辺の数値が0になる場合であればEq関数を省略して書けます
省略できる場合は省略して書くのが一般的です
0 = x^2 - 25
の式をy=の式として表したい場合は
y = x**2 - 25
と書けます
因数分解
x^2+2x+1を因数分解する
e1 = x**2 + x * 2 + 1
print(sy.factor(e1))
>>(x+1)**2
展開
(x+5)^2を展開します
e2 = (x + 5)**2
print(sy.expand(e2))
>>x**2+10*x+25
代入
代入にはsubs関数を使います
subs(変数,値)
複数の場合は次の形にして渡します
subs([(変数1,値),(変数2,値)])
x^2+y+1の式にx=3,y=5を代入する
e3 = x**2 + y + 1
print(e3.subs([(x, 3),(y,5)]))
>>15
解を求める
solveset関数は方程式の解を求めれます
solveset(方程式, 解きたい変数)
(なお似たものにsolve関数もありますが、solve関数は一部のケースでは正しく答えれない場合があるので
公式にはsolveset関数を推奨しています)

例えば次のような方程式であれば
y = 2 * x + 6
y=0の場合のxの値を求めます
この場合xは-3が解になります
解は複数ある場合もあります

a1 = x**2 - 2*x - 15
print(sy.solveset(a1, x))
>>[-3,5]
方程式に変数が1つしかない場合は第2引数を省略して書くこともできます
a1 = x**2 - 2*x - 15
print(sy.solveset(a1))
>>[-3,5]

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー2

開くメニュー

閉じるメニュー

  • アイテム
  • アイテム
  • アイテム
【メニュー編集】

管理人/副管理人のみ編集できます