Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

Relevanta dokument
Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 13:e januari klockan

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 18:e augusti klockan

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

TANA17 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

TANA17 Matematiska beräkningar med Matlab

TANA81: Simuleringar med Matlab

TANA17 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Introduktion till MATLAB

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

TAIU07 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

2 februari 2016 Sida 1 / 23

Laboration: Grunderna i MATLAB

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 20 november 2015 Sida 1 / 30

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Tillämpning: Bildinterpolation. Ekvationslösning. Integraler. Tillämpning: En båt. Räkning med polynom. Projekt. Tentamensinformation.

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

Demonstration av laboration 2, SF1901

Introduktion till Matlab

TANA17 Matematiska beräkningar med Matlab

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

MMA132: Laboration 1 Introduktion till MATLAB

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

TMV225 Inledande Matematik M

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Mer om funktioner och grafik i Matlab

MMA132: Laboration 1 & 2 Introduktion till MATLAB

(a) Skriv en matlabsekvens som genererar en liknande figur som den ovan.

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Labb 3: Ekvationslösning med Matlab (v2)

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 4 december 2015 Sida 1 / 26

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Introduktion till Matlab

Mer om funktioner och grafik i Matlab

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 8 december 2015 Sida 1 / 22

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1

Laborationstillfälle 1 Lite mer om Matlab och matematik

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Miniprojektuppgift i TSRT04: Femtal i Yatzy

Matlabövning 1 Funktioner och grafer i Matlab

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

15 februari 2016 Sida 1 / 32

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

Lösningsförslag till inlämningsuppgift 3 i Beräkningsprogrammering Problem 1) function condtest format compact format long

Matlabövning 1 Funktioner och grafer i Matlab

MMA132: Laboration 2 Matriser i MATLAB

Newtons metod. 1 Inledning. CTH/GU LABORATION 3 MVE /2014 Matematiska vetenskaper

Lösningsförslag Tentamen i Beräkningsvetenskap I, 5.0 hp,

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Grundläggande kommandon

Beräkningsverktyg HT07

Instruktion för laboration 1

Datorövning 1 Fördelningar

MATLAB handbok Introduktion

Lab 1, Funktioner, funktionsfiler och grafer.

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random

En introduktion till MatLab

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

TMV156/TMV155E Inledande matematik E, 2009

Newtons metod. 1 Inledning. 2 Newtons metod. CTH/GU LABORATION 6 MVE /2013 Matematiska vetenskaper

Förkortning och förlängning av rationella uttryck (s. 29 Origo 3b)

1 Förberedelser. 2 Att starta MATLAB, användning av befintliga m-filer. 3 Geometriskt fördelad avkomma

Introduktion till Matlab

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

% Föreläsning 4 22/2. clear hold off. % Vi repeterar en liten del av förra föreläsningen:

Matlab övningsuppgifter

S n = (b) Med hjälp av deluppgift (a) beräkna S n. 1 x < 2x 1? i i. och

Börja programmera. Kapitel 4 i kompendiet Jämförande uttryck Villkorssatser Loopar (slingor) Funktioner. Läs inte avsnitt 4.2.3

Ickelinjära ekvationer

Introduktion till Matlab

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

Introduktion till Matlab

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

Transkript:

MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan 8.00-12.00 Redovisning Lös först uppgifterna i Matlab. Då du har en färdig lösning skriv ner de kommandon du använde på papper. Redovisa även eventuella resultat du fick då du körde dina Matlabkommadon. Grafer behöver inte redovisas. (2p) 1: Använd kolon-notation för att skapa en vektor som innehåller talen1,2,3,...,9,100. Använd sedan elementvisa operationer och kommandot sum för att beräkna summan 100 S = 3k 5 k. k=1 (2p) 2: Vi vill hitta ett polynom med nollställen x 1 = 1, x 2 = 1.7, x 3 = 2.9 och x 4 = 3.6. Ett sätt är att hitta ett polynom som interpolerar följande tabell x 0.0 1.0 1.7 2.9 3.6 y 1.0 0.0 0.0 0.0 0.0 Använd polyfit för att hitta polynomet. Tänk på att det är viktigt att välja precis rätt gradtal på polynomet. Plotta dessutom polynomet på intervallet på intervallet 0 x 4 som en blå heldragen linje. Fick polynomet rätt nollställen? (2p) 3: Utnyttja for loopar för att skapa en m n matris med elementen a ij = 1/(1+ i j 2 ). Redovisa matrisen för fallet n = m = 3. (2p) 4: Ett lokalt maximum definieras av att x i 1 < x i > x i+1. Följande kommandon är tänkta att kontrollera om en vektor har ett lokalt maximum: for i=2:length(x)-1 if x(i)>x(i-1) & x(i)>x(i+1) Lokalt=1; else Lokalt=0; Förklara vad som går fel och gör de ändringar som krävs för att programmet skall fungera som det är tänkt.

(2p) 5: Vi vill studera funktionen f(x) = e x/5 cos(4x), på intervallet 0 x 1, och undersöka var dess minimum inträffar. a) Skapa en vektor x som innehåller N = 50 jämnt utspridda tal på intervallet [0, 1]. Beräkna även en vektor f med motsvarande funktionsvärden och utnyttja dessa vektorer för att plotta funktionen på aktuellt intervall. b) Använd Matlabkommandot min för att hitta det minsta värdet i vektorn f. Detta approximerar funktionens minsta värde på intervallet. Hitta även det x-värde där funktionen antar sitt minsta värde. c) Markera punkten (x min,f min ) du hittat i b) uppgiften i den graf du ritat upp i a) uppgiften med ett rött +. (2p) 6 En rot till ekvationen f(x) = xsin(x) 1 = 0 kan hittas genom att beräkna gränsvärdet för talföljden, { x0 = 1, x n = x 2 n 1 cos(x n 1)+1 sin(x n 1 )+x n 1 cos(x n 1 ), n = 1,2,3... Skriv ett program som beräknar talföljdens gränsvärde. Du skall fortsätta att bilda nya tal x n ända tills avbrottskriteriet x n x n 1 < 10 8 är uppfyllt. Vi vill även studera konvergenshastigheten. Ditt program skall därför skriva en tabell innehållande iterationsnummer n, x n, samt skillnaden x n x n 1 till skärmen. Utskriften skall göras enligt följande mönster: n x(n) x(n)-x(n-1) ----------------------------------- 1 1.1147287 1.15e-01 2 1.1141571-5.72e-04 3 1.1141571 1.40e-08 (2p) 7: Vi vill hitta ett tal a sådant att Gör följande: f(a) = a 0 1+cos(x) 1+ x dx = 4 a) Skriv en Matlab funktion IntegralFunktion, med inparameter a, som beräknar utparametern g(a) = f(a) 4. Du skall använda Matlabfunktionen integral för att beräkna integralens värde f(a) för ett givet a. b) Använd fzero för att hitta den positiva roten till ekvationen g(a)=f(a) 4=0. Roten bör ligga omkring a 10. 2

(3p) 8: I ett tärningsspel skall vi slå tärningar ända tills totalsumman blir större än eller lika med 20. Speciellt för detta spel är att om vi slår en sexa får vi slå en extra tärning under den omgången. Slår vi då ytterligare en sexa får vi slå om igen, och så vidare. Skriv ett Matlabscript som simulerar en spelomgång och använder randi eller rand för att simulera tärningskast ända tills total summan blivit åtminstone 20. Programmet skall göra utskrifter enligt mönstret Kast 1 gav 1 Kast 2 gav 3 Kast 3 gav 6(+6+4) Efter 3 kast har vi summan 20. Där alltså tredje kastet gav två sexor följt av en 4:a. Tips Det är klurigt att få till parenteserna vid upprepade sexor. Lös först uppgiften utan dessa. (3p) 9: Ofta används slumpmodeller för att simulera börskurser för företag. Ett exempel på en enkel modell är följande: Vid tiden t k är börskursen y k = t(t k ). Kursförändringar beskrivs med hjälp av slumptal. Börskursen vid tiden t k+1 beräknas enligt y k+1 = (1+α)y k +δ k, där α representerar den förväntade värdeökningen och δ k är ett likformigt fördelat slumptal i intervallet [ 1, 1] som representerar slumpmässiga variationer. Gör följande: a) Skriv en Matlab funktion EttSteg, med inparameter α och y k som beräknar y k+1 enligt beskrivningen ovan. Använd funktionen rand för att generera de slumptal du behöver. b) Låt tidsvariabeln t k betyda timmar. Skriv en funktion SimuleraKurs som simulerar börskursen under ett antal timmar. Inparametrar skall vara y 0, α, och antalet timmar T som simuleringen skall köras. Utparameter skall vara vektorer t och y med tider respektive börskurser. Redovisa ett exempel där start kursen är y 0 = 100, och där α = 2.7 10 3 så att kursen i genomsnitt ökar. Låt simuleringen pågå under 10 dagar. Plotta börskursen som funktion av tiden. Lägg även till lämplig text på koordinat axlarna i grafen. c) Det förväntade värdet på aktien efter 10 dagar bör vara (1+α) 10 24 y 0. Använd din funktion SimuleraKurs för att beräkna m = 1000 möjliga aktiekurser efter 10 dagar. Beräkna även det genomsnittliga värdet på aktien vid slutet av simuleringen och jämför med det teoretiska värdet. 3

Lösningsförslag till tentan för TANA17 Januari 2017. 1: Vi beräknar summans värde med kommandona >> k=1:100; >> S=sum( 3*k-5*sqrt(k) ) S = 1.1793e+04 2: Vi använder kommandona >> x=[0 1.0 1.7 2.9 3.6];y=[1 0 0 0 0 ]; >> p4 = polyfit(x,y,4); >> xx=0:0.1:4; >> plot( xx,polyval( p4, xx ), b- ) Vi ser att linjen ligger nära punkterna. 3: Bilda matrisen med m=3;n=3;a=zeros(m,n); for i=1:m for j=1:n A(i,j)=1/(1+abs(i-j)^2); A = 1.0000 0.5000 0.2000 0.5000 1.0000 0.5000 0.2000 0.5000 1.0000 4: Problemet är att ast sista kontrollen räknas. Enklaste lösningen är att avbryta då vi hittar ett lokalt maximum med break. Vi får for i=2:length(x)-1 if x(i)>x(i-1) & x(i)>x(i+1) Lokalt=1; break else Lokalt=0; Det finns flera alternativa lösningar som ger enklare kod. Exempelvis 4

Lokalt=0; for i=2:length(x)-1 if x(i)>x(i-1) & x(i)>x(i+1); Lokalt=1; break 5: Vi löser uppgiften med programmet N=50;x=linspace(0,1,N); f=exp(-x/5).*cos(4*x); plot(x,f, b- ); [m,k]=min(f); x(k),m hold on plot(x(k),m, r+ ) hold off Vi ser att minimum blir m = 0.8557 vilket antas för x 39 = 0.7755. 6: På filen hittarot.m skriver vi % Inför variabler x0 och x1 som representerar två på varandra % följande approximationer x0=-1;x1=1;n=0; % Med x0=-1 blir abvrottsvikkloret falskt tol=10^-8; fprintf(1, n x(n) x(n)-x(n-1)\n ); fprintf(1, -----------------------------------\n ); while abs(x0-x1)>tol % beränka nästa approximation x0=x1; x1=(x0^2*cos(x0)+1)/(sin(x0)+x0*cos(x0)); n=n+1; % Skriv ut en rad i tabellen fprintf(1, %i %9.7f %9.2e\n,n,x1,x1-x0); 7: Funktionen blir function [g]=integralfunktion( a ) f=integral(@(x) (1+cos(x))/(1+sqrt(x)), 0,a); g=f-4; Vi använder funktionen för att hitta roten med 5

a=fzero( @IntegralFunktion, 10 ) 8: Vi simulerar spelomgången med summa=0;k=0; while summa<20 k=k+1; slutparentes=0;startparentes=0; kast=randi([1 6],1); summa=summa+kast; str=[ Kast,num2str(k), gav,num2str(kast)]; while kast==6 slutparentes=1; if startparentes==0, str=[str, ( ];startparentes=1; ; kast=randi([1 6],1); summa=summa+kast; str=[str, +,num2str(kast)]; ; if slutparentes==1 str=[str, ) ]; ; disp(str) ; disp( [ Efter,num2str(k), kast har vi summan,num2str(summa)]); 9: Funktionerna blir function [y1]=ettsteg(y0,alpha) delta=-1+2*rand(1); y1=(1+alpha)*y0+delta; function [t,y]=simulerakurs( y0, alpha, T ); t=(0:t) ; % Hela timmar! y=zeros(size(t));y(1)=y0; for k=1:t y(k+1)=ettsteg( y(k), alpha ); Vi kör simuleringen en gång och plottar med 6

>> y0=100;t=24*10;alpha=2.7e-3; >> [t,y]=simulerakurs( 100, alpha, T ); >> plot(t,y) >> xlabel( Tid i timmar ); >> ylabel( Aktiekurs y(t) ); Vi beräknar medelvärdet efter 1000 simuleringar med m=1000;kurs=zeros(m,1); for i=1:m [t,y]=simulerakurs( 100, alpha, T ); kurs(i)=y(); mean(kurs) y0*(1+alpha)^(24*10) 7