doing math with python.ch04
TRANSCRIPT
![Page 2: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/2.jpg)
파이썬으로 풀어보는 수학
상세설명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](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/3.jpg)
3
1. 부호와 부호 연산 정의 Sympy 를 이용하여 대수 (Algebra) 문제를 부호 (Symbolic) 수학으로 풀이하는 것이 가능
![Page 4: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/4.jpg)
4
1. 부호와 부호 연산 정의 Symbol 을 이용해서 객체를 따로 생성
symbols 을 이용해서 객체를 한번에 생성
![Page 5: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/5.jpg)
5
2. 수식 계산 2.1 수식 인수분해 , 전개
factor() : 요소화 ( 인수분해 ) • expand() : 전개
![Page 6: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/7.jpg)
7
2. 수식 계산 2.3 수열 출력
![Page 8: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/8.jpg)
8
3. 값으로 대체 3.1 심볼을 값으로 대체
subs() : 심볼과 값을 dictionary 로 전달하면 대체됨
![Page 9: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/9.jpg)
9
3. 값으로 대체 3.2 심볼을 다른 심볼로 대체
simplify() : 수식을 간략화 해줌
![Page 10: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/10.jpg)
10
4. 문자열을 수식으로 변환 simpify() : 입력된 문자열을 수식으로 변환
![Page 11: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/11.jpg)
11
4. 문자열을 수식으로 변환 simpify() 의 예외는 sympy.core.sympify 내의 SympifyError 에 정의
![Page 12: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/12.jpg)
12
5. 방정식 풀기 solve() 로 방정식의 해를 찾음 ( 해당 수식의 값이 0 이 될꺼라 가정 )
dictionary 로 리턴받는 것도 가능
![Page 13: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/13.jpg)
13
5. 방정식 풀기 심볼이 여러개 있을 경우 두번째 인자로 입력한 심볼로 전개됨
나머지 항목에 상수를 넣고 해를 확인
![Page 14: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/14.jpg)
14
6. 선형 방정식 시스템 풀기 2 개의 방정식을 만족하는 하나의 해를 구하고자 할 경우 solve() 에 Tuple 로 묶어서 전달하면 됨
해당 해가 맞는지 확인
![Page 15: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/15.jpg)
15
7. sympy 를 사용해 그래프 그리기 sympy.plotting 을 이용해서 방정식을 그릴수 있음
축의 범위를 x 축 기준 -5 에서 5 까지로 제한하려면 (x, -5, 5) 라는 튜플을 인자로
전달
![Page 16: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/16.jpg)
16
7. sympy 를 사용해 그래프 그리기 타이틀 , 레이블 추가
show=False 를 이용해서 출력을 하지않고 생성이 가능
.show() 로 출력
.save( 파일명 ) 으로 이미지로 저장
![Page 17: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/17.jpg)
17
7. sympy 를 사용해 그래프 그리기 여러 함수를 한번에 그릴려면 plot() 인자로 여러개의 수식을 전달
![Page 18: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/18.jpg)
프로그래밍 연습문제필자가 풀이한 답은 다음 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](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/19.jpg)
19
1. 그래프를 이용한 방정식 풀기2 개의 수식을 입력 받아서 그래프로 표시하고 , 공통 해를 출력하세요 .
![Page 20: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/20.jpg)
20
수열을 만들어 주는 기능 summation(n 번째 수열 , n 범위 튜플 ) 을 이용하여 수열 생성이 가능합니다 .
![Page 21: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/21.jpg)
21
2. 수열합 n 번째 수열과 몇개를 생성할 것인지를 입력받아 해당 수열을 출력하세요 .
![Page 22: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/22.jpg)
22
부등식 풀기 solve_poly_inequality() 함수를 이용하여 다항 부등식 풀기
![Page 23: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/23.jpg)
23
부등식 풀기 solve_rational_inequality() 함수를 이용하여 논리 부등식 풀기
![Page 24: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/24.jpg)
24
부등식 풀기 solve_univariate_inequality() 함수를 이용하여 기타 부등식 풀기
![Page 25: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/25.jpg)
25
3. 단일 변수의 부등식 풀기 수식을 입력받아서 어떤 부등식인지 판단하여 풀어주고 해를 리턴하는 함수를 구현하세요 . .is_polynomial() 과 .is_rational_function() 을 이용해서 부등식을 구분할 수
있습니다 .
![Page 26: Doing math with python.ch04](https://reader035.vdocuments.site/reader035/viewer/2022062412/587ac34f1a28abc0478b74bd/html5/thumbnails/26.jpg)
Thanks