Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어로 구현하는 코사인(cos x) 급수의 합 계산 프로그램

각도 값 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) 값에 더 가까운 정확한 결과를 얻을 수 있습니다.