각도 값 x와 항의 개수 n이 주어졌을 때, x는 코사인 함수에 입력될 각도를 의미하며, n은 cos(x) 급수에서 계산할 항의 개수를 나타냅니다.
코사인(Cos x) 함수란?
Cos(x)는 삼각함수의 하나로, 주어진 각도 x에 대한 코사인 값을 계산하는 데 사용됩니다. 단위원에서 해당 각도에 대응하는 점의 x좌표가 곧 코사인 값이 됩니다.
수식
$$\cos (x) = \displaystyle\sum\limits_{k=0}^\infty \frac{(-1)^{k}}{(2k!)}x^{2k}$$
cos(x) 급수 전개
cos(x) = 1 − x²/2! + x⁴/4! − x⁶/6! + x⁸/8! − …
위와 같이 코사인 급수는 짝수 차수의 거듭제곱항들이 부호를 번갈아 가며 더해지는 형태로 전개됩니다.
예시
입력: x = 10, n = 3
출력: 0.984804
입력: x = 8, n = 2
출력: 0.990266
프로그램의 접근 방법
- x와 n의 값을 입력받습니다.
- cos(x) 급수 공식을 적용하여 각 항을 순차적으로 계산합니다.
- 모든 항의 합을 최종 결과로 출력합니다.
알고리즘
시작
1단계: 상수 double PI = 3.142 선언 및 초기화
2단계: 함수 double series_sum(double x, int n)
x = x * (PI / 180.0) 설정 (각도를 라디안으로 변환)
result = 1 설정
s = 1, fact = 1, pow = 1 설정
반복문: i = 1부터 i < 5까지 i++
s = s * -1 (부호 교차)
fact = fact * (2 * i - 1) * (2 * i) (팩토리얼 계산)
pow = pow * x * x (거듭제곱 계산)
result = result + s * pow / fact
반복문 종료
result 반환
3단계: main() 함수
x = 10 선언 및 초기화
n = 3 선언 및 초기화
series_sum(x, n) 결과 출력
종료
C 코드 예제
#include <stdio.h>
const double PI = 3.142;
// cos(x) 급수의 합을 반환하는 함수
double series_sum(double x, int n) {
x = x * (PI / 180.0); // 도(degree)를 라디안으로 변환
double result = 1;
double s = 1, fact = 1, pow = 1;
for (int i = 1; i < 5; i++) {
s = s * -1;
fact = fact * (2 * i - 1) * (2 * i);
pow = pow * x * x;
result = result + s * pow / fact;
}
return result;
}
// 메인 함수
int main() {
float x = 10;
int n = 3;
printf("%lf\n", series_sum(x, n));
return 0;
}
출력 결과
X=10; n=3 → 0.984804
X=13; n=8 → 0.974363
X=8; n=2 → 0.990266
이 프로그램은 매클로린 급수(Maclaurin series)를 이용해 코사인 값을 근사적으로 계산합니다. 반복 횟수를 늘릴수록 실제 cos(x) 값에 더 가까운 정확한 결과를 얻을 수 있습니다.