Matematikk Øvingsoppgaver i numerikk leksjon 1. Løsningsforslag

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

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

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Matematikk Øvingsoppgaver i numerikk leksjon 4 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 6. Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

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

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

Matematikk Øvingsoppgaver i numerikk leksjon 2 Funksjoner og plotting

Matematikk Øvingsoppgaver i numerikk leksjon 7 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

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

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag

MATLABs brukergrensesnitt

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

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 3 Skript

Matematikk Øvingsoppgaver i numerikk leksjon 3. Løsningsforslag

Tall, vektorer og matriser

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

Matematikk Øvingsoppgaver i numerikk leksjon 9. Løsningsforslag

ITGK - H2010, Matlab. Repetisjon

Matematikk Øvingsoppgaver i numerikk leksjon 3 Funksjoner og plotting

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

En innføring i MATLAB for STK1100

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 3 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 11 Eulers metode. Løsningsforslag

Matematikk Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5 Litt oppsummering undervegs Løsningsforslag

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

Matematikk Øvingsoppgaver i numerikk leksjon 5. Løsningsforslag

UNIVERSITETET I OSLO

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Matematikk Øvingsoppgaver i numerikk leksjon 6. Løsningsforslag

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

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

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

Matematikk Øvingsoppgaver i numerikk leksjon 7. Løsningsforslag

Programmering i R. 6. mars 2004

18. (og 19.) september 2012

Løsningsforslag. Innlevering i BYFE 1000 Oppgavesett 1 Innleveringsfrist: 10. oktober klokka 14:00 Antall oppgaver: 6. Oppgave 1

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)

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

Løsningsforslag. Innlevering i BYFE/EMFE 1000 Oppgavesett 5 Innleveringsfrist: 15. april klokka 14:00 Antall oppgaver: 3.

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

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

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

0.1 Kort introduksjon til komplekse tall

Høgskolen i Oslo og Akershus. i=1

wxmaxima Brukermanual for Matematikk 1T Bjørn Ove Thue

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

MAT1120 Plenumsregningen torsdag 26/8

Slope-Intercept Formula

TMA4329 Intro til vitensk. beregn. V2017

Innlevering i matematikk Obligatorisk innlevering nr. 4 Innleveringsfrist: 21. januar 2010 kl Antall oppgaver: 4.

Matematikk Øvingsoppgaver i numerikk leksjon 3 Funksjoner og plotting

Introduksjon til Matlab. Håvard Berland

Ma Linær Algebra og Geometri Øving 1

Notat 2, ST Sammensatte uttrykk. 27. januar 2006

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Eksamen i emnet Mat131 - Differensiallikningar I Onsdag 25. mai 2016, kl.

Øvingsforelesning TDT4105 Matlab

Matematikk Øvingsoppgaver i numerikk leksjon 8 Matriser. Løsningsforslag

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

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

START MED MATLAB. Når du starter Matlab, kommer du inn i kommandovinduet. Dersom du har versjon 6.1, ser du dette :

Oppsummering av Uke 3. MAT1030 Diskret matematikk. Binære tall. Oppsummering av Uke 3

Øving 2 Matrisealgebra

Øvingsforelesning i Matlab (TDT4105)

Matematikk Øvingsoppgaver i numerikk leksjon 8. Løsningsforslag

Øvingsforelesning i Matlab (TDT4105)

MAT-INF 1100: Obligatorisk oppgave 1

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

Kapittel 1 En oversikt over C-språket

UNIVERSITETET I OSLO

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

Oppsummering matematikkdel ECON 2200

Et lite oppdrag i bakgrunnen

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

Manual for wxmaxima tilpasset R1

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

UNIVERSITETET I OSLO

Notat 2, ST januar 2005

Matematikk Øvingsoppgaver i numerikk leksjon 7 Numerisk derivasjon

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

Matematikk 1 (TMA4100)

Reelle tall på datamaskin

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

Lær å bruke Microsoft Mathematics, Matematikk-tillegget i Word og WordMat. Av Sigbjørn Hals

Høgskolen i Oslo og Akershus. sin 2 x cos 2 x = 0, x [0, 2π) 1 cos 2 x cos 2 x = 0 2 cos 2 x = 1 cos 2 x =

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Løsningsforslag. og B =

Transkript:

Matematikk 1000 Øvingsoppgaver i numerikk leksjon 1 Løsningsforslag Oppgave 2 Litt aritmetikk a) Her har vi skrevet ut det som kommer opp i kommandovinduet når vi utfører operasjonene. > 2+2 4 > 3-2 1 > 3*2 6 > 6^2 36 > 6/2 3 Vi kan gjerne utføre kompliserte og styggere utregninger også: > 3^2.12*(2+4*(-3.1))/(2^2-1) -35.597 Vi får da ofte bruk for paranteser. b) I kommandovinduet får vi: > sin(0.7) 0.64422 > log(5) 1.6094 > sqrt(9) 3 > exp(1) 2.7183 > atan(2) 1.1071 1

`sin' er sinus-funksjonen, `log' er den naturlige logaritmen, ln x, `sqrt' er kvadratrotfuksjonen, `exp' er eksponentialfunksjonen, e x, og `atan', er den inverse tangensfunksjonen, arctan x. Legg merke til at argumentet skal stå i en parantes, og at desimaltall blir angitt med punktum ikke komma. c) Vi forsøker å regne ut disse uttrykkene i MATLAB: > 1/0 warning: division by zero Inf Her blir vi advart mot å gjøre en ting vi vet vi ikke har lov til å gjøre i matematikk: Å dele på 0. Vi ser også at MATLAB velger å gi `uendelig' som svar. > 0^0 1 Her har også MATLAB gjort en `tolkning' som kan diskuteres. I matematikk kan man både argumentere for at 0 0 er 1 siden x 0 er èn for alle andre verdier av x. Men man kan også argumentere for at det er 0, siden 0 x = 0 for alle andre verdier av x enn 0. Vi ser at MATLAB har valgt den første tolkningen. > 5/Inf 0 Dette virker vel rimelig, gjør det ikke? Det gjør i alle fall det om vi tolker 5/Inf som grenseverdien lim x 5/x. > 0*Inf NaN > Inf/Inf NaN Det virker også rimelig at hverken 0 eller / blir gitt noen verdi; disse uttrykken gir ikke mening matematisk. > 10^999 Inf Her blir en av de fundamentale forskjellene mellom numerisk og analytisk matematikk tydelig; selv om 10 999 er et veldig stort tall, er det slett ikke uendelig, slik MATLAB `påstår'. Men der er grenser for hvor store tall MATLAB er i stand til å håndtere; dette tallet var tydeligvis for stort. På tilsvarende måte er MATLAB også ute av stand til å forholde seg til uendelig små tall. Der nst et minste tall, ɛ, som er slik at tall mindre enn dette, blir regnet for 0 av MATLAB. 2

> 1.2e4 12000 Dette er måten vi skriver tall på normalform i MATLAB; `1.2e4' betyr altså 1.2 10 4. > NaN+1 NaN At et udenert tall pluss én forblir et udenert tall er vel i grunn ganske opplagt. d) > pi 3.1416 > i > eps 0 + 1i 2.2204e-016 Det bør her legges til at MATLAB opererer med en langt mer nøyaktige verdi av π enn det antall desimaler tilsier her. Bare et visst antall desimaler blir skrevet til skjermen. Vi kan velge å endre dette formatet. Hvis du vil ha ere desimaler, for eksempel, kan du skrive `> format long': > format long > pi 3.14159265358979 Man kan synes det er litt pussig at ikke Eulers tall, e, er tilordna til e fra før. Uansett er det ikke verre enn at man kan skrive `>e=exp(1)' for å ordne dette. Vi kan gå tilbake til det kortere formatet igjen ved å skrive `format short'. Oppgave 3 Tilordning a) Slik vil det se ut når vi sier at variabelen x skal ha verdien 7: > x=7 x = 7 Merk at vi nå i tillegg til selve tilordninga også har sagt at der skal være ein variabel som heter x. Vi sier at vi har initiert variabelen. Resultatene av reknestykkene blir: 3

> x=7 x = 7 > x*2 14 > x^2 49 > y=2 y = 2 > x/y 3.5000 Dersom det skulle bli litt mange variable å holde styr på, kan man fjærne variable med kommandoen clear; for eksempel kan man slette y ved å skrive `>clear y'. Om man vil renske tavla helt, gjør man det ved å skrive `>clear all'. b) Symbolet '=' betyr ikke helt det samme i MATLAB-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 MATLAB: > x=2 x = 2 > 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 x = x + 1 x x = 1 0 = 1. Om vi ønsker å uttrykke likhet, ikke tilordning, i MATLAB, skriver vi `==' altså et dobbelt likhetstegn. Dette skal vi komme tilbake til senere. c) Vi tilordner i kommandovinduet: > pi 3.1416 > pi=10 pi = 10 Vi ser at pi, som var π, nå har fått verdien 10. Tilsvarende skjer også med i. Vi ser at våre tilordninger overstyrer de som MATLAB måtte ha fra før. Dette gjelder også om vi gir variable navn på funksjoner som MATLAB har innebygd. Dette skal vi komme tilbake til. 4

Oppgave 4 Vektorer a) Variablene i MATLAB kan være tall, vektorer eller matriser. Vi kan for eksempel gi vektoren x = [1, 0, 3] på denne måten: > x=[1, 0, -3, 7] x = 1 0-3 7 > x(2) 0 x(2) gir altså den andre komponenten i vektoren x. Tilsvarende gir `textttx(end)' den siste komponenten i x: > x(end) 7 Vi kan også referere til ere komponenter samtidig: > x(1:3) 1 0-3 > x(3:end) -3 7 Om vi avslutter ei kommandolinje med semikolon, vil ikke noe bli skrevet til skjerm. Det betyr ikke at kommandoen ikke har blitt utført. Det har blitt gjort, vi bare slipper å se resultatet. Om vi for eksempel skriver >y=2+3; så har faktisk variabelen y blitt 5 selv om det ikke har blitt skrevet til skjerm. b) Vi får: > x^2 Error using ^ Inputs must be a scalar and a square matrix. To compute elementwise POWER, use POWER (.^) instead. 5

Vi ser at MATLAB nekter å regne ut x 2. Og det er ikke så rart; operasjonen er ikke veldenert matematisk. Retnok har vi denert skalarprodukter for vektorer, men det blir noe annet. MATLAB tolker multiplikasjonstenget `*' det som en matrise-multiplikajson, og gitt at x er en vektor, er ikke multiplikasjonen vi ba MATLAB utføre, en meningsful operasjon. Om vi tar med punktum foran potens-sybolet, derimot, blir det tolket som at man skal kvadrere elementvis: > x.^2 1 0 9 Vi får altså vektoren der hvert element blir kvadrert, [x(1) 2 x(2) 2 x(3) 2 ], til svar. 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: > y=2:2:10 y = 2 4 6 8 10 Kommandoen length brukes for å nne ut hvor lang en vektor er altså hvor mange elementer den har: > length(y) 5 y har altså 5 elementer. Kommandoen fliplr vil snu rekkefølgen elementene kommer i: > fliplr(y) 10 8 6 4 2 Om vi søker opp dokumentasjon for fliplr-funksjonen, får vi opp dette: fliplr Flip matrix left to right expand all in page Syntax 6

B = fliplr(a) Description B = fliplr(a) returns A with columns flipped in the left-right direction, that is, about a vertical axis. If A is a row vector, then fliplr(a) returns a vector of the same length with the order of its elements reversed. If A is a column vector, then fliplr(a) simply returns A. Examples If A is the 3-by-2 matrix, A = 1 4 2 5 3 6 then fliplr(a) produces 4 1 5 2 6 3 If A is a row vector, A = 1 3 5 7 9 then fliplr(a) produces 9 7 5 3 1 Limitations The array being operated on cannot have more than two dimensions. This limitation exists because the axis upon which to flip a multidimensional array would be undefined. See Also flipdim flipud rot90 -Grundig dokumentasjon, altså med både eksempler og henvisninger til andre lignende funksjoner. e) Tilordning: 7

> Vektor=[9 pi -2 100 8] Vektor = 9.0000 3.1416-2.0000 100.0000 8.0000 Sortering heter sort på engelsk. Om vi søker på dette, nner vi fort at der er en rutine som heter sort. Vi kan også lese om hvordan den fungerer. Vi nner nok fort ut at den gjør det vi ønsker: > sort(vektor) -2.0000 3.1416 8.0000 9.0000 100.0000 Jo, så menn, tallene kom i stigende rekkefølge! Denne skrivemåten, navnet på funksjonen etterfulgt av det som vi skal utføre funksjonen på i parantes, er ganske gjennomgående i MATLAB. Vi kan gå fram på same måte for å nne en summeringsfunksjon. Vi nner fort ut at fuksjonen `sum' gjør jobben: > sum(vektor) 118.14 Det er ikke meninga at vi skal pugge navnet på en masse funksjoner i MATLAB. Men det er en klar fordel å lære seg å lete etter de funksjonene vi kunne ha bruk for eller nytte av. Men generelt er det ganske få funksjoner vi vil ha direkte bruk for i dette kurset. 8