기본 콘텐츠로 건너뛰기

[matplotlib] 등고선(Contour)

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

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

내용

합과 차 공식

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

sin(α±β)=sin(α)cos(β)±cos(α)sin(β)(식 1)cos(α±β)=cos(α)cos(β)sin(α)sin(β)tan(αβ)=tan(α)±tan(β)1±tan(α)tan(β)

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

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

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

(식 2)cos(α)=x1asin(α)=y1aA(acos(α),asin(α))cos(β)=x2asin(β)=y2aB(acos(β),asin(β))

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

(식 3)b2=a2+a2aa·cos(αβ)=2a2(1cos(αβ))

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

AB=(x1x2)2+(y1y2)2b2=(acos(α)acos(β))2(asin(α)asin(β))2(식 4)=a2(cos2(α)2cos(α)cos(β)+cos2(β)+sin2(α)2sin(α)sin(β)+sin2(β))=a2(22cos(α)cos(β)2sin(α)sin(β))=2a2(1cos(α)cos(β)sin(α)sin(β))sin2(θ)+cos2(θ)=1

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

(식 5)1cos(αβ)=1cos(α)cos(β)sin(α)sin(β)cos(αβ)=cos(α)cos(β)+sin(α)sin(β)

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

cos(α+β)=cos(α(β))(식 6)=cos(α)cos(β)+sin(α)sin(β)=cos(α)cos(β)sin(α)sin(β)sin(α)=sin(α),cos(α)=cos(α)

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

sin(π2θ)=cos(θ)cos(π2θ)=sin(θ)(식 7)csc(π2θ)=sec(θ)sec(π2θ)=csc(θ)tan(π2θ)=cot(θ)cot(π2θ)=tan(θ)
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).

sin(α+β)=cos(π2αβ)=cos((π2α)β)=cos(π2α)cos(β)+sin(π2α)sin(β)(식 8)=sin(α)cos(β)+cos(α)sin(β)sin(αβ)=cos(π2α+β)=cos((π2α)+β)=cos(π2α)cos(β)sin(π2α)sin(β)=sin(α)cos(β)cos(α)sin(β)

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

tan(α+β)=sin(α+β)cos(α+β)=sin(α)cos(β)+cos(α)sin(β)cos(α)cos(β)sin(α)sin(β)(식 9)=tan(α)+tan(β)1tan(α)tan(β)tan(αβ)=sin(αβ)cos(αβ)=sin(α)cos(β)cos(α)sin(β)cos(α)cos(β)+sin(α)sin(β)=tan(α)tan(β)1+tan(α)tan(β)

예 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

tan(165)=tan(120+45)=tan(120)+tan(45)1tan(120)tan(45)

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)

다음 식이 성립합니까?

sec2(θ)+csc2(θ)=sec2(θ)csc2(θ)

sec2(θ)+csc2(θ)=1cos2(θ)+1sin2(θ)=sin2(θ)+cos2(θ)sin2(θ)cos2(θ)=1sin2(θ)cos2(θ)=1sin2(θ)1cos2(θ)=sec2(θ)csc2(θ)

곱을 합으로 전환

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

sin(α)sin(β)=12[cos(αβ)cos(α+β)](식 10)cos(α)cos(β)=12[cos(αβ)+cos(α+β)]sin(α)cos(β)=12[sin(α+β)+sin(α+β)]cos(α)sin(β)=12[sin(αβ)sin(α+β)]

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

cos(α)cos(β)sin(α)sin(β)=cos(α+β)(식 11)+cos(α)cos(β)+sin(α)sin(β)=cos(αβ)2cos(α)cos(β)=cos(α+β)+cos(αβ)cos(α)cos(β)=12[cos(α+β)+cos(αβ)]

합을 곱으로 전환

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

sin(α)+sin(β)=2sin(α+β2)cos(αβ2)(식 12)sin(α)sin(β)=2cos(α+β2)sin(αβ2)cos(α)+cos(β)=2cos(α+β2)cos(αβ2)cos(α)cos(β)=2sin(α+β2)sin(αβ2)

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

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

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

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

sin(A+B2)=sin(A2)cos(B2)+cos(A2)sin(B2)(식 14)+sin(AB2)=sin(A2)cos(B2)cos(A2)sin(B2)sin(A+B2)sin(AB2)=2sin(A2)cos(B2)

배각공식

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

(9)sin(2θ)=sin(θ+θ)=sin(θ)cos(θ)+cos(θ)sin(θ)=2sin(θ)cos(θ)(식 15)cos(2θ)=cos(θ+θ)=cos(θ)cos(θ)sin(θ)sin(θ)=cos2(θ)sin2(θ)=2cos2(θ)1=12sin2(θ)tan(2θ)=tan(θ+θ)=2tan(θ)1tan2(θ)

예)

다음 삼각함수의 해?

cos(2θ)=23sin(θ),0θ2π

12sin2(θ)=23sin(θ)2sin2(θ)3sin(θ)+1=(2sin(θ)1)(sin(θ)1)=0

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

반각공식

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

sin2(θ2)=1cos(θ)2(식 16)cos2(θ2)=1+cos(θ)2tan2(θ2)=1cos(θ)1+cos(θ)

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

cos(2θ)=2cos2(θ)1=12sin2(θ)(식 17)sin(θ)=±1cos(2θ)2sin(θ2)=±1cos(θ)2$$

t=pi/3
sin(t/2)**2
14
(1-cos(t))/2
14

댓글

이 블로그의 인기 게시물

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

유사변환(Similarity transformation) n×n 차원의 정방 행렬 A, B 그리고 가역 행렬 P 사이에 식 1의 관계가 성립하면 행렬 A와 B는 유사행렬(similarity matrix)이 되며 행렬 A를 가역행렬 P와 B로 분해하는 것을 유사 변환(similarity transformation) 이라고 합니다. (1)A=PBP1P1AP=B 식 2는 식 1의 양변에 B의 고유값을 고려한 것입니다. (식 2)BλI=P1APλP1P=P1(APλP)=P1(AλI)P 식 2의 행렬식은 식 3과 같이 정리됩니다. det(BλI)=det(P1(APλP))=det(P1)det((AλI))det(P)=det(P1)det(P)det((AλI))=det(AλI)det(P1)det(P)=det(P1P)=det(I) 유사행렬의 특성 유사행렬인 두 정방행렬 A와 B는 'A ~ B' 와 같...

[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 sin2(x)+cos2(x) simplify(a) 1 simplify(b) x3+x2x1x2+2x+1 simplify(b) x - 1 c=gamma(x)/gamma(x-2) c Γ(x)Γ(x2) simplify(c) (x2)(x1) 위의 예들 중 객체 c의 감마함수(gamma(x))는 확률분포 등 여러 부분에서 사용되는 표현식으로 다음과 같이 정의 됩니다. 감마함수는 음이 아닌 정수를 제외한 모든 수에서 정의됩니다. 식 1과 같이 자연수에서 감마함수는 factorial(!), 부동소수(양의 실수)인 경우 적분을 적용하여 계산합니다. (식 1)Γ(n)={(n1)!n:자연수0xn1exdxn:부동소수 x=symbols('x') gamma(x).subs(x,4) 6 factorial 계산은 math.factorial() 함수를 사용할 수 있습니다. import math math.factorial(3) 6 a=gamma(x).subs(x,4.5) a.evalf(3) 11.6 simpilfy() 함수의 알고리즘은 식에서 공통사항을 찾아 정리하...

sympy.solvers로 방정식해 구하기

sympy.solvers로 방정식해 구하기 대수 방정식을 해를 계산하기 위해 다음 함수를 사용합니다. sympy.solvers.solve(f, *symbols, **flags) f=0, 즉 동차방정식에 대해 지정한 변수의 해를 계산 f : 식 또는 함수 symbols: 식의 해를 계산하기 위한 변수, 변수가 하나인 경우는 생략가능(자동으로 인식) flags: 계산 또는 결과의 방식을 지정하기 위한 인수들 dict=True: {x:3, y:1}같이 사전형식, 기본값 = False set=True :{(x,3),(y,1)}같이 집합형식, 기본값 = False ratioal=True : 실수를 유리수로 반환, 기본값 = False positive=True: 해들 중에 양수만을 반환, 기본값 = False 예 x2=1의 해를 결정합니다. solve() 함수에 적용하기 위해서는 다음과 같이 식의 한쪽이 0이 되는 형태인 동차식으로 구성되어야 합니다. x21=0 import numpy as np from sympy import * x = symbols('x') solve(x**2-1, x) [-1, 1] 위 식은 계산 과정은 다음과 같습니다. x21=0(x+1)(x1)=0x=1or1x4=1의 해를 결정합니다. solve() 함수의 인수 set=True를 지정하였으므로 결과는 집합(set)형으로 반환됩니다. eq=x**4-1 solve(eq, set=True) ([x], {(-1,), (-I,), (1,), (I,)}) 위의 경우 I는 복소수입니다.즉 위 결과의 과정은 다음과 같습니다. x41=(x2+1)(x+1)(x1)=0x=±1,±1=±i,±1 실수...