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

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

TAIU07 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

TANA17 Matematiska beräkningar med Matlab

Introduktion till MATLAB

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

2 februari 2016 Sida 1 / 23

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 Hjälpmedel: MATLAB

TAIU07 Matematiska beräkningar med Matlab

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

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

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

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 för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

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

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

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

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

Matlabövning 1 Funktioner och grafer i Matlab

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

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

Beräkningsvetenskap föreläsning 2

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

Matlabövning 1 Funktioner och grafer i Matlab

Variabler och konstanter

TANA17 Matematiska beräkningar med Matlab

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

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

MMA132: Laboration 2 Matriser i MATLAB

Laboration: Grunderna i MATLAB

4.3. Programmering i MATLAB

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

Vetenskapsdagen 2016 SciLab för laborativa inslag i matematik eller fysik

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

TAIU07 Matematiska beräkningar med Matlab

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Planering av ett större program, del 2 - for och listor. Linda Mannila

Logik och kontrollstrukturer

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

TANA17 Matematiska beräkningar med Matlab

Föreläsning 3-4 Innehåll

Instruktion för laboration 1

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

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

Klassdeklaration. Metoddeklaration. Parameteröverföring

Uttryck och villkor. Föreläsning 2

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

TAIU07 Matematiska beräkningar med Matlab

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

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

En villkorssats är den konstruktion som finns i C++ för att göra en selektion av två alternativa sekvenser. Formen för if satsen är

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

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

2.4. Teckensträngar och logiska uttryck

15 februari 2016 Sida 1 / 32

Föreläsning 4. Val, boolska värden, läsbarhet, osv

Introduktion till Matlab

Anteckningar för kursen "Analys i en Variabel"

Uttryck och villkor. Föreläsning 2

Sanningar om programmering

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

TAIU07 Matematiska beräkningar med Matlab

Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor.

TANA81: Simuleringar med Matlab

Kort om programmering i Matlab

2D1339 Programkonstruktion för F1, ht 2003

Matriser och vektorer i Matlab

Matriser och vektorer i Matlab

TSBB14 Laboration: Intro till Matlab 1D

Data, typ, selektion, iteration

JavaScript del 3 If, Operatorer och Confirm

Språket Python - Del 1 Grundkurs i programmering med Python

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Oändligtdimensionella vektorrum

Beräkningsverktyg HT07

Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING

Talmängder N = {0,1,2,3,...} C = {a+bi : a,b R}

Objektorienterad programmering i Java

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

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

Föreläsning 3 Programmeringsteknik och Matlab DD1315. Importering av moduler. randrange

Instruktion för laboration 1

Programmering i C, 7,5 hp

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

KPP053, HT2016 MATLAB, Föreläsning 2. Vektorer Matriser Plotta i 2D Teckensträngar

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

For-sats/slinga. Notis

Föreläsning 9: NP-fullständighet

Matriser och Inbyggda funktioner i Matlab

Kort om programmering i Python

2.1 Mikromodul: stokastiska processer

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

Introduktion till Matlab

Föreläsning 9-10 Innehåll

Introduktion till Matlab

MATLAB. Vad är MATLAB? En kalkylator för linlär algebra. Ett programspråk liknande t.ex Java. Ett grafiskt verktyg.

Transkript:

TAIU07 Föreläsning 3 Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. 27 januari 2016 Sida 1 / 21

Logiska variabler och jämförelser En Logisk variabel kan ha värdet sant eller falskt. Logiska värden skapas vid jämförelser mellan två tal. Exempel Låt x=3.0 och y=6.5. >> x > y ans = 0 Kommentar I MATLAB tolkas värdet 0 som falskt och 1 som sant. 27 januari 2016 Sida 2 / 21

I MATLAB finns Relationsoperatorer <, <=, >, >=, ==, och ~= Logiskaoperatorer &, och ~ Exempel Låt x = 3.0 och y = 6.5. Beräkna uttrycket >> z = x + y >= x^2 x == y Prioritet Aritmetriska > Relations > Logiska. Kan använda parenteser. 27 januari 2016 Sida 3 / 21

Jämförelser med Matriser eller Vektorer Jämförs två vektorer eller matriser så beräknas jämförelsen elementvis. Bägge operanderna måste ha samma dimension. Exempel Låt x=[1 3] och y=[2 2]. Då gäller att >> x < y ans = 1 0 Även logiska operatorer beräknas elementvis. 27 januari 2016 Sida 4 / 21

Funktionen randi returnerar slumpmässiga heltal i ett givet intervall. Exempelvis A=randi([a b],n,m) skapar en n m matris med slumpmässiga heltal i intervallet [a, b]. Exempel Hur många femmor får man i genomsnitt om man slår en tärning 8 gånger? Gör N = 10 4 experiment och undersök detta. 27 januari 2016 Sida 5 / 21

Exempel Antag att x är en vektor som innehåller både positiva och negativa tal. Beräkna summan av de positiva talen. I Matlab skriver vi >> S = sum( (x>0).* x ); Vad händer om x = (2, 3, 0, 1, 2, 1) T? 27 januari 2016 Sida 6 / 21

Villkorssatser Definition En styrsats används för att bestämma vilka delar av ett program som skall exekveras. Definition En villkorssats används då ett antal kommandon ast skall exekveras om ett visst villkor har värdet sant. Exempel Värdet på x avgör vilken väg som tas genom programmet. Nej x > 0? Ja x := x+1 27 januari 2016 Sida 7 / 21

I Matlab finns if <logiskt uttryck> <satser> där kommandona <satser> ast utförs om det logiska uttrycket beräknas till värdet sant. Exempel Antag att vi har beräknat ett funktionsvärde f(x). Gör en utskrift om värdet är positivt. 27 januari 2016 Sida 8 / 21

Ett alternativ är if else <logiskt uttryck> <satser 1> <satser 2> där antigen <satser 1> eller <satser 1> utförs. Exempel Låt f(x) ges av två olika uttryck beroe på om x > 0. Ja f = x 2 x x > 0? Nej f = 0 27 januari 2016 Sida 9 / 21

Exempel En funktion ges av uttrycket { 0, x 0, f(x) = x 2, x > 0. I Matlab kan vi skriva: x=3.5; if (x <= 0) f=0; else f=x^2; ; 27 januari 2016 Sida 10 / 21

Exempel Antag att a = 5 och att variabeln flagga har värdet falskt, dvs flagga=0. Vad händer i följande fall? if flagga if flagga if a<10 if a<10 a=a+1 a=a+1 else a=a-1 else a=a-1 Vad skulle ha hänt om istället a=5 och variabeln flagga hade haft värdet sant? 27 januari 2016 Sida 11 / 21

Exempel Testa om ett värde x ligger i intervallet 2 x < 5. Skriv isåfall ut ett meddelande. Tänk på att jämförelser görs mellan två tal. Exempel Funktionen f(x) ges av uttrycket x 2, x<0 f(x)= sin(x), 0 x< π 2 1, x π 2 Skriv en villkorssats som beräknar y = f(x) för ett givet x värde. 27 januari 2016 Sida 12 / 21

Repetitonssatser Definition En repetitionssats används då ett antal satser skall upprepas flera gånger. Då ett antal satser skall utföras, ett på förhand känt, antal gånger används en for-sats. k = 1 <Satser> k = 10 Ja k = k+1 Nej 27 januari 2016 Sida 13 / 21

I Matlab finns konstruktionen for <variabel>= start:steg:slut <satser> där <satser> utförs en gång för varje värde på <variabel>. Exempel Beräkna summan S = I Matlab skriver vi 1000 k=1 1 k 2. Detta ger S=1.6439. S=0; for k=1:1000 S=S+k^(-2); 27 januari 2016 Sida 14 / 21

Exempel Vad blir x(5) då följande program exekveras? x=zeros(5,1); for k=2:1:5 x(k)=x(k-1)+k Exempel Låt x vara vektorn x = ( 1, 1, 5, 2, 3, 2, 4) T. Använd en repetitionssats för att hitta det största elementet i vektorn. Övning Rita ett flödesschema och översätt detta till ett Matlab program. 27 januari 2016 Sida 15 / 21

Nästlade repetitionssatser Det går bra att ha flera for-satser innuti varandra. Exempel Beräkna matris-vektor produkten y = Ax, A R n m, med formeln m y i = a ij x j, i = 1, 2,...,n. I Matlab skriver vi j=1 [n,m]=size(a); y=zeros(n,1); for i=1:n for j=1:m y(i)=y(i)+a(i,j)*x(j); 27 januari 2016 Sida 16 / 21

Exempel Hilbert matrisen är ett exempel på en matris som är svår att arbeta med. Den definieras av att elementen sätts till h ij = 1 i+j. Skriv ett Matlab program som skapar en Hilbert matris av dimension n = 10. 27 januari 2016 Sida 17 / 21

Kommentarer I större program infogar man ofta kommentarer för att förklara vad som händer. Detta underlättar då man annars riskerar att glömma bort hur man tänkte då uppgiften löstes. En kommentar påverkar inte resultatet då ett program körs. I MATLAB anger tecknet % att resten av raden är en kommentar. Exempel I ett program kan vi skriva x(k)=y; k=k+1; % Öka räknaren k så att nästa y-värde % hamnar på en tom plats i vektorn x. 27 januari 2016 Sida 18 / 21

Tillämpning: Ett utjämnande Filter Problem Vi har en mätt en signal F(t) som skall vara slät. På grund av mätbrus fås en signal med kraftiga oscillationer. 1.6 1.4 1.2 1 Signal F δ (t) 0.8 0.6 0.4 0.2 0 0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Tid t [s] Vi skall använda MATLAB för att filtrera bort det brus som smygit sig in i mätningarna. 27 januari 2016 Sida 19 / 21

Medelvärdesbildar vi över ett antal element i vektorn F δ så bör slumpmässigt brus reducderas kraftigt. Metod Välj ett heltal W och beräkna ett nytt värde F W (k) = 1 2W + 1 k+w k W F δ (k), I början och slutet av vektorn F δ har vi inte alla värden vi behöver och utökar därför först vektorn med Wst kopior av F δ (1) respektive F δ (N). Uppgift Skriv ett MATLAB program som utför filtrering enligt ovanståe metod. 27 januari 2016 Sida 20 / 21

1.5 1.5 Filtrerad Signal F w (t) 1 0.5 Filtrerad Signal F w (t) 1 0.5 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Tid t [s] 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Tid t [s] Resultatet efter filtrering med W = 5 (till vänster) och W = 10 (till höger). Mer filtrering ger en jämnare signal. 27 januari 2016 Sida 21 / 21