Følger og rekker
Contents
Følger og rekker#
Følger#
For å finna ledd i talfølger kan ein bruka ekplisitte formlar, eller finna leddet rekursivt. Me skal sjå på døme på korleis me kan gjera begge deler, både for aritmetiske og geometriske følger.
Eksplisitt#
Gitt den aritmetiske talfølga
Her er det første leddet \(a_1 =3\) og differansen mellom kvart ledd er \(d=4\). Dermed vil
Denne eksplisitte formelen for det n-te leddet kan me t.d. definera som ein funksjon i python:
def a(n):
return 3 + 4*(n - 1)
print(a(4))
15
Denne funksjonen kan me bruka for å skriva ut dei ti første ledda:
for i in range(1, 11):
print(a(i), end = ", ") # end = "\n" (linjeskift) er standarden
print("...")
3, 7, 11, 15, 19, 23, 27, 31, 35, 39, ...
Rekursiv#
Sidan følga i dømet overt er ei aritmetisk følge kan me finna eit ledd ved å legga til differansen til leddet før, altså
For å finna det n-te leddet her må me då starta med \(a_1\) og jobba oss fram til \(a_n\).
def a(n):
if n == 1:
return 3 # det første leddet, a_1
else:
return a(n-1) + 4 # leddet før + differansen
print(a(4))
15
Skriv ut dei ti første ledda:
for i in range(1, 11):
print(a(i), end = ", ")
print("...")
3, 7, 11, 15, 19, 23, 27, 31, 35, 39, ...
Fibonacci#
Somme talfølger kan vera krevande å finna eksplisitte uttrykk for. Eit døme på dette kan vera Fibonacci-talfølga
der kvart ledd er summen av dei to førre ledda. Altså at \(a_n = a_{n-1} + a_{n-2}\).
Å finna ledda rekursivt vert dermed mykje enklare enn å finna ein eksplisitt formel:
def F(n):
if n == 1 or n == 2:
return 1 # dei to første ledda er 1
else:
return F(n-1) + F(n-2)
for i in range(1, 16):
print(F(i), end = ", ")
print("...")
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, ...
Følger og arrays#
Viss me er interessert i å lagra alle ledda i ei følge kan det vera greit å bruka arrays (frå NumPy
-biblioteket).
Me ser igjen på den aritmetiske følga
import numpy as np
a = np.array([3, 7, 11, 15])
for i in range(6):
a = np.append(a, a[-1] + 4)
print(a)
[ 3 7 11 15 19 23 27 31 35 39]
np.append
brukar me for å legga til eit nytt element i arrayen.
a[-1]
gjev oss det siste leddet i arrayen.
Ser me på Fibonacci-dømet kan me gjera det same her:
fib = np.array([1, 1])
for i in range(10):
fib = np.append(fib, fib[-1] + fib[-2])
print(fib)
[ 1 1 2 3 5 8 13 21 34 55 89 144]
Å bruka arrays kan vera ein føremon når me skal vidare til rekker. I tillegg kan me enkelt laga enkle talfølger ved hjelp av NumPy
, til dømes dei naturlege tala:
n = np.arange(1, 11)
print(n)
[ 1 2 3 4 5 6 7 8 9 10]
Me kan enkelt summera ledda i arrayen (her: dei 10 første naturlege tala)
s = n.sum()
print(s)
55
I tillegg kan me summera ledd for ledd og få ei liste med kumulative summar:
s2 = n.cumsum()
print(f"ledd: {n} \nsum: {s2}")
ledd: [ 1 2 3 4 5 6 7 8 9 10]
sum: [ 1 3 6 10 15 21 28 36 45 55]