26
Doing Math with Python Ch.04 SymPy 를 를를를 를를를 를를 를를 윤윤윤 ([email protected])

Doing math with python.ch04

Embed Size (px)

Citation preview

Page 1: Doing math with python.ch04

Doing Math with PythonCh.04 SymPy 를 이용한 대수와 부호 수학

윤석준 ([email protected])

Page 2: Doing math with python.ch04

파이썬으로 풀어보는 수학

상세설명https://github.com/DevStarSJ/Study/blob/master/Blog/Python/DoingMathWithPython/DoingMathWithPython.Ch04.ipynb

• 원서명 : Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (ISBN 9781593276409)

• 지은이 : 아미트 사하 (Amit Saha)• 원서 및 관련자료 : https://www.nostarch.com/doingmathwithpython• 번역서 : http://www.acornpub.co.kr/book/doing-math-with-python

Page 3: Doing math with python.ch04

3

1. 부호와 부호 연산 정의 Sympy 를 이용하여 대수 (Algebra) 문제를 부호 (Symbolic) 수학으로 풀이하는 것이 가능

Page 4: Doing math with python.ch04

4

1. 부호와 부호 연산 정의 Symbol 을 이용해서 객체를 따로 생성

symbols 을 이용해서 객체를 한번에 생성

Page 5: Doing math with python.ch04

5

2. 수식 계산 2.1 수식 인수분해 , 전개

factor() : 요소화 ( 인수분해 ) • expand() : 전개

Page 6: Doing math with python.ch04

6

2. 수식 계산 2.2 수식 출력

pprint() : 수식을 보기 좋게 출력

init_printing() : 수식 출력 순서를 지정할수 있음http://docs.sympy.org/dev/modules/physics/vector/api/printing.html

Page 7: Doing math with python.ch04

7

2. 수식 계산 2.3 수열 출력

Page 8: Doing math with python.ch04

8

3. 값으로 대체 3.1 심볼을 값으로 대체

subs() : 심볼과 값을 dictionary 로 전달하면 대체됨

Page 9: Doing math with python.ch04

9

3. 값으로 대체 3.2 심볼을 다른 심볼로 대체

simplify() : 수식을 간략화 해줌

Page 10: Doing math with python.ch04

10

4. 문자열을 수식으로 변환 simpify() : 입력된 문자열을 수식으로 변환

Page 11: Doing math with python.ch04

11

4. 문자열을 수식으로 변환 simpify() 의 예외는 sympy.core.sympify 내의 SympifyError 에 정의

Page 12: Doing math with python.ch04

12

5. 방정식 풀기 solve() 로 방정식의 해를 찾음 ( 해당 수식의 값이 0 이 될꺼라 가정 )

dictionary 로 리턴받는 것도 가능

Page 13: Doing math with python.ch04

13

5. 방정식 풀기 심볼이 여러개 있을 경우 두번째 인자로 입력한 심볼로 전개됨

나머지 항목에 상수를 넣고 해를 확인

Page 14: Doing math with python.ch04

14

6. 선형 방정식 시스템 풀기 2 개의 방정식을 만족하는 하나의 해를 구하고자 할 경우 solve() 에 Tuple 로 묶어서 전달하면 됨

해당 해가 맞는지 확인

Page 15: Doing math with python.ch04

15

7. sympy 를 사용해 그래프 그리기 sympy.plotting 을 이용해서 방정식을 그릴수 있음

축의 범위를 x 축 기준 -5 에서 5 까지로 제한하려면 (x, -5, 5) 라는 튜플을 인자로

전달

Page 16: Doing math with python.ch04

16

7. sympy 를 사용해 그래프 그리기 타이틀 , 레이블 추가

show=False 를 이용해서 출력을 하지않고 생성이 가능

.show() 로 출력

.save( 파일명 ) 으로 이미지로 저장

Page 17: Doing math with python.ch04

17

7. sympy 를 사용해 그래프 그리기 여러 함수를 한번에 그릴려면 plot() 인자로 여러개의 수식을 전달

Page 18: Doing math with python.ch04

프로그래밍 연습문제필자가 풀이한 답은 다음 Link 를 참고하세요 .https://github.com/DevStarSJ/Study/blob/master/Blog/Python/DoingMathWithPython/DoingMathWithPython.Ch04.ipynb저자의 정답은 다음 Link 에 있습니다 .https://www.nostarch.com/doingmathwithpython

Page 19: Doing math with python.ch04

19

1. 그래프를 이용한 방정식 풀기2 개의 수식을 입력 받아서 그래프로 표시하고 , 공통 해를 출력하세요 .

Page 20: Doing math with python.ch04

20

수열을 만들어 주는 기능 summation(n 번째 수열 , n 범위 튜플 ) 을 이용하여 수열 생성이 가능합니다 .

Page 21: Doing math with python.ch04

21

2. 수열합 n 번째 수열과 몇개를 생성할 것인지를 입력받아 해당 수열을 출력하세요 .

Page 22: Doing math with python.ch04

22

부등식 풀기 solve_poly_inequality() 함수를 이용하여 다항 부등식 풀기

Page 23: Doing math with python.ch04

23

부등식 풀기 solve_rational_inequality() 함수를 이용하여 논리 부등식 풀기

Page 24: Doing math with python.ch04

24

부등식 풀기 solve_univariate_inequality() 함수를 이용하여 기타 부등식 풀기

Page 25: Doing math with python.ch04

25

3. 단일 변수의 부등식 풀기 수식을 입력받아서 어떤 부등식인지 판단하여 풀어주고 해를 리턴하는 함수를 구현하세요 . .is_polynomial() 과 .is_rational_function() 을 이용해서 부등식을 구분할 수

있습니다 .

Page 26: Doing math with python.ch04

Thanks