数Ⅰ

数と式

整式

着目

import sympy as sym

a, b, x, y = sym.symbols("a, b, x, y")
f = 3*a*b*x**2*y

# x と y に着目した多項式オブジェクトを作成
expr_poly = sym.poly(f, x, y)

print(expr_poly)  #-> Poly(3*a*b*x**2*y, x, y, domain='ZZ[a,b]')

# 取り出す
print(expr_poly.coeffs())  #->[3*a*b]

ベキ順

降べきの順項の次数が低くなる順
昇べきの順項の次数が高くなる順
import sympy as sym

x, y = sym.symbols("x, y")
f = x**2 + 2*x*y + y**2 - 3*x - 5*y - 4

print(sym.collect(f, x)) #-> x**2 + x*(2*y - 3) + y**2 - 5*y - 4

整式の加法と減法および乗法

整式の法則

交換法則\(A+B=B+A\) , \(AB=BA\)
結合法則\((A+B)+C=A+(B+C)\), \((AB)C=A(BC)\)
分配法則\(A(B+C)=AB+AC\), \((A+B)C=AC+BC\)

指数法則

\(\Large a^ma^n=a^{m+n}\)

\(\Large ax^m \times bx^n=ab^{m+n}\)
累乗同士の積の指数は足せる
\(\Large (a^m)^n=a^{mn}\)

\(\Large (ax^m)^n = a^nx^{mn}\)
累乗の累乗は指数を掛けられる
\(\Large (ab)^n = a^nb^n\)指数は分配できる

\(\Large (x^3+2-3x)(x-1)\)

\(= (x^3+2-3x)x + (x^3+2-3x)(-1) \) //分配
\(=x^4+2x-3x^2-x^3-2+3x\)
\(=x^4-x^3-3x^2+5x-2\)

import sympy as sym

x = sym.symbols("x")
f = (x**3+2-3*x)*(x-1)

print(sym.expand(f)) #-> x**4 - x**3 - 3*x**2 + 5*x - 2

展開  | .expand ( 式 )

\(\Large (a+b)^2=a^2+2ab+b^2\)
\(\Large (a-b)^2=a^2-2ab+b^2\)
\(\Large (a+b)(a-b)=a^2-b^2\)
\(\Large (x+a)(x+b) = x^2+(a+b)x+ab\)
\(\Large (ax+b)(cx+d)=acx^2+(ad+dc)x+bd\)
import sympy as sym

x, y = sym.symbols("x, y")
f = (3*x - 2*y)**2

print(sym.expand(f)) #-> 9*x**2 - 12*x*y + 4*y**2