09. Ciągi i ich własności, granica ciągu
Treści kształcenia. Ciągi liczbowe: granice właściwe i niewłaściwe. Zbieżność i arytmetyka granic. Ciągi monotoniczne. Podciągi, punkty skupienia i tw. Bolzano-Weierstrassa. Warunek Cauchy’ego i zupełność. Pozostałe informacje o zbieżności ciągów. Symbole Landaua i obliczanie granic z nimi związanych.
Efekty kształcenia. Student potrafi wprawnie posługiwać się pojęciem granicy ciągu oraz sprawdzać wykonalność obliczeń na komputerze. Zna podstawowe metody obliczania granic.
Ciągi liczbowe¶
Pojęcie ciągu liczbowego jest jednym z fundamentalnych pojęć matematycznych. Zapewne czytelnik spotkał się już z nim w szkole średniej (omawiając na przykład ciągi arytmetyczne i geometryczne). Z formalnego punktu widzenia ciągi liczbowe to nic innego jak funkcje działające ze zbioru liczb naturalnych do zbioru liczb rzeczywistych. Naszym głównym celem podczas tej (i kilku kolejnych lekcji) jest zrozumienie pojęcia granicy ciągu (służy ono do precyzyjnego opisania tego, co się dzieje z wyrazami ciągu dla bardzo dużych indeksów i jest jednym z najważniejszych pojęć analizy matematycznej).
Definicja ciągu¶
Ciągiem liczbowym nazywamy dowolną funkcję .
Uwagi:
Przyjęło się pisać, że dla każdego wartość oznacza się symbolem i mówi się, że jest to n - ty wyraz ciągu. Ciąg oznacza się zazwyczaj jednym z symboli: , lub .
Istnieją zasadniczo dwa sposoby określania ciągów:
podanie jawnego wzoru pozwalającego “od razu” policzyć jego n-ty wyraz, np. ;
podanie wzoru rekurencyjnego (to znaczy takiego, który wymaga znajomości poprzednich wyrazów, aby znaleźć jego n - ty wyraz), np.
# Fibbonacci sequnce
def Fib(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a+b
return a
print(Fib(100))354224848179261915075
.
Uwaga:
Powyższe przykłady pokazują, że niezwykle użyteczna jest znajomość wzoru ogólnego ciągu (bo szybciej jest znaleźć dowolny jego wyraz). Z kolei w większości problemów informatycznych pojawiają się ciągi rekurencyjne. Dlatego też ciągom rekurencyjnym zostanie poświęcona istotna część naszego kursu. Dowie się z niej czytelnik, na przykład jak w niektórych sytuacjach można od wzoru rekurencyjnego przejść do wzoru ogólnego.
Przykład nr 1 do samodzielnego rozwiązania¶
Uruchom poniższy skrypt obliczający setny wyraz ciągu Fibonacciego. Dlaczego to trwa tak długo?
# Fibbonacci sequnce
def Fib(n):
if n == 1 or n==2:
return 1
else:
a=Fib(n-1)+Fib(n-2)
return a
print(Fib(100))Przykład nr 2 do samodzielnego rozwiązania¶
Niech . Wyznacz: .
Przykład nr 3 do samodzielnego rozwiązania¶
Niech będzie ciągiem określonym rekurencyjnie
Wyznacz i . Znajdź wyraz ogólny ciągu i udowodnij go indukcyjnie.
Monotoniczność i ograniczoność ciągu¶
Definicja ciągu monotonicznego¶
Ciąg nazywamy:
rosnącym, gdy dla każdego mamy ;
malejącym, gdy dla każdego mamy ;
nierosnącym, gdy dla każdego mamy ;
niemalejącym, gdy dla każdego mamy ;
monotonicznym, gdy jest rosnący, malejący, nierosnący lub niemalejący.
Uwaga
Ciąg nie jest ani rosnący, ani malejący, ani nierosnący, ani niemalejący.
To, że ciąg nie jest rosnący, nie oznacza, że ciąg ten jest nierosnący!
W literaturze można też spotkać definicję ciągów monotonicznych od pewnego miejsca. Dla przykładu ciąg rosnący od pewnego miejsca to taki ciąg , że nierówność jest prawdziwa dla wszystkich większych od pewnej liczby .
Przykład: ciąg rosnący¶
Zbadamy monotoniczność ciągu określonego wzorem
Dla wszystkich mamy
Zatem ciąg jest rosnący.
Przykład: ciąg niemalejący¶
Zbadamy monotoniczność ciągu określonego wzorem
Mamy
Zatem ciąg jest niemalejący. W istocie, to jest on rosnący od pewnego miejsca (bo powyższa nierówność jest ostra dla ).
Przykład: monotoniczność ciągu rekurencyjnego¶
Niech będzie ciągiem określonym rekurencyjnie
Pokażemy, że jest on rosnący. W tym celu zastosujemy zasadę indukcji matematycznej i pokażemy, że dla każdego mamy
Jest to jasne dla , bo (pierwiastek jest funkcją rosnącą). Przypuśćmy teraz, że
dla pewnego . Wtedy
bo pierwiastek jest funkcją rosnącą. Ale to pokazuje, że
Definicja ciągu ograniczonego¶
Ciąg nazywamy ograniczonym, gdy istnieje takie, że dla wszystkich .
Uwaga:
Powinno być jasne, że ciąg jest ograniczony wtedy i tylko wtedy, gdy istnieją takie liczby oraz , że dla wszystkich .
Przykład: różnica pierwiastków¶
Zbadamy ograniczoność ciągu .
import matplotlib.pyplot as plt
import math
x = range(1, 50,1)
y = [math.sqrt(n+1)-math.sqrt(n) for n in range(1, 50,1)]
plt.scatter(x, y)
plt.show()
Powyższy wykres sugeruje, że nasz ciąg jest ograniczony (co więcej sugeruje, że jego wyrazy zbliżają się coraz bardziej do zera). Mamy
Zatem dla każdego
Przykład: ograniczoność ciągu rekurencyjnego¶
Niech będzie ciągiem określonym rekurencyjnie
Czy jest to ciąg ograniczony? Na mocy jednego z poprzednich przykładów wiemy już, że jest to ciąg rosnący. Zatem dla wszystkich .
def a(n):
if n == 1:
return math.sqrt(2)
else:
b = math.sqrt(2+a(n-1))
return b
import matplotlib.pyplot as plt
import math
x = range(1, 15,1)
y = [a(n) for n in range(1, 15,1)]
plt.scatter(x, y)
plt.show()
Początkowe wyrazy sugerują, że wyrazy naszego ciągu nie przekroczą 2. Spróbujemy zatem pokazać indukcyjnie, że dla wszystkich .
Jest to prawda dla , bo
Przypuśćmy zatem, że dla pewnego .
Wtedy
To kończy dowód indukcyjny.
Granica ciągu¶
Wykres pierwszych 50 wyrazów ciągu
sugeruje, że wraz ze wzrostem indeksu wyrazy tego ciągu znajdują się coraz bliżej zera.
import matplotlib.pyplot as plt
import math
x = range(1, 50,1)
y = [1/n for n in range(1, 50,1)]
plt.scatter(x, y)
plt.show()
Wykres pierwszych 50 wyrazów ciągu
sugeruje, że wraz ze wzrostem indeksu wyrazy tego ciągu znajdują się coraz bliżej 2.
import matplotlib.pyplot as plt
import math
x = range(1, 50,1)
y = [(2*n-5)/(n+1) for n in range(1, 50,1)]
plt.scatter(x, y)
plt.show()
Wykres pierwszych 1000 wyrazów ciągu
sugeruje, że wraz ze wzrostem indeksu wyrazy tego ciągu koncentrują się blisko 1.
import matplotlib.pyplot as plt
import math
x = range(1, 1000,1)
y = [1+(-1)**n/math.sqrt(n) for n in range(1, 1000,1)]
plt.scatter(x, y)
plt.show()
Wprowadzimy teraz bardzo ważną definicję granicy ciągu.
Definicja ciągu zbieżnego¶
Ciąg nazywamy zbieżnym do liczby , gdy dla każdego istnieje takie , że dla każdego mamy
Piszemy wtedy, że lub . Jeśli ciąg jest zbieżny do pewnej liczby , to nazywamy go ciągiem zbieżnym.
Uwagi:
używając symboli logicznych można powyższą definicję wyrazić następująco:
to, że liczba jest granicą ciągu , oznacza, że dla każdego w przedziale znajdują się prawie wszystkie wyrazy ciągu . Dzięki tej obserwacji łatwo zobaczyć, że granica ciągu wyznaczona jest jednoznacznie. Widać też, że ciąg nie jest zbieżny do żadnej liczby .
Przykład ciągu zbieżnego do zera¶
Pokażemy wprost z definicji, że
W tym celu ustalmy dowolny . Musimy zrozumieć, dla których liczb naturalnych spełniona jest nierówność
Proste przekształcenia dają, że nierówność ta jest prawdziwa dla wszystkich liczb spełniających nierówność
Zatem dla każdego : jeśli , to . To pokazuje, że nasz ciąg jest zbieżny do zera.