Sympy 展開計算例

>>> from sympy import *
>>> x = Symbol('x')
>>> y = Symbol('y')
>>> expand(6*(x/40 + 3045684*y)**2 + 4*(x/40 + 3045678*y)**2 + 10*(x/40 + 3045660*y)**2 + y*(121826832*y - 1))
x**2/80 + 15228354*x*y/5 + 185522334268704*y**2 - y

 

>>> from sympy import *
>>> x = Symbol('x')
>>> y = Symbol('y')
>>> a = Symbol('a')
>>> b = Symbol('b')
>>> c = Symbol('c')
>>> d = Symbol('d')
>>> expand((a*x+b*y)**2 + 4*(a*x+b*y)*(c*x+d*y) - 8*(c*x+d*y)**2 - 4*(c*x+d*y))
a**2*x**2 + 2*a*b*x*y + 4*a*c*x**2 + 4*a*d*x*y + b**2*y**2 + 4*b*c*x*y + 4*b*d*y**2 - 8*c**2*x**2 - 16*c*d*x*y - 4*c*x - 8*d**2*y**2 - 4*d*y
from sympy import *

a = Symbol('a')
b = Symbol('b')
c = Symbol('c')
d = Symbol('d')
e = Symbol('e')
f = Symbol('f')

t = ((f - d)*(e - d) - (c - a)*(a - b))/(2*((a - b)*(f - e) - (e - d)*(b - c)))
o = (b + c)/2 + t*(f - e)
x = simplify(expand(o))
print(x)
p = (e + f)/2 + t*(b - c)
y = simplify(expand(p))
print(y)

l = ((e - f)*(e - d)-(c - b)*(b - a))/((f - d)*(c - b)-(a - c)*(e - f))
x = b + l * (f - d)
print(simplify(expand(x)))
y = e + l * (a - c)
print(simplify(expand(y)))
from sympy import *

x, y, L, M, N = symbols('x, y, L M N')
l = L / 414 + 5 * M / 621 + N / 1242
m = 5 * L / 621 + 878 * M / 1863 + 212 * N / 1863
n = L / 1242 + 212 * M / 1863 - 827 * N / 3726

f = m ** 2 + m * n - 7 * m * l - 2 * n ** 2 - 2 * n * l + 219 * l ** 2
print(simplify(expand(f)))

M = x * L; N = y * L
g = L**2/828 + 5*L*M/621 + L*N/1242 + 439*M**2/1863 + 212*M*N/1863 - 827*N**2/7452
print(simplify(expand(g)))

※参考
3.2. Sympy : Python での代数計算 — Scipy lecture notes