기본 콘텐츠로 건너뛰기

라벨이 factorial인 게시물 표시

[matplotlib]quiver()함수

[python]재귀함수(Recursive Function)

함수 관련내용 함수(Function): 함수의 정의 전역변수와 지역변수 함수: 인수의 전달 가변인수 발생자(generator) 주요한 내장함수들 재귀함수(Recursive Function) 람다함수(Lambda Function) Python의 함수는 1급(First Class)객체 1급 객체와 변수의 영역 클로저(Closure) 데코레이터(Decorator, 장식자) 재귀함수(Recursive Function) 함수는 다른 함수를 포함할 수 있습니다. 그 포함된 함수가 함수 자신일 경우 재귀함수(Recursive Function) 라고 합니다. 예를 들어 식 1과 같이 1부터 지정된 수까지 모든 정수를 곱하는 경우 즉, factorial을 재귀함수로 작성할 수 있습니다. n factorial = n! = 1·2·3 … n (식 1) def factorial(x): if x==1: return 1 else: return (x*factorial(x-1)) factorial(5) 120 위 사용자 정의 함수 factorial() 은 if ~ else 구문 을 적용하였으며 if 와 else 블럭 모두 return() 함수를 하위 문으로 가지고 있으므로 어떤 블럭이 실행되더라도 함수는 종결됩니다. 그러나 else 블럭 의 실행은 함수 자신을 반환하는 것으로 if 블럭 이 실행되지 않는 이상 함수의 실행이 반복됩니다. 최종적으로 else 문 의 실행으로 1을 반환하는 경우 x == 1 이 되어 실행이 종결됩니다. 이같은 종결조건 은 재귀함수의 필수 요소입니다. 위 함수에 인수 5를 전달하여 실행하는 과정은 다음과 같습니다. factorial(5)  (5) 전달된 인수 → 5 × factorial(4)  fatorial(4) 호출 → 5 × 4 × factorial(3)...

[sympy] Sympy객체의 표현을 위한 함수들

Sympy객체의 표현을 위한 함수들 General simplify(x): 식 x(sympy 객체)를 간단히 정리 합니다. import numpy as np from sympy import * x=symbols("x") a=sin(x)**2+cos(x)**2 a $\sin^{2}{\left(x \right)} + \cos^{2}{\left(x \right)}$ simplify(a) 1 simplify(b) $\frac{x^{3} + x^{2} - x - 1}{x^{2} + 2 x + 1}$ simplify(b) x - 1 c=gamma(x)/gamma(x-2) c $\frac{\Gamma\left(x\right)}{\Gamma\left(x - 2\right)}$ simplify(c) $\displaystyle \left(x - 2\right) \left(x - 1\right)$ 위의 예들 중 객체 c의 감마함수(gamma(x))는 확률분포 등 여러 부분에서 사용되는 표현식으로 다음과 같이 정의 됩니다. 감마함수는 음이 아닌 정수를 제외한 모든 수에서 정의됩니다. 식 1과 같이 자연수에서 감마함수는 factorial(!), 부동소수(양의 실수)인 경우 적분을 적용하여 계산합니다. $$\tag{식 1}\Gamma(n) =\begin{cases}(n-1)!& n:\text{자연수}\\\int^\infty_0x^{n-1}e^{-x}\,dx& n:\text{부동소수}\end{cases}$$ x=symbols('x') gamma(x).subs(x,4) $\displaystyle 6$ factorial 계산은 math.factorial() 함수를 사용할 수 있습니다. import math math.factorial(3) 6 a=gamma(x).subs(x,4.5) a.evalf(3) 11.6 simpilfy() 함수의 알고리즘은 식에서 공통사항을 찾아 정리하...