기본 콘텐츠로 건너뛰기

[ML] 결정트리(Decision Tree) 모델

삼각함수의 합, 차 그리고 곱에 대한 공식

삼각함수의 합, 차 그리고 곱에 대한 공식

내용

합과 차 공식

두 각에 대한 합 또는 차에 대해 식 1의 규칙이 성립합니다.

\begin{align}&\sin(\alpha\pm\beta)=\sin(\alpha)\cos(\beta)\pm\cos(\alpha)\sin(\beta)\\\tag{식 1} &\cos(\alpha\pm\beta)=\cos(\alpha)\cos(\beta)\mp\sin(\alpha)\sin(\beta)\\ &\tan(\alpha\mp\beta)=\frac{\tan(\alpha) \pm \tan(\beta)}{1 \pm \tan(\alpha)\tan(\beta)} \end{align}

그림 1은 반지름 a인 원에 내접한 두 삼각형을 나타낸 것입니다.

그림 1. 반지름 a인 원에 내접한 두 삼각형.

그림 1의 원위의 점 A와 B는 각 α와 β에 대한 식 2와 같이 삼각함수로 나타낼 수 있습니다.

\begin{align}\tag{식 2}\cos(\alpha)=\frac{x_1}{a}\quad \sin(\alpha)=\frac{y_1}{a}& \Rightarrow A(a\cos(\alpha),\,a\sin(\alpha)) \\ \cos(\beta)=\frac{x_2}{a}\quad \sin(\beta)=\frac{y_2}{a}& \Rightarrow B(a\cos(\beta),\,a\sin(\beta))\end{align}

그림 1의 원 내부에 존재하는 삼각형의 변 b의 길이를 계산하기 위해 cosine 2 법칙과 적용합니다(식 3).

\begin{align}\tag{식 3}b^2=a^2+a^2-a\cdot a·\cos(\alpha-\beta)=2a^2(1-\cos(\alpha-\beta))\end{align}

그림 1의 좌표 A, B를 각각 $\vec{A}, \vec{B}$로 간주하고 두 벡터의 거리(norm) 즉 변 b는 식 4와 같이 계산할 수 있습니다.

\begin{align}\Vert{AB}\Vert&=(x_1-x_2)^2+(y_1-y_2)^2\\ b^2&=(a\cos(\alpha)-a\cos(\beta))^2-(a\sin(\alpha)-a\sin(\beta))^2\\\tag{식 4}&=a^2\left(\cos^2(\alpha)-2\cos(\alpha)\cos(\beta)+\cos^2(\beta)+\sin^2(\alpha)-2\sin(\alpha)\sin(\beta)+\sin^2(\beta) \right)\\ &=a^2(2-2\cos(\alpha)\cos(\beta)-2\sin(\alpha)\sin(\beta))\\&=2a^2(1-\cos(\alpha)\cos(\beta)-\sin(\alpha)\sin(\beta))\\ &\because \; \sin^2(\theta)+\cos^2(\theta)=1\end{align}

식 3과 4로부터 식 5를 유도할 수 있습니다.

\begin{align}\tag{식 5}1-\cos(\alpha-\beta) &= 1-\cos(\alpha)\cos(\beta)-\sin(\alpha)\sin(\beta)\\ \cos(\alpha-\beta) &=\cos(\alpha)\cos(\beta)+\sin(\alpha)\sin(\beta)\end{align}

식 5에서 각 β를 음의 값으로 전달하면 식 6과 같이 나타낼 수 있습니다. /p>

\begin{align}\cos(α+β)&=\cos(α-(-β))\\\tag{식 6}&=\cos(α)\cos(-β)+\sin(α)\sin(-β)\\&=\cos(α)\cos(β)-\sin(α)\sin(β)\\ \because\; \sin(-α)&=-\sin(α),\; \cos(-α)=\cos(α)\end{align}

식 1을 사용하여 식 7을 계산할 수 있습니다.

$$\begin{align}\sin\left(\frac{\pi}{2}-\theta \right)=\cos(\theta) \qquad & \cos\left(\frac{\pi}{2}-\theta \right)=\sin(\theta)\\\tag{식 7} \csc\left(\frac{\pi}{2}-\theta \right)=\sec(\theta) \qquad & \sec\left(\frac{\pi}{2}-\theta \right)=\csc(\theta)\\ \tan\left(\frac{\pi}{2}-\theta \right)=\cot(\theta) \qquad & \cot\left(\frac{\pi}{2}-\theta \right)=\tan(\theta)\end{align}$$
import numpy as np
x=np.pi/6
rightA= np.radians(90)
print(np.allclose(np.sin(rightA-x), np.cos(x)))
print(np.allclose(np.cos(rightA-x), np.sin(x)))
True
True
print(np.allclose(1/np.sin(rightA-x), 1/np.cos(x)))
print(np.allclose(1/np.cos(rightA-x), 1/np.sin(x)))
True
True
print(np.allclose(np.tan(rightA-x), 1/np.tan(x)))
True

예 1)

cos(80)과 동일한 값을 갖는 sin(x)?

식 7을 적용하면 다음과 같이 나타낼 수 있습니다.

cos(80) = sin(90 - 80) = sin(10)

python에서 삼각함수의 계산은 radian 값을 인수로 전달하여야 합니다. 그러므로 80도를 radian으로 환산하기 위해 작성한 함수 np.radians()를 적용합니다.

x=np.radians(80)
y=np.radians(10)
print(np.allclose(np.cos(x), np.sin(y)))
True

식 1의 sin 함수에 대한 합차의 규칙은 식 7을 적용하여 유도할 수 있습니다(식 8).

\begin{align} \sin(α+β)&=\cos(\frac{\pi}{2}-α-β)=\cos((\frac{\pi}{2}-α)-β)\\ &=\cos(\frac{\pi}{2}-α)\cos(β)+\sin(\frac{\pi}{2}-α)\sin(β)\\ \tag{식 8}&=\sin(α)\cos(β)+\cos(α)\sin(β)\\ \sin(α-β)&=\cos(\frac{\pi}{2}-α+β)=\cos((\frac{\pi}{2}-α)+β)\\ &=\cos(\frac{\pi}{2}-α)\cos(β)-\sin(\frac{\pi}{2}-α)\sin(β)\\ &=\sin(α)\cos(β)-\cos(α)\sin(β)\end{align}

식 1의 tan 함수에 대한 규칙은 sin과 cos 함수의 비로 식 9와 같이 유도 됩니다.

\begin{align}\tan(\alpha + \beta)&=\frac{\sin(\alpha + \beta)}{\cos(\alpha + \beta)}\\ &=\frac{\sin(\alpha)\cos(\beta)+\cos(\alpha)\sin(\beta)}{\cos(\alpha)\cos(\beta)-\sin(\alpha)\sin(\beta)}\\ \tag{식 9} &=\frac{\tan(\alpha)+\tan(\beta)}{1-\tan(\alpha)\tan(\beta)}\\ \tan(\alpha - \beta)&=\frac{\sin(\alpha - \beta)}{\cos(\alpha - \beta)}\\&=\frac{\sin(\alpha)\cos(\beta)-\cos(\alpha)\sin(\beta)}{\cos(\alpha)\cos(\beta)+\sin(\alpha)\sin(\beta)}\\ &=\frac{\tan(\alpha)-\tan(\beta)}{1+\tan(\alpha)\tan(\beta)}\end{align}

예 2)

sin(105°)와 tan(165°)를 합과 차 공식을 사용하여 계산합니다.

sin(105°) = sin(60°+45°) = sin(60°)cos(45°) + cos(60°)sin(45°)

a=np.radians(105)
b=np.radians(60)
c=np.radians(45)
A=np.sin(a)
A1=np.sin(b)*np.cos(c)+np.cos(b)*np.sin(c)
np.allclose(A, A1)
True

\begin{align}\tan(165)&=\tan(120+45)\\&=\frac{\tan(120)+\tan(45)}{1-\tan(120)\tan(45)}\end{align}

a=np.radians(165)
b=np.radians(120)
c=np.radians(45)
A=np.tan(a)
A1=(np.tan(b)+np.tan(c))/(1-np.tan(b)*np.tan(c))
np.allclose(A, A1)
True

예 3)

다음 식이 성립합니까?

$$sec^2(θ)+csc^2(θ)=sec^2(θ)csc^2(θ)$$

\begin{align}\sec^2(\theta)+\csc^2(\theta)&=\frac{1}{\cos^2(\theta)}+\frac{1}{\sin^2(\theta)}\\ &=\frac{\sin^2(\theta)+\cos^2(\theta)}{\sin^2(\theta)\cos^2(\theta)}\\ &=\frac{1}{\sin^2(\theta)\cos^2(\theta)}\\ &=\frac{1}{\sin^2(\theta)}\frac{1}{\cos^2(\theta)}\\&=\sec^2(\theta)\csc^2(\theta)\end{align}

곱을 합으로 전환

식 10의 두 각에 대한 삼각함수의 곱은 식 1의 합차 공식을 적용하여 유도 할 수 있습니다.

\begin{align} \sin(α)\sin(β) &=\frac{1}{2}[\cos(α-β)-\cos(α+β)] \\ \tag{식 10}\cos(α)\cos(β) &=\frac{1}{2}[\cos(α-β)+\cos(α+β)]\\ \sin(α)\cos(β) &=\frac{1}{2}[\sin(α+β)+\sin(α+β)] \\ \cos(α)\sin(β) &=\frac{1}{2}[\sin(α-β)-\sin(α+β)] \end{align}

예를 들어 식 10의 두번째인 $\cos(α)\cos(β)$는 식 11과 같이 나타낼 수 있습니다.

\begin{align} &\cos(α)\cos(β)-\sin(α)\sin(β)=\cos(α+β)\\ \tag{식 11}+&\;\underline{\cos(α)\cos(β)+\sin(α)\sin(β)=\cos(α-β)}\\ &2\cos(α)\cos(β)=\cos(α+β)+\cos(α-β)\\ &\rightarrow \cos(α)\cos(β)=\frac{1}{2}[\cos(α+β)+\cos(α-β)]\end{align}

합을 곱으로 전환

특정한 두 삼각함수의 합과 차는 식 12와 같이 곱의 형태로 전환할 수 있습니다.

\begin{align}\sin(\alpha)+\sin(\beta)&=2\sin\left(\frac{\alpha+\beta}{2}\right)\cos\left(\frac{\alpha-\beta}{2}\right)\\ \tag{식 12}\sin(\alpha)-\sin(\beta)&=2\cos\left(\frac{\alpha+\beta}{2}\right)\sin\left(\frac{\alpha-\beta}{2}\right)\\ \cos(\alpha)+\cos(\beta)&=2\cos\left(\frac{\alpha+\beta}{2}\right)\cos\left(\frac{\alpha-\beta}{2}\right)\\ \cos(\alpha)-\cos(\beta)&=2\sin\left(\frac{\alpha+\beta}{2}\right)\sin\left(\frac{\alpha-\beta}{2}\right)\end{align}

위의 식들 중에 sin(α)+sin(β)를 유도하면 다음과 같습니다.

α, β를 다음과 같이 변환하여 유도합니다.

\begin{align}\tag{식 13} α + β = A,&\quad α - β =B\\ α=\frac{A+B}{2},&\quad β=\frac{A-B}{2}

위 값들을 식에 대입하여 합의 공식을 적용하여 정리합니다.

\begin{align}&\quad\sin\left(\frac{A+B}{2}\right)=\sin\left(\frac{A}{2}\right)\cos\left(\frac{B}{2}\right)+\cos\left(\frac{A}{2}\right)\sin\left(\frac{B}{2}\right)\\\tag{식 14} &+\underline{\sin\left(\frac{A-B}{2}\right)=\sin\left(\frac{A}{2}\right)\cos\left(\frac{B}{2}\right)-\cos\left(\frac{A}{2}\right)\sin\left(\frac{B}{2}\right)}\\&\quad\sin\left(\frac{A+B}{2}\right)\sin\left(\frac{A-B}{2}\right)= 2\sin\left(\frac{A}{2}\right)\cos\left(\frac{B}{2}\right)\end{align}

배각공식

각이 두 배가 되는 경우 역시 식 1의 합차 공식을 적용하여 계산할 수 있습니다(식 15).

\begin{align}\tag{9}\sin(2\theta)&=\sin(\theta+\theta)\\&=\sin(\theta)\cos(\theta)+\cos(\theta)\sin(\theta)\\&=2\sin(\theta)\cos(\theta)\\ \tag{식 15} \cos(2\theta)&=\cos(\theta+\theta)\\&=\cos(\theta)\cos(\theta)-\sin(\theta)\sin(\theta)\\&=\cos^2(\theta)-\sin^2(\theta)\\&=2\cos^2(\theta)-1\\&=1-2\sin^2(\theta)\\ \tan(2\theta)&=\tan(\theta+\theta)\\&=\frac{2\tan(\theta)}{1-\tan^2(\theta)} \end{align}

예)

다음 삼각함수의 해?

$$\cos(2θ)=2-3\sin(θ), 0≤θ≤2π$$

\begin{align}& 1-2\sin^2(θ)=2-3\sin(θ)\\ &\begin{aligned}→2\sin^2(θ)-3\sin(θ)+1&=(2\sin(θ)-1)(\sin(θ)-1)\\&=0\end{aligned}\end{align}

t=symbols('t')
solve(2*sin(t)**2-3*sin(t)+1, t)
[pi/6, pi/2, 5*pi/6]

반각공식

식 16은 특정한 각의 반각에 대한 공식입니다.

\begin{align}&\sin^2\left(\frac{\theta}{2}\right)=\frac{1-\cos(\theta)}{2}\\\tag{식 16}&\cos^2\left(\frac{\theta}{2}\right)=\frac{1+\cos(\theta)}{2}\\&\tan^2\left(\frac{\theta}{2}\right)=\frac{1-\cos(\theta)}{1+\cos(\theta)}\end{align}

식 16의 첫번째 형태를 유도하기 위해 식 15의 cos(2θ)를 적용합니다(식 17).

\begin{align}\begin{aligned}\cos(2\theta)&=2\cos^2(\theta)-1\\&=1-2\sin^2(\theta)\end{aligned}\\\tag{식 17}\rightarrow \sin(\theta)&=\pm\sqrt{\frac{1-\cos(2\theta)}{2}}\\\rightarrow \sin\left(\frac{\theta}{2}\right)&=\pm\sqrt{\frac{1-\cos(\theta)}{2}} \end{align}$$

t=pi/3
sin(t/2)**2
$\quad \small \color{blue}{\frac{1}{4}}$
(1-cos(t))/2
$\quad \small \color{blue}{\frac{1}{4}}$

댓글

이 블로그의 인기 게시물

[Linear Algebra] 유사변환(Similarity transformation)

유사변환(Similarity transformation) n×n 차원의 정방 행렬 A, B 그리고 가역 행렬 P 사이에 식 1의 관계가 성립하면 행렬 A와 B는 유사행렬(similarity matrix)이 되며 행렬 A를 가역행렬 P와 B로 분해하는 것을 유사 변환(similarity transformation) 이라고 합니다. $$\tag{1} A = PBP^{-1} \Leftrightarrow P^{-1}AP = B $$ 식 2는 식 1의 양변에 B의 고유값을 고려한 것입니다. \begin{align}\tag{식 2} B - \lambda I &= P^{-1}AP – \lambda P^{-1}P\\ &= P^{-1}(AP – \lambda P)\\ &= P^{-1}(A - \lambda I)P \end{align} 식 2의 행렬식은 식 3과 같이 정리됩니다. \begin{align} &\begin{aligned}\textsf{det}(B - \lambda I ) & = \textsf{det}(P^{-1}(AP – \lambda P))\\ &= \textsf{det}(P^{-1}) \textsf{det}((A – \lambda I)) \textsf{det}(P)\\ &= \textsf{det}(P^{-1}) \textsf{det}(P) \textsf{det}((A – \lambda I))\\ &= \textsf{det}(A – \lambda I)\end{aligned}\\ &\begin{aligned}\because \; \textsf{det}(P^{-1}) \textsf{det}(P) &= \textsf{det}(P^{-1}P)\\ &= \textsf{det}(I)\end{aligned}\end{align} 유사행렬의 특성 유사행렬인 두 정방행렬 A와 B는 'A ~ B' 와 같

[matplotlib] 히스토그램(Histogram)

히스토그램(Histogram) 히스토그램은 확률분포의 그래픽적인 표현이며 막대그래프의 종류입니다. 이 그래프가 확률분포와 관계가 있으므로 통계적 요소를 나타내기 위해 많이 사용됩니다. plt.hist(X, bins=10)함수를 사용합니다. x=np.random.randn(1000) plt.hist(x, 10) plt.show() 위 그래프의 y축은 각 구간에 해당하는 갯수이다. 빈도수 대신 확률밀도를 나타내기 위해서는 위 함수의 매개변수 normed=True로 조정하여 나타낼 수 있다. 또한 매개변수 bins의 인수를 숫자로 전달할 수 있지만 리스트 객체로 지정할 수 있다. 막대그래프의 경우와 마찬가지로 각 막대의 폭은 매개변수 width에 의해 조정된다. y=np.linspace(min(x)-1, max(x)+1, 10) y array([-4.48810153, -3.54351935, -2.59893717, -1.65435499, -0.70977282, 0.23480936, 1.17939154, 2.12397372, 3.0685559 , 4.01313807]) plt.hist(x, y, normed=True) plt.show()

R 미분과 적분

내용 expression 미분 2차 미분 mosaic를 사용한 미분 적분 미분과 적분 R에서의 미분과 적분 함수는 expression()함수에 의해 생성된 표현식을 대상으로 합니다. expression expression(문자, 또는 식) 이 표현식의 평가는 eval() 함수에 의해 실행됩니다. > ex1<-expression(1+0:9) > ex1 expression(1 + 0:9) > eval(ex1) [1] 1 2 3 4 5 6 7 8 9 10 > ex2<-expression(u, 2, u+0:9) > ex2 expression(u, 2, u + 0:9) > ex2[1] expression(u) > ex2[2] expression(2) > ex2[3] expression(u + 0:9) > u<-0.9 > eval(ex2[3]) [1] 0.9 1.9 2.9 3.9 4.9 5.9 6.9 7.9 8.9 9.9 미분 D(표현식, 미분 변수) 함수로 미분을 실행합니다. 이 함수의 표현식은 expression() 함수로 생성된 객체이며 미분 변수는 다음 식의 분모의 변수를 의미합니다. $$\frac{d}{d \text{변수}}\text{표현식}$$ 이 함수는 어떤 함수의 미분의 결과를 표현식으로 반환합니다. > D(expression(2*x^3), "x") 2 * (3 * x^2) > eq<-expression(log(x)) > eq expression(log(x)) > D(eq, "x") 1/x > eq2<-expression(a/(1+b*exp(-d*x))); eq2 expression(a/(1 + b * exp(-d * x))) > D(eq2, "x") a * (b * (exp(-d * x) * d))/(1 + b