수식을 다루기 위해서 sympy 모듈을 불러들인다.
from sympy import *
init_printing() # 수식을 보기좋게 출력하는 함수를 호출한다
변수 $x \,\, y \, \, z$ 를 사용하려면, symbols( ) 함수로 기호들을 선언해야 한다.
x, y, z = symbols('x y z')
다항식 $\,A = -3xy + x^2 + 2y^2 +x $ 를 입력한다.
A = -3*x*y + x**2 + 2*y**2 + x
$x$ 는 기호(symbol)로서 사용하기 전에 선언했지만, 수식 $A$ 는 미리 선언하지 않고 바로 사용하였다.
위에서 $x$ 와 같이 기호로 쓰이는 변수는, 그 변수에 대하여 해를 구하거나, 미적분을 구하는 등 수학의 기본적인 독립 변수를 나타낸다.
독립 변수의 함수로서, 그 표현이 명시적으로 주어지는 종속 변수 ( 위의 예에서 $A(x,y)$ ) 는 미리 선언하지 않는다.
다항식 $A$ 의 내용을 출력해 보자.
A
다항식 $A$ 를 $x$ 에 대하여 정리한다. $\quad$ collect( ) 함수
collect( A, x )
다항식의 덧셈을 계산한다.
$(5x^3-x^2+3x-1 ) + (-x^3+2x^2+5 ) $
( 5*x**3 - x**2 + 3*x - 1 ) + ( -x**3 + 2*x**2 + 5 )
다항식을 전개한다. $\quad$ expand( ) 함수
$(x^2+x-2 ) \, (3x-1 ) $
expand( ( x**2 + x - 2 ) * ( 3*x - 1 ) )
곱셈 공식을 확인한다.
$(a+b+c)^2 = a^2+b^2+c^2+2ab+2bc+2ca$
a, b, c = symbols('a b c')
expand( ( a + b + c )**2 )
다항식을 인수분해한다. $\quad$ factor( ) 함수
$x^3-3x+2 = (x-1)^2 \, (x+2) $
factor( x**3 - 3*x + 2 )
다음 다항식을 인수분해한다.
$2x^2+5xy+3y^2+3x+5y-2 $
factor( 2*x**2 + 5*x*y + 3*y**2 + 3*x + 5*y - 2 )
유리식을 약분한다. $\quad$ cancel( ) 함수
$$\frac {x^2-2x+1} {x^2-3x+2} $$( x**2 - 2*x + 1 ) / ( x**2 - 3*x + 2 )
cancel( ( x**2 - 2*x + 1 ) / ( x**2 - 3*x + 2 ) )
다음 유리식을 계산한다. $\quad$ cancel( ) 함수
$$\frac 1 {x-1} + \frac 2 {x+2} $$cancel( 1/(x-1) + 2/(x+2) )
위의 결과를 인수분해 한다. $\quad$ factor( ) 함수
factor( _ )
밑줄 ' _ ' 은 바로 직전의 출력을 가리킨다.
다음 유리식을 간단히 한다. $\quad$ simplify( ) 함수
$$\frac {x-1+ \frac 1 {x-1} } {x-1- \frac 1 {x-1} } $$A = ( x - 1 + 1/(x-1) ) / ( x - 1 - 1/(x-1) )
A
simplify( A )