03. Indukcja matematyczna
Treści kształcenia. Celem zajęć jest zaprezentowanie studentom Zasady Indukcji Matematycznej wraz z pokazaniem zastosowań tej zasady w dowodzeniu rozmaitych twierdzeń matematycznych. Zajęcia mają również uświadomić studentom, że komputer może być pomocny w formułowaniu twierdzeń matematycznych oraz że za jego możliwości dowodowe są ograniczone: potrafi on co najwyżej zweryfikować prawdziwość niektórych zdań tylko w skończonej ilości przypadków.
Efekty kształcenia. Student potrafi zastosować Zasadę Indukcji Matematycznej do dowodzenia rozmaitych twierdzeń matematycznych.
Wstęp¶
Podczas nauki matematyki w szkole średniej poznaliśmy wiele wzorów, które następnie wykorzystywaliśmy do rozwiązywania zadań. Dla przykładu dowiedzieliśmy się, że aby obliczyć sumę pierwszych wyrazów ciągu arytmetycznego o pierwszym wyrazie i różnicy , trzeba skorzystać ze wzoru
Powiedziano nam również, że liczba wszystkich podzbiorów zbioru -elementowego (wliczając w to zbiór pusty i cały zbiór) jest równa . Bardzo rzadko (albo wcale) pokazywano nam jednak, skąd te wzory się wzięły i dlaczego są one prawdziwe. Celem tych materiałów jest omówienie, jak można samemu odkryć niektóre ze wzorów i twierdzeń matematycznych oraz w jaki sposób można je udowodnić.
Przykład: suma pierwszych liczb nieparzystych¶
Zastanówmy się, czy istnieje jakiś łatwy sposób na obliczenie sumy pierwszych liczb nieparzystych, innymi słowy spróbujmy poszukać wzoru, który opisuje, jak zachowuje się ciąg dany wzorem
Proste rachunki pokazują, że:
dla mamy ;
dla mamy ;
dla mamy ;
dla mamy ;
dla mamy .
Powyższe proste rachunki zdają się sugerować, że dla każdego prawdziwa jest równość
Spróbujmy potwierdzić nasze przypuszczenia w “większej” liczbie przypadków.
def sum_first_n_odd(n):
# suma pierwszych n liczb nieparzystych
s=0 # początkowo suma jest rowna 0
for i in range(n): # dla i z zakresu od 0 do i-1
s += 2*i+1 # do sumy dodajemy 2i+1
return s
sum_first_n_odd(10) 100N = 10**4 # sprawdzamy prawdziwość naszej tezy aż do N włącznie
for i in range(N): # sprawdzamy czy dla którejść z liczb i od 0 do N-1
if sum_first_n_odd(i) != i**2: # suma pierwszszych i liczb nieparzystych jest różna od i^2.
test = False
break
else:
test = True
if test == True:
print('Dla wszystkich n mniejszych bądź równych niż', N, 'nasza równość jest prawdziwa.')
else:
print('Nasze przypuszczenie jest błędne')Dla wszystkich n mniejszych bądź równych niż 10000 nasza równość jest prawdziwa.
Ważne: w powyższy sposób jesteśmy w stanie sprawdzić za pomocą komputera prawdziwość naszej tezy tylko dla skończonej liczby przypadków. Aby potwierdzić, że nasze przypuszczenie jest prawdziwe dla wszystkich liczb naturalnych, będziemy potrzebowali bardzo ważnego twierdzenia zwanego Zasadą Indukcji Matematycznej (twierdzenie to wynika bezpośrednio z tego, jak konstruuje się zbiór liczb naturalnych).
Zasada indukcji matematycznej¶
Niech będzie podzbiorem zbioru liczb naturalnych . Jeśli spełnione są warunki:
;
dla każdego : jeśli , to ;
to .
Uwaga: Zasadę Indukcji Matematycznej można wysłowić w następujący równoważny sposób.
Zasada indukcji Matematycznej
Niech dla każdego będzie dane zdanie . Jeśli spełnione są warunki:
zdanie T(1) jest prawdziwe;
dla każdego z prawdziwości zdania wynika prawdziwość zdania ;
to zdanie jest prawdziwe dla wszystkich liczb naturalnych.
Przykład: suma pierwszych liczb nieparzystych - cd.¶
Wyposażeni w Zasadę Indukcji Matematycznej, wracamy do naszego przykładu. Aby potwierdzić nasze przypuszczenie, musimy pokazać, że zbiór
jest w istocie równy . W tym celu zastosujemy poznaną przed chwilą zasadę.
Sprawdziliśmy już, że . W sumie to sprawdziliśmy dużo więcej: pokazaliśmy, że .
Pokażemy teraz, że dla dowolnej liczby naturalnej : jeśli , to .
Przypuśćmy zatem, że liczba naturalna należy do zbioru . Oznacza to, że
Korzystając z tego faktu musimy pokazać, że liczba również należy do zbioru . Chcemy pokazać zatem, że
Mamy
Korzystając z równości otrzymujemy, że
To oznacza, że .
Na mocy Zasady Indukcji Matematycznej mamy .
Przykład: liczba podzbiorów¶
Postaramy się teraz zrozumieć, ile jest wszystkich podzbiorów zbioru -elementowego (wliczając w to zbiór pusty i cały zbiór).
Podzbiorami zbioru jednoelementowego są i . Jest ich zatem: 2.
Podzbiorami zbioru dwuelementowego są , , oraz . Jest ich zatem: 4.
Podzbiorami zbioru trzyelementowego są , , , , , , oraz . Jest ich zatem: 8.
def power_set(set):
# returns a list of all subsets of a set (given as a list)
if (len(set) == 0): # jedynym podzbiorem zbioru pustego jest zbiór pusty
return [[]]
else:
all_subsets = [ ] # aby wygenerować podzbiory zboru n elementowego zauważamy, że podziory te dzielą się na dwie klasy:
# te które zawieają ustalony element x i te które go nie zawierają. To pozwala wszystkie podzbiory wyznaczyć rekurencyjnie.
for small_subset in power_set(set[1:]):
all_subsets += [small_subset]
all_subsets += [[set[0]] + small_subset]
return all_subsets
print(power_set(range(5)))
print(len(power_set(range(10))))[[], [0], [1], [0, 1], [2], [0, 2], [1, 2], [0, 1, 2], [3], [0, 3], [1, 3], [0, 1, 3], [2, 3], [0, 2, 3], [1, 2, 3], [0, 1, 2, 3], [4], [0, 4], [1, 4], [0, 1, 4], [2, 4], [0, 2, 4], [1, 2, 4], [0, 1, 2, 4], [3, 4], [0, 3, 4], [1, 3, 4], [0, 1, 3, 4], [2, 3, 4], [0, 2, 3, 4], [1, 2, 3, 4], [0, 1, 2, 3, 4]]
1024
Powyższe wyniki sugerują, że liczba podzbiorów zbioru -elementowego jest równa . Niech więc oznacza zdanie: liczba podzbiorów dowolnego zbioru -elementowego jest równa .
Sprawdziliśmy już, że zdanie jest prawdziwe.
Pokażemy teraz, że dla każdego z prawdziwości zdania wynika prawdziwość zdania ;
Przypuśćmy zatem, że zdanie jest prawdziwe dla pewnego . Korzystając z tego założenia musimy pokazać, że liczba podzbiorów dowolnego zbioru -elementowego jest równa . Niech więc będzie dowolnym zbiorem -elementowym i niech .
Rodzina tych podzbiorów zbioru , które nie zawierają , jest taka sama jak rodzina wszystkich podzbiorów zbioru . Zatem podzbiorów zbioru , które nie zawierają , jest dokładnie (zbiór jest -elementowy).
Aby utworzyć rodzinę tych podzbiorów zbioru , które zawierają , wystarczy utworzyć rodzinę wszystkich podzbiorów zbioru a następnie do każdego elementu tej rodziny dołożyć . Zatem podzbiorów zbioru , które zawierają , jest dokładnie .
Zatem wszystkich podzbiorów zbioru jest dokładnie .
Na mocy Zasady Indukcji Matematycznej otrzymujemy, że liczba podzbiorów dowolnego zbioru -elementowego jest równa .
Przykład: wieże Hanoi¶
Mamy trzy paliki (nazwijmy je palikiem A, palikiem B i palikiem C) i krążków o różnych średnicach, które w chwili początkowej znajdują się na paliku A w kolejności od największego (ten jest na dole) do najmniejszego. Chcemy przenieść wszystkie krążki z palika A na palik C zgodnie z dwoma regułami:
krążek o średnicy większej nie może być położony na krążek o średnicy mniejszej;
w każdym ruchu możemy zdjąć tylko jeden krążek i nałożyć go na inny palik.
Naszym zadaniem jest przeniesienie wszystkich krążków na palik C używając do tego minimalnej ilości ruchów. Oznaczmy tę liczbę ruchów przez .
Jest jasne, że i nietrudno sprawdzić, że .
Załóżmy teraz, że znamy już sposób na optymalne rozwiązanie naszego zadania dla pewnego . Aby rozwiązać zadanie dla krążków, możemy postąpić następująco:
przenosimy krążków z palika A na palik B wykonując przy tym ruchów;
przenosimy największy krążek z palika A na palik C;
przenosimy krążki z palika B na palik C wykonując przy tym ruchów.
Powyższy algorytm pokazuje, że . Z drugiej strony największy krążek musi być przeniesiony co najmniej raz; tuż przed jego pierwszym ruchem wszystkie mniejszych krążków muszą leżeć na trzecim paliku (innym niż palik A i palik, na który kładziemy największy krążek), więc musieliśmy wcześniej wykonać co najmniej ruchów, a po jego ostatnim ruchu (na palik C) trzeba je jeszcze przenieść na palik C, wykonując znów co najmniej ruchów. Stąd , czyli optymalna liczba ruchów potrzebna do przeniesienia krążków jest równa .
Ponieważ było dowolne, pokazaliśmy zatem, że dla każdego mamy
Jest to tak zwana rekurencyjna definicja ciągu: podaliśmy, ile jest równy pierwszy wyraz ciągu i podaliśmy regułę, jak wyznaczyć kolejne wyrazy ciągu, jeśli znamy już poprzednie. Więcej o ciągach rekurencyjnych będzie powiedziane przy okazji omawiania ciągów.
Czy jesteśmy w stanie podać jawny wzór na liczbę ?
def H(n):
# minimalna liczba ruchów
if n > 1:
return 2*H(n-1)+1
else:
return 1
for i in range(10):
print(H(i+1))1
3
7
15
31
63
127
255
511
1023
Powyższe obliczenia sugerują nam, że dla każdego mamy
Udowodnimy to stosując zasadę indukcji matematycznej.
Wiemy, że , wzór ten jest więc prawdziwy dla .
Załóżmy teraz, że dla pewnego wiemy już, że . Musimy pokazać, że . Mamy (korzystając z pokazanych już własności ciągu
To kończy dowód indukcyjny.
Przykład: nierówność Bernoulliego¶
Pokażemy teraz, że dla każdego i mamy
W tym celu zastosujemy zasadę indukcji matematycznej.
Dla nierówność jest oczywiście prawdziwa (w istocie mamy równość).
Załóżmy teraz, że dla pewnego nierówność
jest spełniona dla wszystkich . Musimy pokazać, że dla wszystkich mamy
Mnożąc obustronnie strony pierwszej z powyższych nierówności przez (nieujemną!) liczbę (1+x) dostajemy, że
Ale oczywiście
więc dla wszystkich mamy
To kończy dowód indukcyjny.
Uwaga: nierówność Bernoulliego okaże się niezwykle przydatna na Analizie Matematycznej.
Przykład: nierówność między średnią geometryczną a arytmetyczną¶
Pokażemy, że dla dowolnej liczby naturalnej prawdziwe jest zdanie : jeśli iloczyn liczb dodatnich jest równy 1, to ich suma jest większa bądź równa niż .
W tym celu zastosujemy Zasadę Indukcji Matematycznej.
Najpierw pokażemy, że zdanie jest prawdziwe. Musimy pokazać zatem, że jeśli dla liczb dodatnich i mamy
to
Ponieważ
to wystarczy uzasadnić, że dla dowolnej liczby dodatniej mamy
Ale powyższa nierówność jest równoważna (mnożymy ją obustronnie przez i przenosimy wszystko na lewą stronę) nierówności,
która jest prawdziwa.
Załóżmy teraz, że dla pewnego zdanie jest prawdziwe. Pokażemy, że prawdziwe jest zdanie . Niech więc będą dodatnimi liczbami takimi, że
Musimy pokazać, że
Jest jasne, że któraś spośród liczb jest większa bądź równa od 1 (gdyby wszystkie były mniejsze niż jeden, to ich iloczyn byłby mniejszy niż jeden) i któraś jest mniejsza bądź równa niż 1 (gdyby wszystkie były większe niż jeden, to ich iloczyn byłby większy niż jeden). Możemy założyć zatem (ewentualnie zmieniając kolejności naszych danych liczb), że i . Niech teraz dla i . Ponieważ iloczyn liczb dodatnich jest równy 1, to z naszego założenia wynika, że ich suma jest większa bądź równa niż . Mamy
gdzie ostatnia nierówność wynika z faktu, że .
Wniosek
Niech będą liczbami dodatnimi. Niech ponadto dla
Iloczyn liczb jest równy 1, zatem na mocy powyższego przykładu ich suma jest większa bądź równa niż . Zatem
Mnożąc obustronnie powyższą nierówność przez i dzieląc obustronnie przez otrzymujemy, że
Udowodniliśmy więc, że średnia geometryczna liczb jest mniejsza bądź równa od ich średniej arytmetycznej.
Przykład: niepoprawny dowód indukcyjny¶
Zachowaj ostrożność!!!
Pokażemy teraz, że wszystkie koty są tego samego koloru. By to zrobić, wystarczy pokazać, że dla każdego prawdziwe jest zdanie : w dowolnym zbiorze złożonym z kotów wszystkie koty są tego samego koloru.
Zdanie jest w sposób oczywisty prawdziwe.
Załóżmy teraz, że dla pewnego prawdziwe jest zdanie . Pokażemy, że prawdziwe jest zdanie . Niech więc będzie zbiorem złożonym z kotów. Wyrzucając z pewnego kota otrzymamy zbiór zawierający n kotów zatem z założenia wszystkie koty poza kotem są tego samego koloru. Ale wyrzucając teraz z kota (innego niż ) znowu otrzymamy zbiór zawierający n kotów, w tym kota . Zatem kot ma taki sam kolor jak pozostałe koty w zbiorze . Stąd w zbiorze wszystkie koty mają ten sam kolor.
Na mocy indukcji zdanie jest prawdziwe dla wszystkich . Wszystkie koty są więc tego samego koloru.
Do samodzielnego przestudiowania¶
Przykład: suma kwadratów¶
Pokażemy, że dla każdego mamy
Zastosujemy zasadę indukcji matematycznej.
Dla n=1 mamy:
równość jest zatem w tym przypadku prawdziwa.
Załóżmy teraz, że dla pewnego mamy
Musimy pokazać, że
Korzystając z założenia i wykonując proste rachunki dostajemy
A dokładnie tyle chcieliśmy pokazać.
Przykład nr 1 do samodzielnego rozwiązania¶
Pokaż, że dla każdego mamy
Czy potrafisz udowodnić to bez użycia indukcji?
Zastosujemy zasadę indukcji matematycznej.
Mamy
oraz
nasza równość jest więc prawdziwa dla .
Załóżmy teraz, że dla pewnego mamy
Pokażemy, że
Mamy
A dokładnie tyle chcieliśmy pokazać.
Przykład: suma odwrotności kwadratów¶
Pokażemy, że dla każdego mamy
Uwaga: później na analizie dowiemy się, że oznacza to, że szereg nieskończony jest zbieżny.
Dla nasza nierówność jest w istocie równością.
Załóżmy, że dla pewnego mamy, że
Aby zastosować Zasadę Indukcji, musimy uzasadnić, że
Mamy
Na mocy założenia otrzymujemy więc, że
Aby zakończyć dowód, wystarczy uzasadnić zatem, że dla dowolnej liczby naturalnej mamy, że
Proste rachunki (wszystko na lewą stronę i wspólny mianownik) pokazują, że nierówność ta jest równoważna nierówności
która oczywiście jest prawdziwa.
Przykład nr 3 do samodzielnego rozwiązania¶
Pokaż, że dla każdego mamy
Uwaga: później na analizie dowiemy się, że oznacza to, że szereg nieskończony jest rozbieżny.
Przykład nr 5 do samodzielnego rozwiązania¶
Połączono punktów strzałkami w taki sposób, że każda para różnych punktów jest połączona strzałką. Udowodnij, że istnieje ``centrum’'czyli punkt, z którego można dojść do każdego innego w co najwyżej dwóch krokach, idąc zgodnie z kierunkiem strzałek.
Literatura¶
J. Banaś, S. Wędrychowicz, Zbiór zadań z analizy matematycznej