Upload
seok-joon-yun
View
129
Download
0
Embed Size (px)
Citation preview
Doing Math with PythonCh.04 SymPy 를 이용한 대수와 부호 수학
윤석준 ([email protected])
파이썬으로 풀어보는 수학
상세설명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
3
1. 부호와 부호 연산 정의 Sympy 를 이용하여 대수 (Algebra) 문제를 부호 (Symbolic) 수학으로 풀이하는 것이 가능
4
1. 부호와 부호 연산 정의 Symbol 을 이용해서 객체를 따로 생성
symbols 을 이용해서 객체를 한번에 생성
5
2. 수식 계산 2.1 수식 인수분해 , 전개
factor() : 요소화 ( 인수분해 ) • expand() : 전개
6
2. 수식 계산 2.2 수식 출력
pprint() : 수식을 보기 좋게 출력
init_printing() : 수식 출력 순서를 지정할수 있음http://docs.sympy.org/dev/modules/physics/vector/api/printing.html
7
2. 수식 계산 2.3 수열 출력
8
3. 값으로 대체 3.1 심볼을 값으로 대체
subs() : 심볼과 값을 dictionary 로 전달하면 대체됨
9
3. 값으로 대체 3.2 심볼을 다른 심볼로 대체
simplify() : 수식을 간략화 해줌
10
4. 문자열을 수식으로 변환 simpify() : 입력된 문자열을 수식으로 변환
11
4. 문자열을 수식으로 변환 simpify() 의 예외는 sympy.core.sympify 내의 SympifyError 에 정의
12
5. 방정식 풀기 solve() 로 방정식의 해를 찾음 ( 해당 수식의 값이 0 이 될꺼라 가정 )
dictionary 로 리턴받는 것도 가능
13
5. 방정식 풀기 심볼이 여러개 있을 경우 두번째 인자로 입력한 심볼로 전개됨
나머지 항목에 상수를 넣고 해를 확인
14
6. 선형 방정식 시스템 풀기 2 개의 방정식을 만족하는 하나의 해를 구하고자 할 경우 solve() 에 Tuple 로 묶어서 전달하면 됨
해당 해가 맞는지 확인
15
7. sympy 를 사용해 그래프 그리기 sympy.plotting 을 이용해서 방정식을 그릴수 있음
축의 범위를 x 축 기준 -5 에서 5 까지로 제한하려면 (x, -5, 5) 라는 튜플을 인자로
전달
16
7. sympy 를 사용해 그래프 그리기 타이틀 , 레이블 추가
show=False 를 이용해서 출력을 하지않고 생성이 가능
.show() 로 출력
.save( 파일명 ) 으로 이미지로 저장
17
7. sympy 를 사용해 그래프 그리기 여러 함수를 한번에 그릴려면 plot() 인자로 여러개의 수식을 전달
프로그래밍 연습문제필자가 풀이한 답은 다음 Link 를 참고하세요 .https://github.com/DevStarSJ/Study/blob/master/Blog/Python/DoingMathWithPython/DoingMathWithPython.Ch04.ipynb저자의 정답은 다음 Link 에 있습니다 .https://www.nostarch.com/doingmathwithpython
19
1. 그래프를 이용한 방정식 풀기2 개의 수식을 입력 받아서 그래프로 표시하고 , 공통 해를 출력하세요 .
20
수열을 만들어 주는 기능 summation(n 번째 수열 , n 범위 튜플 ) 을 이용하여 수열 생성이 가능합니다 .
21
2. 수열합 n 번째 수열과 몇개를 생성할 것인지를 입력받아 해당 수열을 출력하세요 .
22
부등식 풀기 solve_poly_inequality() 함수를 이용하여 다항 부등식 풀기
23
부등식 풀기 solve_rational_inequality() 함수를 이용하여 논리 부등식 풀기
24
부등식 풀기 solve_univariate_inequality() 함수를 이용하여 기타 부등식 풀기
25
3. 단일 변수의 부등식 풀기 수식을 입력받아서 어떤 부등식인지 판단하여 풀어주고 해를 리턴하는 함수를 구현하세요 . .is_polynomial() 과 .is_rational_function() 을 이용해서 부등식을 구분할 수
있습니다 .
Thanks