Rekker - Matematikk R2 - NDLA

Hopp til innhold
Oppgave

Rekker

Her kan du jobbe med oppgaver om rekker.

1.1.20

teorisiden om rekker har vi lagd et program som regner ut summen av de 20 første leddene i rekka  an=2n-1 ved hjelp av den eksplisitte formelen for an.

a) Lag et program som regner ut det samme ved hjelp av en rekursiv formel.

Løsning

Rekka vil være gitt ved den rekursive formelen  an=2·an-1  og  a1=1.

Vi lager en variabel for dagslønna og en variabel for den samlede lønna. Her må vi kjøre løkka 19 ganger, siden vi starter med lønna på dag 1.

python
1dagslonn = 1     #lønn per dag
2samletlonn = 1    #variabel for samlet lønn
3dager = 20       #antall dager
4
5
6for n in range(dager-1):   
7    dagslonn = dagslonn*2   
8    samletlonn = samletlonn + dagslonn  
9    
10print(f"Samlet lønn blir {samletlonn} kr.")

b) Finn S20 i CAS i GeoGebra.

Løsning

Her må vi bruke den eksplisitte formelen.

1.1.21

Leddene i ei uendelig rekke er gitt ved formelen an=1(1+n)2.

a) Finn de tre første leddene for hånd.

Løsning

an = 1(1+n)2a1 = 1(1+1)2=122=14a2 = 1(1+2)2=132=19a3 = 1(1+3)2=142=116

b) Lag et program som skriver ut de 20 første leddene.

Løsning
python
1a_n = 0
2antall = 1
3Leddene = []
4
5for n in range(1,21):
6    a_n = 1/(1+n)**2
7    Leddene.append(a_n)
8    antall = antall+1
9    
10print(Leddene)

c) Utvid programmet slik at det også skriver ut de 20 første summene, det vil si S1, S2, S3 og så videre.

Løsning
python
1a_n = 0
2Sum = 0
3antall = 1
4Leddene = []
5Summene = []
6
7for n in range(1,21):
8    a_n = 1/(1+n)**2
9    Sum = Sum + a_n
10    Leddene.append(a_n)
11    Summene.append(Sum)
12    antall = antall+1
13
14print(Leddene)
15print(Summene)

Legg merke til at disse programmene bare er helt grunnleggende, og at utskriftene ikke er lette å tyde.

Her kommer en versjon med overskrifter og litt færre desimaler. Kanskje kan du noen andre triks for å få det til å se bedre ut?

Python
1a_n = 0
2Sum = 0
3antall = 1
4Leddene = ["a_n"]
5Summene = ["S_n"]
6
7for n in range(1,21):
8    a_n = 1/(1+n)**2
9    Sum = Sum + a_n
10    Leddene.append(a_n)
11    Summene.append(Sum)
12    antall = antall+1
13
14
15
16for i in range(0,21):
17    if i == 0:
18        print(f"{Leddene[i]:<6} {Summene[i]:<6}")
19    else:
20        print(f"{Leddene[i]:.4f} {Summene[i]:.4f}")
21        

I linje 18 har vi lagt inn en formatering for å få raden med overskrifter til å bli like bred som radene med ledd og summer.

d) Finn summen, både eksakt og avrundet til 10 desimaler, når n ved hjelp av CAS i GeoGebra.

Løsning

e) Utvid programmet ditt fra c) slik at du får skrevet ut leddene fra a290 til a300 og tilsvarende summer og leddene fra a990 til a1000 og tilsvarende summer. Beskriv sammenhengen mellom disse og svaret du fikk i d).

Løsning
python
1a_n = 0
2Sum = 0
3antall = 1
4Leddene = ["a_n"]
5Summene = ["S_n"]
6
7for n in range(1,1001):
8    a_n = 1/(1+n)**2
9    Sum = Sum + a_n
10    Leddene.append(a_n)
11    Summene.append(Sum)
12    antall = antall+1
13
14print("a_290 - a_300")
15
16for i in range(291,301):
17    print(f"{Leddene[i]:.5f} {Summene[i]:.5f}")
18
19print("a_990 - a_1000")
20
21for i in range(991,1001):
22    print(f"{Leddene[i]:.6f} {Summene[i]:.5f}")

Resultatet av utskriften blir slik (med 5 og 6 desimaler):

a290 - a3000.000010.641520.000010.641530.000010.641540.000010.641550.000010.641560.000010.641570.000010.641580.000010.641600.000010.641610.000010.64162

a990 - a10000.0000010.643930.0000010.643930.0000010.643930.0000010.643930.0000010.643930.0000010.643930.0000010.643930.0000010.643930.0000010.643930.0000010.64394

Vi ser at leddene blir mindre og mindre, og at summen nærmer seg sakte, men sikkert den summen vi fant i oppgave d).

f) Utfordring: Kan du lage et program som finner ut hvor mange ledd du må ha for at summen skal være lik den summen du fikk i oppgave d) med en nøyaktighet på 7 desimaler?

Løsning

Hvis vi skal ha en nøyaktighet på 7 desimaler, altså en sum på 0,6449340, må vi finne ut når summen passerer 0,64493405 (fordi vi da måtte ha rundet opp til 0,6449341).

Programmet kan se slik ut:

python
1a_n = 0
2Sum = 0
3antall = 1
4
5
6while Sum < 0.64493405:
7    a_n = 1/(1+antall)**2
8    Sum = Sum + a_n
9    antall = antall+1
10
11print(f"Vi trenger {antall-1} ledd for å få summen med 7 desimalers nøyaktighet.") 

Tok programmet langt tid å kjøre? Ikke så rart, kanskje, siden vi trenger hele 59 128 516 ledd i rekka for å komme til denne summen.

Kanskje du klarer å finne et mer effektivt program?

1.1.22

Leddene i ei uendelig rekke er gitt ved formelen an=1n2.

a) Skriv opp de fem første leddene i rekka.

Løsning

an = 1n2a1 = 112=1a2 = 122=14a3 = 132=19a4 = 142=116a5 = 152=125

b) Finn S5 og S50.

Løsning

Vi bruker GeoGebra og runder av:

c) Finn den eksakte summen av rekka når n.

Løsning

Vi bruker GeoGebra:


1.1.23

Leddene i ei uendelig rekke er gitt ved formelen an=1n.

a) Skriv opp de fem første leddene i rekka.

Løsning

an = 1na1 = 11=1a2 = 12a3 = 13a4 = 14a5 = 15

b) Finn S50 og S100.

Løsning

Vi bruker GeoGebra:

c) Finn summen av rekka når n.

Løsning

Vi bruker GeoGebra:

d) Sammenlign resultatet i c) med resultatet i 1.1.22 c). Beskriv hva som er forskjellen mellom disse to.

Løsning

I 1.1.22 c) var svaret et tall, mens i denne oppgaven er svaret uendelig. Det betyr at summen av rekka som er gitt ved an=1n, vil fortsette å vokse, mens summen av rekka som er gitt ved an=1n2, vil gå mot en bestemt sum.

Dette betyr at rekka i 1.1.22 konvergerer, mens rekka i 1.1.23 ikke gjør det. Dette vil du lære mer om når du kommer til artikkelen "Konvergens og divergens i uendelige geometriske rekker".

Skrevet av Tove Annette Holter, Olav Kristensen og Stein Aanensen.
Sist faglig oppdatert 19.11.2021