일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 배열 섞기
- Big-O 예제
- 이진 탐색
- trivial solution
- matrix trnasformations
- homogeneous linear system
- NumPy
- 빅오 표기법
- matrix-vector product
- 랜덤 순서 배열
- Big Omega
- 일차변환
- Big-Oh 예제
- python
- recursive algorithms
- linear dependence
- 코틀린 Hello World!
- 알고리즘 분석의 실례
- 빅오메가
- Big-Oh notation
- 빅세타
- matrix fo a linear transformation
- Big Theta
- 재귀함수
- 코틀린 시작하기
- nonhomogeneous linear system
- nontrivial solution
- one-to-one
- solutions of matrix equation
- itertools
- Today
- Total
코딩 연습
(파이썬) 부정적분과 정적분 본문
(파이썬 & 수학) 미분계수 구하기 를 먼저 보고 오세요.
파이썬에서 부정적분과 정적분을 하는 방법은 간단한다.
다음과 같이 sympy 패키지에서 Integral 클래스를 이용하여 부정적분 \(\displaystyle \int x^2 +x+1 \; dx\) 를 구해보자.
>>> from sympy import Integral, Symbol
>>> x = Symbol('x')
>>> f = x**2 + x + 1
>>> Integral(f, x).doit()
x**3/3 + x**2/2 + x
이쁘게 보고 싶다면 pprint 를 사용한다.
>>> from sympy import pprint
>>> pprint(Integral(f, x).doit())
3 2
x x
── + ── + x
3 2
늘 그렇듯이 하나도 안 이쁘다.
여하튼 도함수를 얻는 것과 부정적분을 얻는 방법은 Integral을 사용하는 것만 제외하면 동일하다.
정적분의 방법도 마찬가지다. 다음과 같이 정적분의 아랫끝과 윗끝만 지정해 주면 정적분 \( \displaystyle \int _0^5 x^2+x+1 \; dx\) 의 값을 쉽게 얻을 수 있다.
>>> Integral(f, (x, 0, 5)).doit()
355/6
조심해야 할 것은 \((x, \;0, \;5)\) 처럼 괄호 안에 (적분변수, 아랫끝, 윗끝) 을 적어줘야 한다. 어때 쉽지?
이제 우리는 지긋지긋한 표준정규분포표로부터 벗어날 수 있게 되었다. 정규분포의 확률밀도함수가 \[f(x) = \dfrac{1}{\sigma \sqrt{2 \pi}} e ^{-\frac{(x-\mu)^2}{2\sigma ^2}}\] 이므로 파이썬의 정적분을 이용하여 확률값을 쉽게 구해낼 수 있는 것이다.
확률변수 \(X\)가 정규분포 \({\rm N} \left (5,\; 2^2 \right )\) 를 따를 때, 확률 \({\rm P}(3 \le X \le 7)\) 의 값을 구해보자.
>>> from sympy import exp, sqrt, pi, Integral
>>> f = exp(-(x-5)**2/(2*2**2))/(2*sqrt(2*pi))
>>> Integral(f, (x, 3, 7)).doit().evalf()
0.682689492137086
시간이 좀 걸리긴 하지만 정확하게 확률값을 구해내는 것을 볼 수 있다.
(평균으로부터 원시그마 아래에서 원시그마 위 까지의 확률이 약 0.68 이라는 것을 이미 알고 있지 않은가?)
파이썬을 통하여 참 여러 가지 계산을 할 수 있다는 것이 어쩌면 당연하면서도 한 편으로는 신기하기까지 하다.
'Python' 카테고리의 다른 글
(파이썬) itertools 모듈의 count 함수 (0) | 2017.03.21 |
---|---|
(파이썬) 순열 -모든 경우 나열하기 (0) | 2017.03.21 |
(파이썬) 함수의 극댓값, 극솟값, 최댓값, 최솟값 구하기 (0) | 2016.03.15 |
(파이썬) 미분계수 구하기 (4) | 2016.03.15 |
(파이썬) 극한값 구하기 (0) | 2016.03.15 |