Lekcja 16 · Liczby
Rekurencja: od poprzedniej wartości
Większość naszych modeli w czasie: weź to, co było, zrób jeden krok, zapisz nowy stan. To nie „wzór na n lat z pamięci” — to przepis na jutro.
Po tej lekcji
- Zapisujesz xn+1 = … z jawnym x0.
- Robisz jeden krok ręcznie i wiesz, która komórka Excela jest xn.
- Odróżniasz wzór „na teraz” (pizza, autobus) od historii w czasie (lokata, klub, choroba).
Sytuacja
Ta sama lokata z lekcji 15, tylko patrzymy na nią jak na maszynkę kroków. Pytanie na kartkówkę będzie brzmiało: dam ci x0 i przepis — podaj x1. Nie musisz znać wzoru z potęgą.
Karta modelu: dane, założenia, parametry
| Wielkość | Symbol | Wartość | Jednostka | Skąd się wzięła | Rodzaj |
|---|---|---|---|---|---|
| Stan na początku | x₀ | 1000 | zł | wpłata | dana |
| Mnożnik kroku | 1+p | 1,05 | — | 5% rocznie | dana / założenie |
| Przepis kroku | xₙ₊₁ | xₙ×1,05 | zł | model | założenie: p stałe |
| Stan po jednym roku | x₁ | 1050 | zł | jeden krok | wynik |
xn+1 = xn × 1,05, x0 = 1000
W Excelu wiersz 2 to x0, wiersz 3 to =A2*1.05, czyli x1. Przeciąganie w dół to pętla. W Pythonie ten sam pomysł: funkcja dostaje start, krok i liczbę powtórzeń.
def kolejne(x0, krok, n):
x = x0
historia = [x]
for _ in range(n):
x = x + krok
historia.append(x)
return historia
print(kolejne(5, 2, 5))
print(kolejne(10, 3, 4))
Tu krok jest dodawaniem, nie mnożeniem — żeby było widać, że rekurencja to ramka, a w środku może być +2, ×1,05 albo wzór z pojemnością z lekcji 20.
Sprawdź się. x<sub>0</sub>=10, x<sub>n+1</sub>=x<sub>n</sub>+3. x<sub>1</sub> =
Ćwiczenia samodzielne
- x0=8, xn+1=xn+r xn (1−xn/40), r=0,4. Policz x1 (to zapowiedź lekcji 20).
- W Excelu 10 wierszy lokaty. Która komórka jest xn, a która xn+1?
- Python: funkcja
def kolejne(x0, krok, n)wypisuje x0..x5 dla x←x+2, start 5. - Napisz rekurencję słowami dla modelu autobusu, gdy każdego dnia +1 chory (C rośnie). To nie ten sam wzór J=28−C liczony raz — opisz różnicę.
Odpowiedzi (dopiero po samodzielnej pracy)
- x1 = 8 + 0,4×8×(1−8/40) = 8 + 3,2×0,8 = 10,56.
- Wiersz n: stan; wiersz n+1: =poprzedni*1,05.
- 5,7,9,11,13,15.
- J=28−C to wzór „na teraz”. Rekurencja Cn+1=Cn+1 to historia w czasie.