등차수열(arithmetic sequence) / 등비수열(geometric sequence)

밤비나·2023년 3월 14일

기초수학 w/python

목록 보기
5/14

수열은 일정한 규칙에 따라 나열된 숫자들의 모임을 의미한다. 이때 각 숫자를 수열의 항(term)이라고 하며, 수열의 항은 보통 a1, a2, a3, ... 과 같이 숫자 아래에 작은 인덱스를 붙여서 표기한다.

등차수열(arithmetic sequence)

인접한 두 항의 차이가 모두 같은 수열을 말한다. 간단하게 말해서, 한 항에서 다음 항으로 이동할 때마다 일정한 크기만큼 값이 증가하거나 감소한다. 이때 일정한 크기를 수열의 공차(common difference)라고 부른다.

등차수열 수식 :

an=a1+(n1)da_n = a_1 + (n-1)d

여기서 ana_n은 수열의 nn번째 항, a1a_1은 수열의 첫번째 항, dd는 공차, nn은 수열의 항 번호를 의미한다. 즉, 수열의 nn번째 항은 첫 번째 항에 (n1)(n-1)번 공차를 더한 값이다.

예를 들어, 1,4,7,10,13,1, 4, 7, 10, 13, \cdots와 같은 수열이 있다면 이 수열은 첫 항이 1이고, 공차가 3인 등차수열이다. 이 수열의 일반항을 구해보면 an=1+3(n1)a_n = 1 + 3(n-1)이 된다.

등차 중항

등차 수열에서 인접한 두 항의 평균값을 나타내는 수를 말한다. 등차 중항은 각 인접한 두 항의 합을 2로 나누면 구할 수 있다. 즉, ana_nan+1a_{n+1}의 등차 중항은 다음과 같이 나타낼 수 있다.

an+an+12\frac{a_n + a_{n+1}}{2}

등차수열의 합

nn항까지의 등차수열의 합

Sn=n2(a1+an)S_n = \frac{n}{2}(a_1 + a_n)

여기서 SnS_nnn항까지의 등차수열의 합을 나타냅니다.

예를 들어, 1,4,7,10,13,1, 4, 7, 10, 13, \cdots와 같은 수열의 5항까지의 합을 구하려면, a1=1a_1 = 1, a5=13a_5 = 13, n=5n = 5이므로, S5=52(1+13)=35S_5 = \frac{5}{2}(1 + 13) = 35가 됩니다.

파이썬 코드

def arithmetic_sequence(a1, d, n):
    # a1: 첫 번째 항, d: 공차, n: 항의 개수
    seq = [a1 + (i-1)*d for i in range(1, n+1)]
    return seq

def arithmetic_sequence_midterm(a, d, n):
    return a + (n-1) * d / 2

def arithmetic_sequence_sum(a1, d, n):
    # a1: 첫 번째 항, d: 공차, n: 항의 개수
    return n * (2*a1 + (n-1)*d) / 2

def sum_of_arithmetic_sequence(a1, d, n):
    Sn = (n/2) * (2*a1 + (n-1)*d)
    return Sn

print(arithmetic_sequence(2,2,8))
print(arithmetic_sequence_midterm(2,2,8))
print(arithmetic_sequence_sum(2,2,8))
print(sum_of_arithmetic_sequence(5,4,7))

# 결과
# [2, 4, 6, 8, 10, 12, 14, 16]
# 9.0
# 72.0
# 119.0

등비수열(geometric sequence)

등비 수열은 첫째 항이 a1이며, 둘째 항부터 이전 항에 공비 r를 곱한 수열을 말한다.

등비 수열의 일반항 :

an=a1×rn1a_n = a_1 \times r^{n-1}

예시1) a1 = 1, r = 2 -> 1, 2, 4, 8, 16, ...
예시2) a1 = 3, r = -2 -> 3, -6, 12, -24, 48, ...

등비 중항은 등비 수열에서 연속하는 두 항의 곱의 양의 제곱근으로 구할 수 있다. 등비 수열에서 두 항을 a_n과 a_m이라고 했을 때,

등비 중항 :

an+m2=an×ama_{\frac{n+m}{2}} = \sqrt{a_n \times a_m}

등비 수열의 합 :

Sn={a11rn1rr1 na1r=1S_n = \begin{cases} a_1\frac{1-r^n}{1-r} & r \neq 1 \ na_1 & r=1 \end{cases}

import math
def geometric_sequence(a1, r, n):
    # a1: 첫 번째 항, r: 공비, n: 항의 개수
    seq = [a1 * r**(i-1) for i in range(1, n+1)]
    return seq

def geometric_sequence_sum(a1, r, n):
    # a1: 첫 번째 항, r: 공비, n: 항의 개수
    if r == 1:
        return a1 * n
    else:
        return a1 * (1 - r**n) / (1 - r)

def geometric_sequence_midterm(a1, r, n):
    # a1: 첫 번째 항, r: 공비, n: 항의 개수
    return a1 * r**((n-1)/2)

print(geometric_sequence(2,2,7))
print(geometric_sequence_sum(2,2,7))
print(geometric_sequence_midterm(2,2,7))

# 결과
# [2, 4, 8, 16, 32, 64, 128]
# 254.0
# 16.0
profile
씨앗 데이터 분석가.

0개의 댓글