数と式
整式
着目
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