기본 콘텐츠로 건너뛰기

1월, 2019의 게시물 표시

통계관련 함수와 메서드 사전

A B C d E F G H I K L M N O P Q R S T U V W Z A statsmodels.ap.stats.anova_lm(x) statsmodels.formula.api.ols 에 의해 생성되는 모형 즉, 클래스 인스턴스(x)를 인수로 받아 anova를 실행합니다. np.argsort(x, axis=-1, kind=None) 객체 x를 정렬할 경우 각 값에 대응하는 인덱스를 반환합니다. Axis는 기준 축을 지정하기 위한 매개변수로서 정렬의 방향을 조정할 수 있음(-1은 기본값으로 마지막 축) pandas.Series.autocorr(lag=1) lag에 전달한 지연수에 따른 값들 사이의 자기상관을 계산 B scipy.stats.bernoulli(x, p) 베르누이분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 p: 단일 시행에서의 확률 scipy.stats.binom(x, n, p) 이항분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 n: 총 시행횟수 p: 단일 시행에서의 확률 C scipy.stats.chi2.pdf(x, df, loc=0, scale=1) 카이제곱분포의 확률밀도함수를 계산 $$f(x, k) =\frac{1}{2^{\frac{k}{2}−1}Γ(\frac{k}{2})}x^{k−1}\exp\left(−\frac{x^2}{2}\right)$$ x: 확률변수 df: 자유도 pd.concat(objs, axis=0, join=’outer’, …) 두 개이상의 객체를 결합한 새로운 객체를 반환. objs: Series, DataFrame 객체. Axis=0은 행단위 즉, 열 방향으로 결합, Axis=1은 열단위 즉, 행 방향으

삼각함수의 적분

삼각함수 경우 다음과 같이 치환을 사용하여 적분할 수 있습니다. $\int cos(x)sin^5(x)dx$ sin(x)=u,  cos(x)dx=du로 치환하면 $\int u^5 du = \frac{1}{6}sin^6(x)+c$ 위의 경우는 치환한 부분의 미분이 존재하는 경우입니다. 그러나 다음과 같이 그렇지 않은 경우는 삼각함수 자체를 변형하여 실행할 수 있습니다. $\int sin^5dx=\int sin(x)sin^4(x)dx=\int sin(x)(1-cos^2(x))^2\\ \because sin^2(x)+cos^2(x)=1 \rightarrow sin^2(x)=1-cos^2(x) \\ cos(x)=u, -sin(x)dx=du \\-\int (1-u^2)^2 du= -\int 1-2u^2+u^4 du=-u+\frac{2}{3}u^3-\frac{1}{5}u^5+c=-cos(x)+\frac{2}{3}cos^3(x)-\frac{1}{5}cos^5(x)+c$ >>> from sympy import * >>> x=symbols("x") >>> integrate(sin(x)**5) -cos(x)**5/5 + 2*cos(x)**3/3 - cos(x) 예) 다음 함수의 적분 $\int sin^6(x)cos^3(x) dx$ 위 함수에 cos(x)=u → -sin(x)dx=du 로 치환하면 다음과 같이 변형됩니다. $\int sin^5(x)cos^3(x)sin(x)dx=-\int sin^5(x)udu$ 위의 식에서 sin^5(x)에 대한 처리가 문제가 됩니다. 반면에  sin(x)=u,  cos(x)dx=du로 치환하면 보다 적분이 용이한 식으로 전환됩니다. $\int sin^6(x)cos^2(x)cos(x)dx=\int sin^6(x)(1-sin^2(x))cos(x)dx\\=\int u^6(1-u^2)du=\frac{1}{7}u^7-\frac{1}{9}u^9+c\\=\frac{1}

부분분수_sympy

내용 var와 symbols 분수 표현 부분분수 분해 행렬의 적용 부분분수 var와 symbols symbols(기호(문자), **args) 지정된 기호 또는 문자를 sympy객체내에서 변수로 지정. 별도의 객체화가 필요 var(기호(문자), **args) 지정된 기호 또는 문자를 sympy객체내에서 변수로 지정. sympy 내에서 var()함수의 결과가 전역변수가 되므로 별도의 객체화가 불필요 두 함수 모두 real=True와 같은 변수에 대한 조건을 부여할 수 있음 var('x') x 위의 경우 x는 기호로 적용되지만 symbols()를 사용할 경우 다음과 같이 객체로 저장해야 합니다. x=symbols("x"); x x var('a,ab,abc') (a, ab, abc) abc abc type(abc) sympy.core.symbol.Symbol real=True인자를 사용하여 기호의 범위를 한정할 수 있습니다. var('x,y', real=True) (x, y) x.is_real and y.is_real True 분수 표현 다음과 같은 분수를 나타내기 위해 다음 함수를 사용합니다. Rational(numer, denom) or Rational(유리수): 인수가 number일 경우 적용 분자, 분모가 함수일 경우는 f/g로 나타냄 numer(분수식): 분수의 분자항을 반환 denom(분수식): 분수의 분모항을 반환 x=symbols('x') f=5*x**2+10*x+3 g=2*x+2 eq=f/g; eq $\quad\color{navy}{\scriptstyle \frac{5 x^{2} + 10 x + 3}{2 x + 2}}$ numer(eq) $\quad\color{navy}{\scriptstyle

삼각함수

내용 삼각함수 홀함수와 짝함수 삼각함수 그래프 주기적 특성 sympy를 적용한 방정식 해 결정 삼각함수 삼각함수는 0에서 360°를 반복하는 각(degree)과 무한대로 확장, 축소되는 길이의 비로서 도형의 특성을 이해하기 위한 매우 유용한 함수입니다. 이러한 함수는 기본적으로 삼각형과 원을 사용하여 설명됩니다. 예를 들어 원의 중심각 이동은 그것에 대응하는 호(arc)의 변화 또는 원위의 이동점의 변화로 표현됩니다. 또한 그림 1과 같이 원 위의 두 점을 연결하는 것으로 삼각형이 되며 각의 변화는 삼각형의 변의 길이의 변화를 일으키지요. 그림 1 특히 직각삼각형에서 각 변의 비와 각의 관계를 나타내는 sin, cos, tan 등과 같은 삼각함수를 정의할 수 있습니다. 그림 2. 그림1과 같은 직각 삼각형의 사이각으로부터 식 1의 삼각함수를 정의할 수 있습니다. $$\begin{align} \tag{1}& \sin(\theta)=\frac{B}{A}\\&\cos(\theta)=\frac{C}{A}\\&\tan(\theta)=\frac{B}{C}\end{align}$$ 식1로부터 식 2를 유도할 수 있습니다. $$\begin{align}\tag{2}&\tan(\theta)=\frac{B}{C}=\frac{\frac{B}{A}}{\frac{C}{A}}=\frac{\cos(\theta)}{\sin(\theta)}\\ &\csc(\theta)=\frac{1}{\sin(\theta)}\\&\sec(\theta)=\frac{1}{\cos(\theta)}\\&\cot(\theta)=\frac{1}{\tan(\theta)}\end{align}$$ 예 1)   다음 삼각형에서 sin(A), cos(A), than(A)? 위 삼각형 밑면의 길이는 피타고라스 정리에 의해 결정할 수 있습니다. $$\begin{align}\text{hypote

부분적분

미분의 곱 법칙과 연관 (fg)'=f'g+fg' $\int (fg)'dx=\int f'g dx+\int fg'dx \rightarrow fg=\int  f'g dx+\int fg'dx $ 위 식을 다음과 같이 다시 정렬할 수 있습니다. $\int fg' dx=fg-\int f'g dx $  Eq(1) 부분적분 위 식에서 f(x), g(x)를 각각 u, v로 치환하면 다음과 같이 정리됩니다. f(x)=u, g(x)=v → f'(x)dx=du, g'(x)dx=dv Eq(1)에 치환을 적용하면 $\int u dv=uv - \int v du$ 위 식을 지정한 구간 [a, b]의 정적분은 다음과 같이 계산됩니다. $\int^b_a u dv=uv|^b_a - \int^b_a v du$ 위 부분 적분의 절차를 프로그램 함수로 작성하면 다음과 같습니다. def partIntegralS(u, dv, Symbolvar, loup=0):     du=diff(u, Symbolvar)     v=integrate(dv, Symbolvar)     uv=u*v     vdu=integrate(v*du, Symbolvar)     if loup==0:         re=uv-vdu         return(re)     else:         re=uv-vdu         re1=re.subs(Symbolvar, loup[1])-re.subs(Symbolvar, loup[0])         return(re1) 예) 다음을 적분? 1) $\int xe^{6x}dx=x\frac{1}{6}e^{6x}-\int\frac{1}{6}e^{6x} dx\\=\frac{x}{6}e^{6x}-\frac{1}{36}e^{6x}+c\\ \because u=x, \;dv=e^{6x} \;\rightarrow\; du=dx,\; v=\frac{1}{6}e^{6x}$

Newton's Method

Newton's Method 모든 방정식이 정확한 해를 가지지는 않습니다. 이러한 경우 근사해(approximate solution)을 계산할 필요가 있습니다. 이러한 근사해를 계산하는 다양한 방법들 중에 가장 많이 사용되는 방법이 뉴턴의 방법입니다.  위 그림에서 파란선의 경우 x_0에서의 접선, 초록선의 경우는 x_1에서의 접선을 나타냅니다. 이 접선이 x축과 만나는 점을 기준으로 함수f(x)와의 점에서의 접선의 기울기는 f'(x_1)이 됩니다. 함수 f(x)의 해를  x_n이라고 하면 다음과 같이 초기 임의의 점 x_0에서 시작하여 x_n까지의 근사시킬 수 있습니다.  tangent line at x_0 : y=f(x_0)+f'(x_0)(x-x_0) x_1: 0=f(x_0)+f'(x_1)(x_1-x_0) → x_1=x_0-\frac{f(x_0)}{f'(x_1)} tangent line at x_1: y=f(x_1)+f'(x1)(x-x_1) 위 식을 적용하여 x_2는 다음과 같이 계산됩니다.  0=f(x_1)+f'(x1)(x_2-x_1)→ x_2=x_1-\frac{f(x_1)}{f'(x_2)} 위 과정은 x_n을 계산할 수 있을 때까지 반복할 수 있습니다.  위 과정을 다음과 같이 일반화 할 수 있습니다.  x_n이 f(x)=0의 근사해이고 f'(x_n) ≠ 0 이 아니면 다음식이 성립됩ㄴ다.  $x_{n+1}=x_n -\frac{f(x_n)}{f'(x_n)} 근사해를 계산하기 위해 위의 식을 적용할 경우 위 과정의 반복정도를 결정해야 합니다. 이 식은 근해를 계산하는 것으로서 반복수에 대한 일반적인 기준을 설정할 수는 없지만 각 반복의 결과의 차이가 매우 작을 경우까지 반복 계산을 합니다.  예) 뉴턴방법을 적용하여 구간 [0, 2] 에서  f(x)=cos(x)-x의 근사해를 계산합니다.  >>> i

sympy 분수 표시와 자료형

내용 계산 결과를 분수로 표시하는 방법 sympy객체의 자료형 확인 계산 결과를 분수로 표시하는 방법 Rational('분수'), Rational(분자, 분모), Rational(유리수) import numpy as np from sympy import * y=x**(2/3)*(2*x-x**2);y $\quad\color{navy}{\scriptstyle x^{0.666666666666667} \left(- x^{2} + 2 x\right)}$ expand(diff(y, x)) $\quad\color{navy}{\scriptstyle 3.33333333333333 x^{0.666666666666667} - 2.66666666666667 x^{1.66666666666667}}$ 위 결과들을 분수로 나타냅니다. y=x**Rational('2/3')*(2*x-x**2);y $\quad\color{navy}{\scriptstyle x^{\frac{2}{3}} \left(- x^{2} + 2 x\right)}$ expand(diff(y, x)) $\quad\color{navy}{\scriptstyle - \frac{8 x^{\frac{5}{3}}}{3} + \frac{10 x^{\frac{2}{3}}}{3}}$ sympy객체의 자료형 확인 x=[20**(1/3)*3**(2/3)/3, -20**(1/3)*3**(2/3)/6 - 20**(1/3)*3**(1/6)*I/2, -20**(1/3)*3**(2/3)/6 + 20**(1/3)*3**(1/6)*I/2] x [1.8820720577620567, -0.941036028881028 - 1.62992221377479*I, -0.941036028881028 + 1.62992221377479*I] [type(i) for i in x] [float, sympy.core.add.Add, sympy.core.add.Add] sympy에서 정수와

latex equation, HTML symbol 정리

구글 블로그에서 latex수식을 적용하기 위해서  1) 블로그에 메인창에서 테마로 이동  2) 우측 상단의 $vdots$클릭하여 HTML 편집기로 이동 3) <head> ~</head> 사이에 다음을 입력  <script src='http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML' type='text/javascript'/> 1. 조건에 따른 여러 함수 표현 \[f(x) = \left\{   \begin{array}{lr}     x^2 & : x < 0\\     x^3 & : x \ge 0   \end{array} \right. \[f(x) = \left\{   \begin{array}{lr}     x^2 & : x < 0\\     x^3 & : x \ge 0   \end{array} \right. \] 또는 \[  u(x) =   \begin {cases}    \exp{x} & \text{if } x \geq 0 \\    1       & \text{if } x < 0   \ end {cases} \ ] \[  u(x) =   \begin{cases}    \exp{x} & \text{if } x \geq 0 \\    1       & \text{if } x < 0   \end{cases} \] 2. Arc(호) 문자 \overset{{\frown}}{{ABC}} =$\overset{{\frown}}{{ABC}}$ 3. HTML 원문자 &#9450;  = ⓪ &#9312; = ① &#9413;= ② &#9314; = ③ &#9315; = ④ &#9316; = ⑤ &#9317; = ⑥ &#93