문제. 수열 an=n1은 0에 한없이 가까워집니다.
(1) ∣an−0∣<0.01이 되려면 n이 얼마보다 커야 합니까?
(2) ∣an−0∣<0.0001이 되려면 어떻습니까?
(3) 아무리 작은 양수 ε을 주어도 같은 일이 가능함을 보이세요.
생각의 실마리. "가까워진다"는 말은 그 자체로는 참거짓을 판정할 수 없습니다. 21강 문제 1의 (다)처럼 기준이 없기 때문입니다. 대신 기준을 상대가 주게 하면 판정할 수 있습니다. 상대가 오차 한계를 주고 우리가 그것을 만족시키는 지점을 대답하는 구조를 만들어 봅니다.
풀이. (1) n1<0.01은 n>100과 같습니다. 즉 n≥101이면 됩니다.
(2) n1<0.0001은 n>10000입니다. n≥10001이면 됩니다.
(3) 임의의 양수 ε을 잡습니다. n1<ε은 n>ε1과 같으므로, N을 ε1보다 큰 자연수로 잡으면 n≥N인 모든 n에서
∣∣∣∣∣n1−0∣∣∣∣∣=n1≤N1<ε
입니다. 그런 자연수 N은 언제나 존재합니다. 25강 문제 1에서 확인한 대로 가장 큰 자연수가 없기 때문입니다.
이 문제에서 배우는 것: 수열의 극한.
수열 {an}이 L에 수렴한다는 것을 다음과 같이 정의합니다.
∀ε>0,∃N∈N,∀n≥N,∣an−L∣<ε
이때 n→∞liman=L로 씁니다.
이 정의를 읽는 방법이 중요합니다. 도전과 응답의 구조입니다.
상대가 오차 한계 ε>0을 아무거나 줍니다. 아무리 작아도 됩니다.
우리는 그에 맞는 지점 N을 대답합니다.
그 지점 이후로는 모든 항이 L에서 ε보다 가깝습니다.
22강 문제 4에서 정리한 한정 기호의 순서가 여기서 결정적입니다. ∀ε이 먼저이고 ∃N이 뒤이므로, N은 ε에 의존해도 됩니다.ε이 작아지면 N이 커지는 것이 정상입니다. 위 풀이에서 ε=0.01일 때 N=101이고 ε=0.0001일 때 N=10001이었던 것이 그것입니다.
순서를 바꿔 ∃N∀ε으로 적으면 전혀 다른 뜻이 됩니다. 모든 ε에 통하는 N 하나가 있다는 뜻이 되고, 이는 an=L이 어느 지점 이후 정확히 성립한다는 강한 조건입니다.
정의를 쓸 때 유의할 점 두 가지입니다.
부등호가 <이고 ≤가 아닙니다. 다만 ε이 임의이므로 어느 쪽으로 정의해도 같은 개념이 됩니다.
처음 유한개의 항은 아무래도 좋습니다.n≥N인 항만 조건을 만족하면 되므로, 앞의 몇 항을 바꿔도 극한은 변하지 않습니다.
바로 확인.
확인 1-1.an=n21이 0에 수렴함을 정의로 보일 때 ε=0.01에 대응하는 N을 하나 제시하세요.
답.n21<0.01은 n>10이므로 N=11이면 됩니다.
확인 1-2. 정의에서 N이 ε에 의존해도 되는 이유를 한정 기호의 순서로 설명하세요.
답.∀ε이 ∃N보다 앞에 있으므로 N을 고를 때 이미 ε을 알고 있습니다. 22강에서 뒤에 오는 변수가 앞 변수에 의존할 수 있다고 정리한 그대로입니다.
임의의 ε>0을 잡습니다. N을 ε5보다 큰 자연수로 잡습니다. 그러면 n≥N인 모든 n에 대하여
∣∣∣∣∣n+23n+1−3∣∣∣∣∣=n+25<n5≤N5<ε
입니다. 따라서 정의에 의해 극한은 3입니다.
이 문제에서 배우는 것: 정의를 이용한 증명의 절차.
ε과 N을 쓰는 증명은 언제나 같은 두 단계로 이루어집니다.
1단계. 뒤에서 앞으로 계산합니다(초안). ∣an−L∣을 계산해 n의 간단한 식으로 만들고, 그 식이 ε보다 작아지는 n의 조건을 풉니다. 이 단계는 N을 찾는 과정이며 증명문에 그대로 적지 않습니다.
2단계. 앞에서 뒤로 적습니다(증명문).
"임의의 ε>0을 잡습니다. N=…로 잡습니다. 그러면 n≥N일 때 …<ε입니다."
증명은 초안의 역순으로 적습니다. 초안에서는 결론에서 출발해 조건을 찾았지만, 증명문에서는 조건에서 출발해 결론에 도달해야 하기 때문입니다.
2단계에서 흔히 쓰는 요령이 부등식을 느슨하게 잡는 것입니다. 위 증명에서 n+25<n5으로 한 번 키웠습니다. 정확한 조건 n>ε5−2를 쓰는 대신 더 쉬운 N>ε5을 쓸 수 있게 되기 때문입니다. N은 가장 작은 값일 필요가 없습니다. 조건을 만족하는 N 하나만 제시하면 존재 명제가 증명됩니다.
여기에 쓰인 사실 하나를 이름으로 정리해 둡니다. 어떤 실수를 주어도 그보다 큰 자연수가 존재한다는 성질을 아르키메데스 성질이라고 합니다. N을 잡을 때마다 이 성질을 쓰고 있습니다.
바로 확인.
확인 2-1.n→∞limn+12n=2임을 정의로 증명할 때 ∣an−2∣을 계산하세요.
답.∣∣∣∣∣n+12n−2(n+1)∣∣∣∣∣=n+12입니다.
확인 2-2. 확인 2-1에서 ε에 대응하는 N을 제시하세요.
답.n+12<n2이므로 N을 ε2보다 큰 자연수로 잡으면 됩니다.
확인 2-3. 정의에서 N이 가장 작을 필요가 없는 이유를 쓰세요.
답. 정의가 ∃N이므로 조건을 만족하는 N이 하나만 있으면 참입니다. 더 큰 N을 잡아도 조건은 그대로 성립합니다.
문제. 다음 극한을 구하세요.
(1) n→∞lim5n2+n2n2−3n+1
(2) n→∞lim(n+1−n)
(3) \displaystyle\lim_{n\to\infty}\frac{\sin n}
생각의 실마리. 정의로 매번 증명하는 것은 비효율적입니다. 이미 아는 극한을 조합하는 법칙을 쓰면 계산으로 끝납니다. (1)은 분자와 분모를 최고차항으로 나눕니다. (2)는 그대로는 ∞−∞ 꼴이라 판단할 수 없으므로 4강의 유리화를 씁니다. (3)은 분자가 진동하므로 위아래로 가두는 방법을 생각합니다.
풀이. (1) 분자와 분모를 n2으로 나눕니다.
5+n12−n3+n21
n1→0이고 n21→0이므로 극한법칙에 의해 분자는 2로, 분모는 5로 갑니다. 분모의 극한이 0이 아니므로 몫의 법칙을 쓸 수 있고 답은 52입니다.
(2) 그대로 두면 두 항이 모두 커지므로 판단할 수 없습니다. 켤레를 곱해 유리화합니다.
n+1−n=n+1+n(n+1−n)(n+1+n)=n+1+n1
분모가 한없이 커지므로 극한은 0입니다.
(3) sinn은 −1과 1 사이를 진동해 극한이 없습니다. 그러나 n으로 나누면 사정이 다릅니다. 16강에서 확인한 대로 −1≤sinn≤1이므로 n>0일 때
−n1≤nsinn≤n1
입니다. 양쪽 끝이 모두 0으로 가므로 가운데도 0으로 갑니다. 답은 0입니다.
이 문제에서 배우는 것: 극한법칙과 샌드위치 정리.
liman=A이고 limbn=B이면 다음이 성립합니다.
법칙
식
합과 차
lim(an±bn)=A±B
상수배
lim(can)=cA
곱
lim(anbn)=AB
몫
limbnan=BA (단 B=0)
거듭제곱
\lim a_{n}^{k}=A^
두 극한이 모두 존재할 때만 이 법칙을 쓸 수 있습니다. (2)에서 두 항이 각각 발산하므로 차의 법칙을 그대로 쓸 수 없었고, 그래서 식을 먼저 고쳐야 했습니다. 몫의 법칙에서 B=0 조건도 마찬가지로 반드시 확인합니다.
샌드위치 정리는 다음과 같습니다.
어떤 지점 이후 bn≤an≤cn이고 limbn=limcn=L이면 liman=L입니다.
가운데 수열의 극한을 직접 계산할 수 없을 때 위아래로 가두어 잡는 방법입니다. (3)처럼 진동하는 항이 들어 있을 때 가장 자주 씁니다.
자주 쓰는 기본 극한을 모아 둡니다.
수열
극한
np1 (p>0)
0
rn (∣r∣<1)
0
rn (r>1)
발산합니다
na (a>0)
1
다항식의 비
최고차항의 계수비 또는 0
다항식의 비에서 분자의 차수가 낮으면 0이고, 같으면 최고차항 계수의 비이며, 높으면 발산합니다. (1)이 차수가 같은 경우였습니다.
문제.a1=2이고 an+1=2+an인 수열이 있습니다.
(1) 모든 n에서 an<2임을 증명하세요.
(2) 이 수열이 증가함을 증명하세요.
(3) 이 수열이 수렴함을 말하고 극한값을 구하세요.
생각의 실마리. 32강의 방법으로 닫힌 형태를 구하려 하면 근호가 겹쳐 풀리지 않습니다. 값을 모른 채로 수렴만 먼저 보이는 방법이 필요합니다. (1)과 (2)는 25강의 귀납법으로 처리합니다. (3)에서는 수렴한다는 것을 먼저 확보한 뒤, 점화식의 양변에 극한을 취하면 극한값에 대한 방정식이 나옵니다.
(1)에서 an<2이므로 an−2<0이고, an>0이므로 an+1>0입니다. 따라서 곱이 음수이고 그 음의 부호를 붙이면 양수입니다. 즉 an+12>an2이고 둘 다 양수이므로 an+1>an입니다.
(3) 수열이 증가하고 위로 2에 막혀 있으므로 아래의 단조수렴정리에 의해 수렴합니다. 극한을 L이라 합니다.
점화식 an+1=2+an의 양변에서 n→∞로 보냅니다. 왼쪽은 L입니다. 오른쪽에서 an→L이고 제곱근 함수가 연속이므로 2+L입니다. 연속성은 35강에서 정식으로 다루며, 여기서는 근호 안이 수렴하면 근호 값도 수렴한다는 사실을 씁니다.
L=2+L,L2=2+L,L2−L−2=0,(L−2)(L+1)=0
L=2 또는 L=−1입니다. 모든 항이 양수이므로 극한도 0 이상이어야 하고, 따라서 L=2입니다.
이 문제에서 배우는 것: 단조수렴정리.
위로 유계인 증가수열은 수렴합니다. 아래로 유계인 감소수열도 수렴합니다.
이 정리가 특별한 이유는 극한값을 몰라도 수렴을 보장한다는 데 있습니다. 문제 1과 문제 2의 정의는 L을 미리 알아야 쓸 수 있었지만, 이 정리는 L이 무엇인지 모르는 채로 존재만 확보해 줍니다.
그렇게 존재를 확보한 뒤에야 (3)의 계산이 정당해집니다. 순서가 중요합니다. 수렴을 먼저 보이지 않고 곧바로 L=2+L을 세우면 안 됩니다. 그 계산은 L이 존재한다고 이미 가정한 것이기 때문입니다.
이 함정의 예를 봅니다. an+1=2an, a1=1에 같은 계산을 하면 L=2L에서 L=0이 나옵니다. 그러나 이 수열은 2n−1로 발산합니다. 존재를 확인하지 않은 계산은 틀린 답을 내놓습니다.
단조수렴정리는 실수의 성질에 기대고 있습니다. 위로 유계인 실수 집합에는 가장 작은 상계가 존재한다는 성질이며, 이를 완비성이라고 합니다. 유리수에서는 성립하지 않습니다. 2에 다가가는 유리수 증가수열은 유리수 안에서 극한을 갖지 못하며, 24강에서 증명한 2의 무리수성이 그 이유입니다. 실수가 유리수와 다른 점이 바로 여기 있습니다.
바로 확인.
확인 5-1.a1=1, an+1=2an+2의 극한을 구하세요. 32강의 방법도 함께 씁니다.
답. 고정점은 x=2x+2에서 x=2입니다. 32강의 닫힌 형태로 an=2−(21)n−1이므로 극한은 2입니다.
확인 5-2. 단조수렴정리를 쓰려면 무엇을 두 가지 확인해야 합니까?
답. 수열이 단조인지와 그 방향으로 유계인지를 확인합니다.
확인 5-3.an+1=3an, a1=1에 L=3L을 세워 L=0이라 답하면 무엇이 잘못입니까?
답. 수렴을 먼저 확인하지 않았습니다. 이 수열은 3n−1로 발산하므로 극한이 없고, 없는 값에 대해 방정식을 세운 것입니다.
풀이. 바꾼 문장은 ∃N,∀ε>0,∀n≥N,∣an−L∣<ε입니다. N이 먼저 정해지고 그 뒤에 모든 ε이 들어오므로, 고정된 N 이후의 항은 아무리 작은 ε보다도L에 가까워야 합니다. ∣an−L∣이 모든 양수보다 작으면 그 값은 0일 수밖에 없으므로 an=L입니다.
남는 것. 22강 문제 4에서 순서가 뜻을 바꾼다고 했던 것이 여기서 극단적으로 나타납니다. 기호 두 개의 자리를 바꿨을 뿐인데 "가까워진다"가 "같아진다"로 변합니다. 해석학의 정의를 읽을 때 한정 기호의 순서를 먼저 확인하는 습관이 필요한 이유입니다.
심화 2.n→∞limnn=1임을 보이세요.
답.1입니다.
풀이.nn≥1이므로 nn=1+hn인 hn≥0이 있습니다. 양변을 n제곱하고 20강의 이항정리를 씁니다.
남는 것. 이항정리를 부등식을 만드는 도구로 썼습니다. 전개식의 모든 항이 음이 아니므로 그중 유리한 항 하나만 남기면 원하는 부등식이 나옵니다. 이 수법은 급수의 수렴을 판정할 때 계속 쓰이며, 54강의 비교판정법이 같은 발상입니다.
심화 3. 유계인 수열은 수렴하는 부분수열을 가진다는 사실을 (−1)n에서 확인하고, 이 사실이 왜 유용한지 설명하세요.
답.(−1)n에서 짝수 번째만 뽑으면 상수수열 1이 되어 수렴합니다.
풀이.n=2,4,6,…인 항만 뽑으면 모두 1이므로 극한이 1입니다. 홀수 번째만 뽑으면 모두 −1이므로 극한이 −1입니다. 원래 수열은 발산하지만 부분수열은 수렴합니다.
이것이 일반적으로 성립한다는 것이 볼차노 바이어슈트라스 정리입니다. 유용한 이유는 수렴을 직접 보일 수 없을 때 우회로를 열어 주기 때문입니다. 유계라는 약한 조건만으로 수렴하는 부분수열을 얻고, 그 극한을 후보로 삼아 논증을 진행할 수 있습니다.
남는 것. 두 부분수열의 극한이 다르면 원래 수열은 수렴하지 않습니다. 1=−1이므로 (−1)n이 발산한다는 사실을 이 관찰만으로도 얻습니다. 문제 4에서 정의의 부정으로 길게 증명한 것을 부분수열로는 두 줄에 끝낼 수 있습니다. 36강에서 최대·최소 정리를 증명할 때 이 정리가 핵심 도구로 쓰입니다.
심화 4.an=(1+n1)n이 증가하고 위로 유계임을 보이고, 그 극한에 이름을 붙이세요.
k번째 항의 뒷부분은 (1−n1)(1−n2)⋯(1−nk−1)입니다. n이 커지면 각 인수가 커지고 항의 개수도 늘어나므로 전체 합이 증가합니다.
위로 유계임을 봅니다. 각 인수가 1 이하이므로
an≤k=0∑nk!1≤1+1+21+221+⋯+2n−11<3
입니다. 중간에서 k≥2일 때 k!≥2k−1을 썼고, 마지막은 등비수열의 합입니다. 증가하고 위로 유계이므로 단조수렴정리에 의해 수렴하며, 그 극한을 e로 정의합니다. 값은 약 2.71828입니다.
남는 것. 13강과 14강에서 e를 자연로그의 밑으로 쓸 때 그 정체를 미루었습니다. 여기서 정의가 완성됩니다. e는 어떤 공식으로 계산된 수가 아니라 단조수렴정리가 존재를 보장해 준 극한값입니다. 39강에서 ex의 미분이 자기 자신이 되는 이유가 이 정의에서 나옵니다.
두 번째 합은 항이 n−K개 이하이고 각각 2ε보다 작으므로 전체가 2ε보다 작습니다. 첫 번째 합은 K가 고정된 상수이므로 분자가 고정된 값이고, n을 충분히 크게 하면 2ε보다 작아집니다. 둘을 더하면 ε보다 작습니다.
남는 것. 증명의 뼈대가 합을 유한한 앞부분과 통제되는 뒷부분으로 쪼개는 것입니다. 앞부분은 개수가 고정되어 있어 n1이 눌러 주고, 뒷부분은 각 항이 이미 작습니다. 이 쪼개기는 해석학에서 가장 자주 쓰는 기법이며 ε을 절반씩 나눠 배분하는 방식도 함께 익혀 둡니다.
심화 6. 유리수만으로는 단조수렴정리가 성립하지 않음을 예로 보이세요.
답.2에 다가가는 유리수 수열이 반례입니다.
풀이.an을 2의 소수 전개를 n자리에서 끊은 유리수라고 합니다. 즉 1,1.4,1.41,1.414,…입니다. 이 수열은 증가하고 모든 항이 2보다 작으므로 위로 유계입니다.
그러나 유리수 안에서는 극한이 없습니다. 극한이 있다면 그 값은 2여야 하는데, 24강에서 2가 유리수가 아님을 증명했기 때문입니다.
남는 것. 단조수렴정리는 실수의 완비성에서 나오는 정리이지 순서와 사칙연산만으로 따라 나오는 것이 아닙니다. 유리수도 순서와 사칙연산은 갖췄지만 이 정리는 갖지 못합니다. 미적분학이 실수 위에서만 세워지는 이유가 여기 있습니다. 극한이 필요한 곳마다 완비성이 뒤에서 일하고 있습니다.
극한은 무한을 다루므로 코드로 증명할 수 없습니다. 대신 n을 크게 잡아 값이 예측한 극한에 다가가는지, 그리고 정의가 요구하는 N이 실제로 통하는지 확인합니다.
import numpy as np
# 문제 1: 정의가 요구하는 N 이 실제로 통하는지 확인합니다.
for eps in (0.01, 0.0001):
N = int(1 / eps) + 1
n = np.arange(N, N + 1000)
print(eps, N, bool(np.all(np.abs(1.0 / n) < eps)))
# 0.01 101 True
# 0.0001 10001 True
# 문제 2: (3n+1)/(n+2) -> 3 이며 아래에서 다가갑니다.
n = np.array([10, 100, 10000, 1000000], dtype=float)
print(np.round((3*n + 1) / (n + 2), 6)) # [2.583333 2.95098 2.9995 2.999995]
print(bool(np.all((3*n + 1) / (n + 2) < 3))) # True
# 문제 3: 세 가지 극한
m = 200000.0
print(round((2*m**2 - 3*m + 1) / (5*m**2 + m), 6), round(2/5, 6)) # 0.399997 0.4
print(round(float(np.sqrt(m + 1) - np.sqrt(m)), 8)) # 0.00111803
k = np.arange(1, 200001, dtype=float)
print(round(float(np.max(np.abs(np.sin(k) / k))), 6)) # 0.841471
# 문제 4: (-1)^n 은 두 값 사이를 오갑니다.
print(np.unique((-1.0) ** np.arange(1, 21))) # [-1. 1.]
# 문제 5: sqrt(2 + a_n) 은 증가하며 2 로 갑니다.
a = [np.sqrt(2.0)]
for _ in range(30):
a.append(np.sqrt(2 + a[-1]))
a = np.array(a)
print(bool(np.all(np.diff(a[:15]) > 0)), bool(np.all(a[:15] < 2))) # True True
print(round(float(a[14]), 9), round(float(a[30]), 9)) # 1.999999998 2.0
print(int(np.argmax(a >= 2.0))) # 27
# 심화 2: n 제곱근 n 은 1 로 갑니다.
t = np.array([10, 100, 10000, 1000000], dtype=float)
print(np.round(t ** (1 / t), 6)) # [1.258925 1.047129 1.000921 1.000014]
# 심화 4: (1 + 1/n)^n 은 증가하며 e 로 갑니다.
j = np.arange(1, 100001, dtype=float)
seq = (1 + 1 / j) ** j
print(bool(np.all(np.diff(seq) > 0)), bool(np.all(seq < 3))) # True True
print(round(float(seq[-1]), 5), round(float(np.e), 5)) # 2.71827 2.71828
# 문제 17: n! / n^n 은 0 으로 갑니다.
def ratio(n):
r = 1.0
for i in range(1, n + 1):
r *= i / n
return r
print([float(f"{ratio(t):.3g}") for t in (5, 10, 20)])
# [0.0384, 0.000363, 2.32e-08]
출력이 주석과 모두 일치합니다. 두 번째 검산에서 값이 2.583333에서 2.999995로 커지며 모두 3보다 작습니다. 문제 2에서 계산한 차가 n+2−5로 항상 음수였으므로 이 수열은 아래에서3에 다가갑니다.
다섯 번째 검산은 코드로 극한을 다룰 때의 한계를 그대로 보여 줍니다. 앞의 15개 항까지는 증가하고 2보다 작다는 것이 확인되지만, 27번째 항부터는 저장된 값이 정확히 2.0이 됩니다. 이것은 수열이 2에 도달했다는 뜻이 아닙니다. 실제로는 문제 5에서 증명한 대로 모든 항이 2보다 작으며, 다만 두 값의 차이가 배정밀도 부동소수점이 구분할 수 있는 한계보다 작아져 같은 값으로 저장된 것입니다. 코드는 극한에 다가가는 모습을 보여 줄 뿐 극한을 증명하지 못합니다. 증명은 문제 5에서 단조수렴정리로 한 것뿐입니다.