11. september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 5 (del 2) Ada Gjermundsen

Like dokumenter
11. september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Oppgaver Kapittel 5 (del 2) Ada Gjermundsen

GEO En Introduksjon til MatLab. For-løkker med og uten vektorer. Ada Gjermundsen. Institutt for geofag Universitetet i Oslo. 11.

4. og 5. september 2012

18. (og 19.) september 2012

Kapittel og 5. september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 4.

19. september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 8 (del 2) Ada Gjermundsen

Kapittel september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 7.

Tall, vektorer og matriser

Kapittel august Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 2.

Læringsmål og pensum. Oversikt

Øvingsforelesning i Matlab (TDT4105)

Øvingsforelesning TDT4105 Matlab

Det viktigste dataelementet som MATLAB benytter, er matriser, som også gjerne betegnes arrays.

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

En innføring i MATLAB for STK1100

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Matematikk Øvingsoppgaver i numerikk leksjon 5 for-løkker

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

Øvingsforelesning i Matlab (TDT4105)

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

Øving 2 Matrisealgebra

Øvingsforelesning TDT4105 Matlab

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

MATLABs brukergrensesnitt

Matriser. Kapittel 4. Definisjoner og notasjon

Øvingsforelesning i Matlab TDT4105

TDT4105 IT Grunnkurs Høst 2016

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

Matematikk Øvingsoppgaver i numerikk leksjon 1. Løsningsforslag

MAT1120 Repetisjon Kap. 1

4 Matriser TMA4110 høsten 2018

Prosent- og renteregning

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag

ITGK - H2010, Matlab. Repetisjon

Notat 2, ST Sammensatte uttrykk. 27. januar 2006

Matematikk Øvingsoppgaver i numerikk leksjon 1. Løsningsforslag

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

MAT1120 Plenumsregningen torsdag 26/8

Kapittel Oktober Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 14.

Gauss-Jordan eliminasjon; redusert echelonform. Forelesning, TMA4110 Fredag 18/9. Reduserte echelonmatriser. Reduserte echelonmatriser (forts.

INF Ekstrainnlevering

TMA4123M regnet oppgavene 2 7, mens TMA4125N regnet oppgavene 1 6. s 2 Y + Y = (s 2 + 1)Y = 1 s 2 (1 e s ) e s = 1 s s2 s 2 e s.

TDT4110 IT Grunnkurs Høst 2014

INF Uke 10. Ukesoppgaver oktober 2012

Kanter, kanter, mange mangekanter

Noen innebygde funksjoner - Vektorisering

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Programmering Høst 2017

MAT-1004 Vårsemester 2017 Obligatorisk øving 2

Noen innebygde funksjoner - Vektorisering

Øvingsforelesning i Matlab TDT4105

Øvingsforelesning TDT4105 Matlab

UNIVERSITETET I OSLO

Kap 2: Løkker og lister

Notat 2, ST januar 2005

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Øvingsforelesning i Matlab TDT4105

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

TDT4105 Informasjonsteknologi, grunnkurs

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver uke 35

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

4.1 Vektorrom og underrom

UNIVERSITETET I OSLO

Pensum: Starting out with Python

EKSAMEN I EMNET MAT160 Beregningsalgoritmer 1 Mandag 12 februar 2007 LØSNINGSFORSLAG

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Oblig 2 - MAT1120. Fredrik Meyer 23. september 2009 A =

Rekker (eng: series, summations)

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:

TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling - load, save, type - fopen, fgetl, feof, fprintf, fclose

LP. Leksjon 6: Kap. 6: simpleksmetoden i matriseform, og Seksjon 7.1: følsomhetsanalyse

Læringsmål og pensum. Hva er en variabel?

(a) R n defineres som mengden av kolonnevektorer. a 1 a 2. a n. (b) R n defineres som mengden av radvektorer

Obligatorisk oppgave 1 INF1020 h2005

INF1000: Forelesning 4. Mer om arrayer Metoder

Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator

Øvingsforelesning 1 Python (TDT4110)

Rungekuttametodene løser initialverdiproblemer på formen y' = F x, y, y x 0

4.1 Vektorrom og underrom

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver uke 33

Oppsummering fra sist

MAT-1004 Vårsemester 2017 Obligatorisk øving 6

Bruk piazza for å få rask hjelp til alles nytte!

Matematikk Øvingsoppgaver i numerikk leksjon 3 Skript

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

Lineær uavhengighet og basis

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Matematikk Øvingsoppgaver i numerikk leksjon 1 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

41070 STABILITET I ELKRAFTSYSTEMER

Ukeoppgaver 2: sep (INF Høst 2010)

MAT 1110: Obligatorisk oppgave 1, V-07: Løsningsforslag

Transkript:

, Institutt for geofag Universitetet i Oslo 11. september 2012

Litt repetisjon: Array, En array er en variabel som inneholder flere objekter (verdier) En endimensjonal array er en vektor En array med to eller flere dimensjoner er en matrise I dag skal vi fortsette å jobbe med vektorer (kapittel 5)

Litt repetisjon: Definere vektorer Vektorer i MatLab kan lages på flere måter:, arraynavn = [objekt1 objekt2 objekt3...objektn]; arraynavn = start:stopp; arraynavn = start:step:stopp; arraynavn = linspace(start, stopp, antall objekter);

Legg merke til at de ulike kommandoene kan gi veldig ulike vektorer, Her får vi ikke med 15 fordi uttrykket vi har skrevet ikke går opp (men vi får ikke en feilmelding) >> 1:4:15 ans = 1 5 9 13 Vil vi forsikre at tallet 15 er med bruker vi linspace(), men her får vi ikke heltallsobjekter >> linspace(1,15,4) ans = 1.0000 5.6667 10.3333 15.0000

, Hvert objekt i arrayen lagres på en egen plass i datamaskinens minne Skal du hente et bestemt objekt må du vite både navnet på arrayen objektet er lagret i og på hvilken plass i arrayen det er lagret Siden arrayer inneholder mer enn ett objekt, må de individuelle arrayobjektene adresseres med indeks i tillegg til arraynavnet Indeksen angir hvilken plass i vektoren objektet befinner seg. MatLab indekserer det første objektet i vektoren med indeks 1 (ikke 0). En indeks er alltid et heltall og alltid større enn 0

, En indeks kan være ett tall: >> T=[21 19 18 20 19 19 22]; >> T(1) ans = 21 Her henter vi ett objekt

, Indeksverdier kan også gis som en egen vektor >> T=[21 19 18 20 19 19 22]; >> T(1:3) ans = 21 19 18 Her henter vi flere objekter ved å bruke en vektor med indeksverdier >> 1:3 ans = 1 2 3

, Skal vi hente flere objekter fra en vektor, bruker vi en egen vektor med indeksverdier som angir plassene til objektene vi vil hente Indeksvektoren kan du lage ved å bruke kommandoene: arraynavn = [objekt1 objekt2 objekt3...objektn]; arraynavn = start:stopp; arraynavn = start:step:stopp; enten alene eller i kombinasjon Vi bruker ikke kommandoen linspace() siden indeksvektoren kun kan inneholde heltall

Indeksverdier som en egen vektor, Vi definerer en vektor x med 6 objekter >> x = [10 3 7 1 8 9] x = 10 3 7 1 8 9 >> x(4) ans = >> x(1: ans = 1 10 3

Kommandoen end henter det siste vektorobjektet, x = [10 3 7 1 8 9] >> x(2:end) ans = 3 7 1 8 9 >> x(end-2:end) ans = 1 8 9

, Indeksvektoren kan ha en hvilken som helst kombinasjon av heltall x = [10 3 7 1 8 9] >> x([1 4 2]) ans = 10 1 3 >> x([1 1 1]) ans = 10 10 10

Indeksvektoren kan også være satt sammen av flere vektorer x = [10 3 7 1 8 9] >> x([1:2 4]) >> [1:2 4], ans = 10 3 1 ans = 1 2 4

, x = [10 3 7 1 8 9]...eller ha synkende verdier. Her bytter vi om rekkefølgen på objektene i vektoren x: >> x(end:-1:1) ans = 9 8 1 7 3 10

Vektoroperasjoner: Endre en vektor v.h.a. vektoren selv, Vi fortsetter med vektoren x = [10 3 7 1 8 9] Ta bort det siste objektet i vektoren x: >> x=x(1:end-1) x = 10 3 7 1 8 Her overskriver vektoren x med objekter fra vektoren x

Vektoroperasjoner: Endre en vektor v.h.a. vektoren selv, x = [10 3 7 1 8 9] Ta bort et objekt midt i vektoren x: >> x=[x(1: x(4:end)] x = 10 3 1 8 9 Igjen overskriver vektoren x med objekter fra vektoren x

Vektoroperasjoner: Endre en vektor v.h.a. vektoren selv, x = [10 3 7 1 8 9] Ta bort det første objektet i vektoren: >> x=x(2:end) x = 3 7 1 8 9 Igjen overskriver vektoren x med objekter fra vektoren x

Vektoroperasjoner: Lage en vektor v.h.a. en annen vektor, x = [10 3 7 1 8 9] Lage en ny vektor y ved å bruke deler av x >> y=[x(2:3) x(end) x(1)] y = 3 7 9 10 Her endrer vi ikke vektoren x

Vektoroperasjoner: Lage en vektor v.h.a. en annen vektor, x = [10 3 7 1 8 9]... eller deler av x, tall og vektorer >> y=[x(5) 7 8 x(end) 8:0.5:9] y = 8.0 7.0 8.0 9.0 8.0 8.5 9.0 Her endrer vi heller ikke vektoren x

Vektoroperasjoner: MatLab genererer automatisk vektorer Legg merke til at om du skiver:, >> f(5)=7 f = 0 0 0 0 7 uten at du har definert vektoren f fra før, lager MatLab en vektor, f, med 5 objekter der de 4 første objektene er 0

Arrayoperasjoner, Operasjon Data a = [a 1 a 2... a n ] (en vektor) b = [b 1 b 2... b n ] (en vektor) c = en skalar (ett tall) Skalar addisjon a+c = [a 1 + c a 2 + c... a n + c] Skalar multiplikasjon a c = [a 1 c a 2 c... a n c] Array addisjon a+b = [a 1 + b 1 a 2 + b 2... a n + b n ] Array multiplikasjon a. b = [a 1 b 1 a 2 b 2... a n b n ] Array divisjon a./b = [a 1 /b 1 a 2 /b 2... a n /b n ] Array eksponential a.ˆ c = [a 1ˆc a 2ˆc... a nˆc] c.ˆ a = [cˆa 1 cˆa 2... cˆa n ] a.ˆ b = [a 1ˆb 1 a 2ˆb 2... a nˆb n ]

Vektorfunksjoner i MatLab MatLabfunksjonen sum() legger sammen alle objektene i vektoren MatLabfunksjonen prod() ganger sammen alle objektene i vektoren, A = [1 3 6 7] B = [2 4 6 8] >> sum(a) ans = 17 >> prod(b) ans = 3456

Vektorfunksjoner i MatLab MatLabfunksjonen max() henter objektet i vektoren med størst verdi MatLabfunksjonen min() henter objektet i vektoren med minst verdi A = [1 3 6 7], >> max(a) ans = 7 >> min(a) ans = 1

Vektorfunksjoner i MatLab En vektormetode som ikke er pensum, men som er veldig nyttig, A = [1 0-3 5-5 9 8] Objekter i A mindre enn 0 >> A(A<0) ans = -3-5 Objekter i A større eller lik 0 >> A(A>=0) ans = 1 0 5 9 8

Radvektor og kolonnevektor, Når vi definerer vektorer i MatLab blir de radvektorer Ønsker vi kolonnevektorer kan vi bruke en fnutt: >> A=[ 1 2 4 5] A = >> A ans = 1 2 4 5 1 2 4 5

Radvektor og kolonnevektor...eller vi kan bruke semikolon mellom objektene:, >> A = [1; 2; 4; 5] A = 1 2 4 5

Oppgave 1: Vektoroperasjoner, Lag en vektor som inneholder objektene: a) 2, 4, 6, 8, 10, 12 b) 10, 8, 6, 2, 0, -2, -4 c) 1, 1/2, 1/3, 1/4, 1/5 d) 0, 1/2, 2/3, 3/4, 4/5 e) 1, 3, 9, 27, 81, 243

Løsning oppgave 1, %Oppgave 1, %a) x=2:2:12 %b) x=10:-2:-4 %NB! Legg merke til bruk av parenteser i uttrykkene nedenfor!! %c) %flere maater man kan gjore det paa x=(1:5).^(-1) x=(ones(1,5))./(1:5) %d x=(0:4)./(1:5) %e) x=3.^(0:5)

Oppgave 2: Vektoroperasjoner, x = [2 12 5 3] a) Legg til 16 til hvert objekt i x b) Legg til 3 til objekter i x med odde indeksverdier

Løsning oppgave 2, %Losning oppgave2 x=[2 12 5 3] %a) x = x+16 %b) % her overskriver vi objektene med % odde indekser i x, med nye verdier x(1:2:end) = x(1:2:end)+3

Oppgave 3: Vektoroperasjoner x = [3 2 6 8] og y = [4 1 3 5], a) Legg til summen av objektene i x til hvert objekt i y b) Opphøy hvert objekt i y med det tilsvarende objektet i x c) Del hvert objekt i y med det tilsvarende objektet i x d) Multipliser hvert objekt i x med det tilsvarende objektet i y. Kall resultatet z e) Lag en variabel w som er summen av objektene i z

Løsning oppgave 3, %Oppgave 3, x=[3 2 6 8]; y=[4 1 3 5]; %a) y+sum(x) %b) y.^x %c) y./x %d) z = x.*y %eller: z = y.*x %e) w = sum(x)

Oppgave 4: Summasjon, Oppgave: Bruk vektoroperasjoner til å legge sammen a) alle heltall mellom 0 og 10 (dvs. 1+2+3...+10) b) hvert femte heltall mellom 0 og 20 (dvs. 0+5+10+15+20)

Løsning oppgave 4, >> %Oppgave 4, >> %a) >> sum(1:10) ans = 55 >> %b) >> sum(0:5:20) ans = 50

Oppgave 5: Fakultet n! Fakultet er en funksjon som beregner produktet av de naturlige tallene fra 1 til n. Fakultet skrives n!, n! = 1 2 3... n Eksempel: 5! = 1 2 3 4 5 = 120 Bruk vektoroperasjoner til å regne ut a) 4! b) 8!

Løsning oppgave 5, >> %Oppgave 5, >> %a) >> prod(1:4) ans = 24 >> %b) >> prod(1:8) ans = 40320

Oppgave 6: Bakteriepopulasjon, La oss gjøre oppgave 1 fra m-fil kapittelet en gang til. Denne gangen løser vi oppgaven v.h.a. vektoroperasjoner Veksten til en gitt bakteriepopulasjon, P, er gitt ved P(t) = P 0 e kt P 0 er populasjonen ved t=0 og er lik 120 bakterier k er en vekstrate og er lik 0.04s 1 Hvor stor er bakteriepopulasjonen de 15 første sekundene? (dvs. de 15 første P-verdiene P(1), P(,...,P(15)) Skriv ut verdien til t og P(t) for hver t til skjerm (i kommandovinduet)

Løsning oppgave 6, %Oppgave 6, P0=120; %populasjon ved t=0 k=0.04; %vekstrate [m/s] t=1:15; %de 15 forste sekundene [s] %legg merke til punktum! P=P0.*exp(k.*t); %bruker for aa faa kolonnevektorer disp([t,p ])

Oppgave 7: Bakteriepopulasjon 2, Veksten til bakteriepopulasjonen vår, P, er gitt ved P(t) = P 0 e kt La oss anta at vi har en til bakteriepopulasjon, B, som er avhengig av P B(t) = B 0 e lt 1 2 P(t) B 0 er populasjonen ved t=0 og er lik 200 bakterier l er en vekstrate og er lik 0.06s 1 Bruk vektoroperasjoner til å regne ut hvordan populasjon B utvikler seg de 15 første sekundene. Skriv ut verdien til t, P(t) og B(t) til skjerm.

Løsning oppgave 7, %Oppgave 7, P0=120; %populasjon ved t=0 k=0.04; %vekstrate [m/s] B0=200; %populasjon ved t=0 l=0.06; %vekstrate [m/s] t=1:15; %de 15 forste sekundene [s] %legg merke til punktum! P=P0.*exp(k.*t); B=B0.*exp(l.*t)-0.5.*P; %bruker for aa faa kolonnevektorer disp([t,p,b ])

Litt repetisjon: gjør det mulig å repetere en programsekvens veldig mange ganger, Enkel for-løkke for i=start:step:stopp kommando(er) end Sist uke: for-løkker med objekter Denne uken: for-løkker med vektorer

Det enkleste for-løkke eksempelet, T = [2 6 15 7 900]; for i=1:length(t) T(i) end I dette eksempelet er det for-løkkevariabelen i som angir indeksverdien For-løkka løper gjennom alle indeksverdiene og skriver hvert objekt i vektoren T til skjerm (i kommandovinduet)

: Det første eksempelet en gang til, La oss gå tilbake til for-løkka i det første eksempelet sist uke Her konverterer vi temperaturer fra Celcius til Fahrenheit: % Konverterer temperaturer fra Celcius til Fahrenheit for C=0:10 F=9/5*C+32; disp([c,f]) end Vi overskriver verdien til F hver gang vi gjennomløper for-løkka Når for-løkka er ferdig lest er C=10 og F=50

: Det første eksempelet en gang til, Hvis vi istedenfor vil spare på alle C og F verdiene i vektorer skriver vi % Konverterer temperaturer fra Celcius til Fahrenheit C=0:10; for i=1:length(c) F(i)=9/5*C(i)+32; end % bruker for aa skrive C og F som kolonnevektorer disp([c,f ]) Vi definerer C-verdiene før for-løkka For-løkkevariabelen i brukes til å indeksere vektorene

, vektorer og indeksering Hvis vi vil regne ut f(x)=x 2 for x [1 100], % regner ut f(x)=x^2 for x=1:100 f(x)=x^2; end %bruker fnutt for aa skrive ut som kolonnevektorer disp([f ])

, vektorer og indeksering, % regner ut f(x)=x^2 for x=1:100 f(x)=x^2; end %bruker fnutt for aa skrive ut som kolonnevektorer disp([f ]) Siden vi kun har brukt heltallsverdier for x kan vi bruke x som både indeks og i funksjonsuttrykket Legg merke til at vi ikke trenger punktum når vi regner ut x 2. x har kun en tallverdi i hvert gjennomløp av for-løkka Vi kan ikke skrive ut x-verdiene når løkka er ferdig. Da er x=100 og er ikke en vektor!

, vektorer og indeksering Regn ut f(n)=sin(nπ/10) for n [1 10], For-løkkevariabelen brukes både som indeks og i funksjonuttrykket for n = 1:10 f(n)=sin(n*pi/10); end

, vektorer og indeksering, Hva skjer om vi skriver: for n = 1:10 f(n)=sin(n*pi/10); n=10; end Ingenting endres! For-løkkevariabelen overskrives i slutten av for-løkka, men den overskrives på nytt igjen hver gang vi gjennomløper for-løkka

, vektorer og indeksering, Hva skjer om vi skriver: for n = 1:10 n=10; f(n)=sin(n*pi/10); end Alt endres! For-løkkevariabelen overskrives inne i løkka. Selv om vi henter en ny n-verdi hver gang vi gjennomløper for-løkka på nytt, overskriver vi verdien til n før vi bruker den som indeks og i funksjonsuttrykket. Regner ut f(10) ti ganger! De 9 første f-verdiene settes automatisk lik 0 av MatLab.

Indeksverdiene må være heltall og større enn null, Til nå har vi brukt for-løkke variabelen både som indeks og i utrykket vi regner på. Dette kan vi ikke alltid gjøre Si at vi skal regne ut funksjonen f(x)=e x, for mange x-verdier der x [-1 1] Indeksene til vektoren f kan ikke ha samme verdi som x, siden indeksene må være heltall og større enn 0 Enten... i=1; for x=-1:0.01:1 f(i)=exp(x); i=i+1; end %bare f er en vektor disp(f ) eller x=linspace(-1,1,100); for i=1:length(x) f(i)=exp(x(i)); end %baade x og f er vektorer disp([x,f ])

Oppgave 1, x = [1 3 5 7 9] Bruk en for-løkke til å lage en vektor y som inneholder objektene i x, bare i motsatt rekkefølge dvs. y = [9 7 5 3 1]

Løsning oppgave 1 x=[1 3 5 7 9]; for i=1:length(x) y(i)=x(end+1-i); end,

Oppgave 2: PI, Skriv et MatLab-program som tilnærmer verdien til π ved å beregne summen π 4 m k=0 ( 1) k 2k + 1 a) beregn summen v.h.a. en for-løkke for m=10, m=100 og m=1000 b) beregn summen v.h.a. vektorer og vektorkommandoer for m=10, m=100 og m=1000 For hver beregning, kalkuler forskjellen mellom π-verdien i MatLab og verdien du får Hint: IKKE overskriv MatLabs pi!!

Løsning oppgave PI, %Ved bruk av for-lokke: clear all; pi_approx=0; m=10; for k=0:m pi_approx=pi_approx+(-1)^k/(2*k+1); end pi_approx=4.*pi_approx; disp([m, pi-pi_approx]) %ved bruk av vektoroperasjoner clear all; m=10; k=0:m; pi_approx=4.*sum(((-1).^k./(2*k+1))); disp([m, pi-pi_approx])

Oppgave 3: Kumulativ sum, Med kumulativ mener man at man samler opp. Har man en vektor x=[2 4 6 8], er den kumulative summen [2 6 12 20] Det første tallet i den kumulative summen likt det første tallet i x. Det andre tallet i den kumulative summen er summen av de 2 første tallene i x. Den tredje tallet, er summen av de 3 første tallene i x og det siste tallet i den kumulative summene er summen av alle tallene i x. Bruk en for-løkke til å regne ut den kumulative summen av en vektor du selv definerer i begynnelsen av programmet ditt Bruk MatLab-metoden cumsum() for å kontrollere om svaret ditt er riktig

Oppgave 4: Fibonacci, Fibonacci-tallene er en tallfølge der hvert tall er summen av de to foregående tallene i følgen: 0, 1, 1, 2, 3, 5, 8, 13, 21,...osv Lag en for-løkke der du regner ut de 10 første Fibonacci-tallene i Fibonacci-tallfølgen og legger dem i en vektor du kaller Fib. Du skal definere de to første tallene i Fibonacci-følgen (det er 0 og 1) utenfor løkka og regne ut de 8 neste tallene i Fibonacci-tallfølgen i for-løkka. Skriv tallene i vektoren Fib til skjerm

Oppgave 5: Enda mer Fibonacci, Fibonacci-tallene er en tallfølge der hvert tall er summen av de to foregående tallene i følgen: 0, 1, 1, 2, 3, 5, 8, 13, 21,...osv For de 50 første Fibonacci-tallene, F n, beregn forholdet F n F n 1 Det sies at forholdet går mot det gyldne snitt ; 1+ 5 2. Hva synes du?