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

Like dokumenter
Matematikk Øvingsoppgaver i numerikk leksjon 1. Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 1. Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 1 Løsningsforslag

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

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

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

MATLABs brukergrensesnitt

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

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

Start MATLAB. Start NUnet Applications Statistical and Computational packages MATLAB Release 13 MATLAB 6.5

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 4 Løsningsforslag

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

Løsningsforslag. Innlevering i BYFE/EMFE 1000 Oppgavesett 1 Innleveringsfrist: 14. september klokka 14:00 Antall oppgaver: 3.

UNIVERSITETET I OSLO

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

Tall, vektorer og matriser

Høgskolen i Oslo og Akershus. x 1 +3x 2 +11x 3 = 6 2x 2 +8x 3 = 4 18x 1 +5x 2 +62x 3 = 40

Programmering i R. 6. mars 2004

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Slope-Intercept Formula

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

En innføring i MATLAB for STK1100

Moving Objects. We need to move our objects in 3D space.

Kapittel 1 En oversikt over C-språket

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver uke 37 og 38

Øvingsforelesning TDT4105 Matlab

Matematikk Øvingsoppgaver i numerikk leksjon 6. Løsningsforslag

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Et lite oppdrag i bakgrunnen

Høgskolen i Oslo og Akershus. i=1

Matematikk Øvingsoppgaver i numerikk leksjon 7 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

TMA4329 Intro til vitensk. beregn. V2017

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

Løsningsforslag B = 1 3 A + B, AB, BA, AB BA, B 2, B 3 C + D, CD, DC, AC, CB. det(a), det(b)

7) Radix-sortering sekvensielt kode og effekten av cache

Avdeling for lærerutdanning. Lineær algebra. for allmennlærerutdanningen. Inger Christin Borge

Notat 2, ST Sammensatte uttrykk. 27. januar 2006

Øving 2 Matrisealgebra

18. (og 19.) september 2012

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

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

Dynamic Programming Longest Common Subsequence. Class 27

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

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

Hvor mye praktisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

LISP PVV-kurs 25. oktober 2012

UNIVERSITETET I OSLO

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag

MA2501 Numerical methods

1 User guide for the uioletter package

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Hydrostatikk/Stabilitet enkle fall

Introduksjon til Matlab. Håvard Berland

Neural Network. Sensors Sorter

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

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

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

ITGK - H2010, Matlab. Repetisjon

Databases 1. Extended Relational Algebra

Lynkurs i shellprogrammering under Linux

UNIVERSITETET I OSLO

Information search for the research protocol in IIC/IID

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Homogene lineære ligningssystem, Matriseoperasjoner

Ma Linær Algebra og Geometri Øving 1

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor.

MATLAB - Flere laster om bord og automatisering fribordsberegning med if else

buildingsmart Norge seminar Gardermoen 2. september 2010 IFD sett i sammenheng med BIM og varedata

Gradient. Masahiro Yamamoto. last update on February 29, 2012 (1) (2) (3) (4) (5)

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

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver veke 14

OPPGAVEHEFTE I STK1000 TIL KAPITTEL 5 OG 6. a b

Matematikk Øvingsoppgaver i numerikk leksjon 3. Løsningsforslag

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

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Læringsmål og pensum. Oversikt

5 E Lesson: Solving Monohybrid Punnett Squares with Coding

Maple Basics. K. Cooper

BEGYNNERKURS I SPSS. Anne Schad Bergsaker 17. november 2017

Endringer i neste revisjon av EHF / Changes in the next revision of EHF 1. October 2015

Bioberegninger, ST november 2006 Kl. 913 Hjelpemidler: Alle trykte og skrevne hjelpemidler, lommeregner.

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene

Matematikk Øvingsoppgaver i numerikk leksjon 2 Funksjoner og plotting

Transkript:

BYFE/EMFE 1000, 2012/2013 Numerikkoppgaver uke 33 Oppgave 2 Litt aritmetikk a) Her har vi skrevet ut det som kommer opp i Octave-vinduet når vi utfører operasjonene. octave-3.2.4.exe:9> 2+2 4 octave-3.2.4.exe:10> 3-2 1 octave-3.2.4.exe:11> 3*2 6 octave-3.2.4.exe:12> 6^2 36 octave-3.2.4.exe:13> 6/2 3 Vi kan gjerne utføre kompliserte og styggere utregninger også: octave-3.2.4.exe:14> 3^2.12*(2+4*(-3.1))/(2^2-1) -35.597 b) octave-3.2.4.exe:23> 1/0 warning: division by zero Inf octave-3.2.4.exe:24> 0^0 1 octave-3.2.4.exe:25> 5/Inf 0 octave-3.2.4.exe:26> 0*Inf NaN octave-3.2.4.exe:27> Inf/Inf NaN octave-3.2.4.exe:28> 10^999 Inf octave-3.2.4.exe:29> 1.2e4 12000 1

octave-3.2.4.exe:30> NaN+1 NaN Vi ser at Octave tolker 1/0 som uendelig. Matematisk gir ikke uttrykket 1/0 noen mening. Vi kan si noe om hva 1/x næremer seg når x næremer seg 0, men utrykket kan like gjerne gå mot minus uendelig som uendelig. Hvilken verdi vi skal gi til 0 0 er et denisjonsspørsmål; man kan både argumentere for at det skal være 0 og for at det skal være 1. Octave har tydeligvis valgt den siste varianten. At 5/Inf blir gitt verdien 0, virker jo rimelig; selv om 5/ ikke er denert, vil 5 delt på et veldig stort tall bli et veldig lite tall. Det virker også rimelig at hverken 0 eller / blir gitt noen verdi; disse uttrykken gir ikke mening matematisk. Derimot er det ikke rimelig å si at 10 999 er det samme som uendelig. Men det sier seg selv at der må være en øvre grense for hvor store tall datamaskninen kan regne med. At et udenert tall pluss én forblir et udenert tall er i grunn ganske opplagt. c) octave-3.2.4.exe:31> pi 3.1416 octave-3.2.4.exe:32> e 2.7183 octave-3.2.4.exe:33> i 0 + 1i octave-3.2.4.exe:34> eps 2.2204e-016 Det bør her legges til at Octave opererer med en langt mer nøyaktig verdi av π enn det antall desimaler tilsier her (og tilsvarende for Eulers tall e). Bare et visst antall desimaler blir skrevet til skjermen. Vi kan endre formatet til det som skrives til skjer. Om vi gjør det, kan vi få opp ere desimaler: octave-3.2.4.exe:94> format long octave-3.2.4.exe:95> pi 3.14159265358979 Oppgave 3 Tilordning a) Slik vil det se ut når vi sier at variabelen x skal ha verdien 7: octave-3.2.4.exe:37> x=7 x = 7 Merk at vi nå i tillegg til selve tilordninga også har sagt at der skal vere ein variabel som heiter x. Vi seier at vi har initiert variabelen. Resultatene av reknestykkene blir: 2

octave-3.2.4.exe:101> x=7 x = 7 octave-3.2.4.exe:102> x*2 14 octave-3.2.4.exe:103> x^2 49 octave-3.2.4.exe:104> y=2 y = 2 octave-3.2.4.exe:105> x/y 3.5000 Dette skjer om vi skriver 'who': octave-3.2.4.exe:55> who Variables in the current scope: ans x y b) Symbolet '=' betyr ikke helt det samme i Octave-sammenheng som det gjør i matematisk notasjon; her er likhetstegnet brukt som tilordning; altså for å gi en variabel en verdi. Derfor vil følgende gi mening i Octave: octave-3.2.4.exe:58> x=2 x = 2 octave-3.2.4.exe:59> x=x+1 x = 3 Vi ser at den siste kommandoen la én til variabelen x og tilordna svaret tilbake til x; den gamle x var 2 og den nye x ble 3. Matematisk er den siste linja meningsløs siden den gir at 0 = 1 om vi forsøker å løse den som en ligning. Om vi ønsker å uttrykke likhet, ikke tilordning, i Octave, skriver vi '==' - altså et dobbelt likhetstegn. Dette skal vi komme tilbake til senere. c) octave-3.2.4.exe:61> e 2.7183 octave-3.2.4.exe:62> e=10 e = 10 Vi ser at e, som hadde verdien av Eulers tall, nå har fått verdien 10. Tilsvarende skjer også med pi og i. Vi ser at våre tilordninger overstyrer de som Octave måtte ha fra før. 3

Oppgave 4 Vektorer a) Variablene i Octave kan være tall, vektorer eller matriser. Vi kan for eksempel gi vektoren x = [1, 0, 3] på denne måten: octave-3.2.4.exe:63> x=[1, 0, -3] x = 1 0-3 octave-3.2.4.exe:64> x(2) 0 Vi ser at om vi avslutter en kommandolinje med semikolon, vil ikke noe bli skrevet til skjerm. Det betyr ikke at kommandoen ikke har blitt utført. b) octave-3.2.4.exe:65> x^2 error: for A^b, A must be square Vi ser at Octave nekter å regne ut x 2. Og det er ikke så rart; operasjonen er ikke denert. Octave tolker det som en matrise-opersjon, og gitt at x er en vektor, er ikke dette en meningsful multiplikasjon. Om vi tar med punktum foran potens-sybolet, derimot, tolker Octave det som at man skal kvadrere elementvis: octave-3.2.4.exe:66> x.^2 1 0 9 c) 1:5 gir som svar 1 2 3 4 5. Tilsvarende kan heltallene fra og med -3 til og med 3 skrives slik: -3:3. En vektor bestående av tallene 0, 0.25, 0.5,..., 1.75, 2 kan uttrykkes slik: 0:.25:2 (.25 betyr det samme som 0.25). d) Vektoren y kan tilordnes slik: octave-3.2.4.exe:70> y=2:2:10 y = 2 4 6 8 10 Kommandoen fliplr vil snu rekkefølgen elementene kommer i: octave-3.2.4.exe:71> fliplr(y) 10 8 6 4 2 4

help-funksjonen er som sagt nyttig. Den forklarer hva en Octave-funksjon gjør gjerne også med bruk av eksempler. Den angir også andre funskjoner som ligner. For fliplr får vi opp dette: `fliplr' is a function from the file C:\Octave\3.2.4_gcc-4.4.0\share\octave\3.2. 4\m\general\fliplr.m -- Function File: fliplr (X) Return a copy of X with the order of the columns reversed. example, For fliplr ([1, 2; 3, 4]) => 2 1 4 3 Note that `fliplr' only work with 2-D arrays. use `flipdim' instead. To flip N-d arrays See also: flipud, flipdim, rot90, rotdim Additional help for built-in functions and operators is available in the on-line version of the manual. Use the command `doc <topic>' to search the manual index. Help and information about Octave is also available on the WWW at http://www.octave.org and via the help@octave.org mailing list. lines 1-24/24 (END) -- (f)orward, (b)ack, (q)uit e) Tilordning: octave-3.2.4.exe:74> Vektor=[9 pi -2 100 8] Vektor = 9.0000 3.1416-2.0000 100.0000 8.0000 Sortering heter sort på engelsk. Så vi ser etter ei rutine som sorterer: octave-3.2.4.exe:75> lookfor sort sort issorted sortrows Tre tre. Vi forsøker å nne ut mer om sort-funksjonen. help sort gir: 5

`sort' is a built-in function -- Loadable Function: [S, I] = sort (X) -- Loadable Function: [S, I] = sort (X, DIM) -- Loadable Function: [S, I] = sort (X, MODE) -- Loadable Function: [S, I] = sort (X, DIM, MODE) Return a copy of X with the elements arranged in increasing order. For matrices, `sort' orders the elements in each column. For example, sort ([1, 2; 2, 3; 3, 1]) => 1 1 2 2 3 3 The `sort' function may also be used to produce a matrix containing the original row indices of the elements in the sorted matrix. For example, [s, i] = sort ([1, 2; 2, 3; 3, 1]) => s = 1 1 2 2 3 3 => i = 1 3 2 1 3 2 If the optional argument DIM is given, then the matrix is sorted along the dimension defined by DIM. The optional argument `mode' defines the order in which the values will be sorted. Valid values of `mode' are `ascend' or `descend'. For equal elements, the indices are such that the equal elements are listed in the order that appeared in the original list. The `sort' function may also be used to sort strings and cell arrays of strings, in which case the dictionary order of the strings is used. The algorithm used in `sort' is optimized for the sorting of partially ordered lists. Additional help for built-in functions and operators is available in the on-line version of the manual. Use the command `doc <topic>' to search the manual index. 6

Additional help for built-in functions and operators is available in the on-line version of the manual. Use the command `doc <topic>' to search the manual index. Help and information about Octave is also available on the WWW at http://www.octave.org and via the help@octave.org mailing list. lines 28-51/51 (END) -- (f)orward, (b)ack, (q)uit Vi kan gå fram på same måte for å nne ei summeringsrutine. Summere heiter sum på engelsk: octave-3.2.4.exe:78> lookfor sum cumsum sum sumsq md5sum spcumsum spsum spsumsq summer sum-funksjonen gjør jobben: octave-3.2.4.exe:87> sum(vektor) 118.14 Oppgave 5 Litt mer om multiplikasjon a) Vi kan for eksempel velge at Vek1 og Vek2 skal være slik: octave-3.2.4.exe:88> Vek1=5:(-1):3 Vek1 = 5 4 3 octave-3.2.4.exe:89> Vek2=[7, -3, 1] Vek2 = 7-3 1 b) Akkurat som i oppg. 4 b) får vi ei feilmelding når vi skriver Vek1*Vek2: octave-3.2.4.exe:3> Vek1*Vek2 error: operator *: nonconformant arguments (op1 is 1x3, op2 is 1x3) 7

Med punktum-skrivemåten, derimot, blir vektorene multiplisert elementvis: octave-3.2.4.exe:3> Vek1.*Vek2 35-12 3 c) Apostroen gjør at svaret du får ut, er den samme vektoren men som ei søyle i stedet for ei rekke: octave-3.2.4.exe:90> Vek1' 5 4 3 d) Vi får følgende resultat: octave-3.2.4.exe:91> Vek1*Vek2 error: operator *: nonconformant arguments (op1 is 1x3, op2 is 1x3) octave-3.2.4.exe:91> Vek1*Vek2' 26 octave-3.2.4.exe:92> Vek1'*Vek2 35-15 5 28-12 4 21-9 3 octave-3.2.4.exe:93> Vek1'*Vek2' error: operator *: nonconformant arguments (op1 is 3x1, op2 is 3x1) Svarene vi får her, blir forståelige når vi har lært om matrisemultiplikasjon. (Resultatet av mulitplikasjonen Vek1*Vek2' blir det velkjente skalarproduktet av vektorene, mens resultatet av multiplikasjonen Vek1'*Vek2 blir ei 3 3-matrise.) 8