코딩 수학


sympy 모듈

수식을 다루기 위해서 sympy 모듈을 불러들인다.

In [1]:
from sympy import *

init_printing()         # 수식을 보기좋게 출력하는 함수를 호출한다

변수 $x \,\, y \, \, z$ 를 사용하려면, symbols( ) 함수로 기호들을 선언해야 한다.

In [2]:
x, y, z = symbols('x y z')

다항식

다항식 $\,A = -3xy + x^2 + 2y^2 +x $ 를 입력한다.

In [3]:
A = -3*x*y + x**2 + 2*y**2 + x

$x$ 는 기호(symbol)로서 사용하기 전에 선언했지만, 수식 $A$ 는 미리 선언하지 않고 바로 사용하였다.

위에서 $x$ 와 같이 기호로 쓰이는 변수는, 그 변수에 대하여 해를 구하거나, 미적분을 구하는 등 수학의 기본적인 독립 변수를 나타낸다.

독립 변수의 함수로서, 그 표현이 명시적으로 주어지는 종속 변수 ( 위의 예에서 $A(x,y)$ ) 는 미리 선언하지 않는다.

다항식 $A$ 의 내용을 출력해 보자.

In [4]:
A
Out[4]:
$$x^{2} - 3 x y + x + 2 y^{2}$$

다항식 $A$ 를 $x$ 에 대하여 정리한다. $\quad$ collect( ) 함수

In [5]:
collect( A, x )
Out[5]:
$$x^{2} + x \left(- 3 y + 1\right) + 2 y^{2}$$

다항식의 덧셈을 계산한다.

$(5x^3-x^2+3x-1 ) + (-x^3+2x^2+5 ) $

In [6]:
( 5*x**3 - x**2 + 3*x - 1 ) + ( -x**3 + 2*x**2 + 5 )
Out[6]:
$$4 x^{3} + x^{2} + 3 x + 4$$

다항식을 전개한다. $\quad$ expand( ) 함수

$(x^2+x-2 ) \, (3x-1 ) $

In [7]:
expand( ( x**2 + x - 2 ) * ( 3*x - 1 ) )
Out[7]:
$$3 x^{3} + 2 x^{2} - 7 x + 2$$

곱셈 공식을 확인한다.

$(a+b+c)^2 = a^2+b^2+c^2+2ab+2bc+2ca$

In [8]:
a, b, c = symbols('a b c')
In [9]:
expand( ( a + b + c )**2 )
Out[9]:
$$a^{2} + 2 a b + 2 a c + b^{2} + 2 b c + c^{2}$$

인수분해

다항식을 인수분해한다. $\quad$ factor( ) 함수

$x^3-3x+2 = (x-1)^2 \, (x+2) $

In [10]:
factor( x**3 - 3*x + 2 )
Out[10]:
$$\left(x - 1\right)^{2} \left(x + 2\right)$$

다음 다항식을 인수분해한다.

$2x^2+5xy+3y^2+3x+5y-2 $

In [11]:
factor( 2*x**2 + 5*x*y + 3*y**2 + 3*x + 5*y - 2 )
Out[11]:
$$\left(x + y + 2\right) \left(2 x + 3 y - 1\right)$$

유리식

유리식을 약분한다. $\quad$ cancel( ) 함수

$$\frac {x^2-2x+1} {x^2-3x+2} $$
In [12]:
( x**2 - 2*x + 1 ) / ( x**2 - 3*x + 2 ) 
Out[12]:
$$\frac{x^{2} - 2 x + 1}{x^{2} - 3 x + 2}$$
In [13]:
cancel( ( x**2 - 2*x + 1 ) / ( x**2 - 3*x + 2 ) )
Out[13]:
$$\frac{x - 1}{x - 2}$$

다음 유리식을 계산한다. $\quad$ cancel( ) 함수

$$\frac 1 {x-1} + \frac 2 {x+2} $$
In [14]:
cancel( 1/(x-1) + 2/(x+2) )
Out[14]:
$$\frac{3 x}{x^{2} + x - 2}$$

위의 결과를 인수분해 한다. $\quad$ factor( ) 함수

In [15]:
factor( _ )              
Out[15]:
$$\frac{3 x}{\left(x - 1\right) \left(x + 2\right)}$$

밑줄 ' _ ' 은 바로 직전의 출력을 가리킨다.

다음 유리식을 간단히 한다. $\quad$ simplify( ) 함수

$$\frac {x-1+ \frac 1 {x-1} } {x-1- \frac 1 {x-1} } $$
In [16]:
A = ( x - 1 + 1/(x-1) ) / ( x - 1 - 1/(x-1) )
A
Out[16]:
$$\frac{x - 1 + \frac{1}{x - 1}}{x - 1 - \frac{1}{x - 1}}$$
In [17]:
simplify( A )
Out[17]:
$$\frac{x^{2} - 2 x + 2}{x \left(x - 2\right)}$$