Introduktion & MATLABrepetition. (Kap. 1 2 i MATLAB Programming for Engineers, S. Chapman)

Relevanta dokument
Motivering för programmering. F1: Introduktion, Matlabrepetition (kap. 1 2) Att kunna programmera. Interpreterat/kompilerat

Kursuppläggning. F1: Introduktion, Matlabrepetition (kap. 1 2) Motivering för programmering. Att kunna programmera

F1: Introduktion, Matlabrepetition (kap. 1 2)

Motivering för programmering. F1: Introduktion, Matlabrepetition (kap. 1 2) Att kunna programmera. Interpreterat/kompilerat

F1: Introduktion, Matlab (kap. 1 2)

F1: Introduktion, Matlab (kap. 1 2)

Introduktion till MATLAB

Kursinnehåll. Introduktion till kursen. Hederskodex. Programmering

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

Introduktion till Matlab Föreläsning 1. Ingenjörsvetenskap

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

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

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Introduktion till MATLAB Föreläsning 1

TSBB14 Laboration: Intro till Matlab 1D

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

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

Beräkningsvetenskap och Matlab. Vad är MATLAB? Vad är MATLAB? Användningsområden. Vad är MATLAB? Grunderna i Matlab. Beräkningsvetenskap == Matlab?

Beräkningsvetenskap föreläsning 2

Beräkningsverktyg HT07

Linjär algebra med tillämpningar, lab 1

Välkomna till Numme och MATLAB, 9 hp, för Materialdesign och Energi&Miljö, årskurs 2

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

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

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

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

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

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

Laboration 1: Linjär algebra

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

SF1513 (tidigare DN1212) Numeriska metoder och grundläggande programmering. för Bio3, 9 hp (högskolepoäng)

MAPLE MIKAEL STENLUND

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Laboration: Vektorer och matriser

DN1212. Numeriska metoder och grundläggande programmering. för M1, 9 hp (högskolepoäng)

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

Varför program? F1: Introduktion, Matlab (kap. 1 2)

TANA17 Matematiska beräkningar med Matlab

Matlabövning 1 Funktioner och grafer i Matlab

LABORATION I MAPLE MIKAEL STENLUND

MATLAB Matrix laboratory

Du kan söka hjälp efter innehåll eller efter namn

Laboration: Grunderna i Matlab

Matriser och vektorer i Matlab

TAIU07 Matematiska beräkningar med Matlab

Introduktion till Matlab

SF1511 / SF1516 (tidigare DN1212) Numeriska metoder och grundläggande programmering. för K2 och M1, 9 hp (högskolepoäng)

Instruktion för laboration 1

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

Matriser och vektorer i Matlab

TDDC77 Objektorienterad Programmering

Matriser och Inbyggda funktioner i Matlab

Introduktion till Matlab

Lägg märke till skillnaden, man ser det tydligare om man ritar kurvorna.

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1

DD1314 Programmeringsteknik

Datorövning 1: Introduktion till MATLAB

Matlabövning 1 Funktioner och grafer i Matlab

Introduktion till Matlab

DN1212. Numeriska metoder och grundläggande programmering. för P1, 9 hp (högskolepoäng)

Matriser. Vektorer. Forts. Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

Matriser och Inbyggda funktioner i Matlab

DN1212. Numeriska metoder och grundläggande programmering. för Bio3, 9 hp (högskolepoäng)

SF1517 (tidigare DN1212) Numeriska metoder och grundläggande programmering. för P1, 9 hp (högskolepoäng)

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

Introduktion till Matlab

TANA17 Matematiska beräkningar med Matlab

MMA132: Laboration 2 Matriser i MATLAB

Matematisk Modellering

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad Programmering (TDDC77)

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

Introduktion till kursen och MATLAB

TAIU07 Matematiska beräkningar med Matlab

Kapitel 4. Programmet MATLAB

Matematisk Modellering

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

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning

Undervisning. Examination

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

DN1212. Numeriska metoder och grundläggande programmering. för P1, 9 hp (högskolepoäng)

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

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

2D1212. Numeriska metoder och grundläggande programmering. för P1 och T1, 6 poäng

Allmänt om Mathematica

DN1212. Numeriska metoder och grundläggande programmering. för T1, 9 hp (högskolepoäng)

Introduktion till Matlab

Programmering för språkteknologer I, VT2012. Rum

Undervisning. Examination

Matriser. Vektorer. Grunderna i MATLAB 2. Informationsteknologi. Informationsteknologi.

Numeriska metoder och grundläggande programmering för P1

Föreläsning 1 & 2 INTRODUKTION

Vad är MATLAB? Vad är MATLAB? Vad är MATLAB? Användningsområden. Att börja använda MATLAB. Informationsteknologi. Grunderna i MATLAB

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

Laboration: Grunderna i MATLAB

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

Transkript:

Numeriska Metoder och Grundläggande Programmering för P1, VT2014 Föreläsning 1, Introduktion & MATLABrepetition. (Kap. 1 2 i MATLAB Programming for Engineers, S. Chapman) January 20, 2014

Kursansvarig och huvudföreläsare: Beatrice Frock Föreläsningar på MATLAB-delen: Erik von Schwerin Undervisning: Föreläsningar Presenterar teori och färdiga program/exempel. Stöd till egna studier av kurslitteraturen. Övningar Visar problem och följer lösningsprocessen. Laborationer Ni får problem och ska själva arbeta er fram till deras lösning. Övningsledare: Grupp 1 B. F. Grupp 2 E. v. S. Grupp 3 Erik Dalsryd

Kursen består av: numeriska metoder, programmering i MATLAB. Lärandemål:... ge... insikt om att numeriska metoder och programmeringsteknik behövs för att göra tillförlitliga och effektiva simuleringar av tekniska och naturvetenskapliga processer baserade på matematiska modeller.

Efter kursen kan ni använda numeriska metoder för att: Lösa olinjära ekvationer: hitta x s.a. e x2 cos(3x) 2 = 0 Lösa linjära och icke-linjära ekvationssystem: hitta x, y, och z s.a. x 3y + 2z = 0 x 3yz = 0 6x + 5y = 3z cos(x) + 5y = 3z 4(y z) = x z y = 1/x

Interpolera data: Skatta y(2010) då t 2007 2009 2011 2013 y 432 467 547 693 och minstakvadratanpassning: bestäm parametrarna a, b, c, och w i modellfunktionen f (t) = ae bx + c cos (wt) givet data t 2.1 2.2 2.4 2.5 2.7 2.8 f (t) 13.4 16.2 15.1 17.8 19.3 17.6 Ni kommer också kunna avgöra om den föreslagna modellfunktionen är bra, eller måste förbättras.

Beräkna integraler: 10 3 cos (2x)e x3 0.8 + x 2 dx 0 1 ( x x 2 + dx 1 + x 3) och lösningar till differentialekvationer: rita y(x) för 5 x 9 då ( d 3 y d 2 y +x cos (yx) = 0.86 dx 3 dx dy ) y(5) = 12, med y 2 dx (9) = 34, y (5) = 56. Och bedöma noggrannheten i de numeriska svar som beräknats.

Numeriska metoder Efter kursen kan ni: identifiera olika matematiska problem och skriva om dem på en form som är lämplig för numerisk behandling välja lämplig numerisk metod för behandling av det givna problemet motivera val av metod genom att redogöra för fördelar och begränsningar välja en algoritm som leder till effektiva beräkningar och implementera den i ett programspråk lämpat för beräkningar t ex Matlab presentera resultaten på ett relevant och illustrativt sätt göra tillförlitlighetsbedömning av resultaten

Programmering Efter kursen kan ni: bryta ner större problem i hanterliga delar och skriva egna funktioner för dessa i programspråket använda styr- och datastrukturer hantera filer på olika sätt, både vid inläsning och utskrift använda färdiga funktioner ur programspråkets bibliotek (t ex Matlabs bibliotek) för beräkning, visualisering och effektiv programmering skriva välstrukturerade program i programspråket. Föreläsningarna i programmering inleder kursen, men ni kommer öva på och lära er programmering under hela kursen.

Administrativa punkter: kursen ger 9hp, (tentamen 3hp, laborationer 6hp) Godkända delmoment rapporteras i Rapp registera er! Angående laborationer: Laborationer görs och redovisas i par Bilda par i dag och välj terminalövningsgrupp (A eller B) Schemalagd tid inte nog arbeta på egen tid också! Allmänhandledning (för hjälp, ej redovisning) Vid godkänd lab., signaturbladet ert ansvar! Lab. redovisad och godkänd i tid bonuspoäng (Gäller ej Lab. 1 och projektet) Terminalövningar i CSC:s salar (linux-miljö) Linux-konton delas ut 1:a salsövningen, under rasten. Kom ihåg legitimation!

MATLABREPETITION (Läs också kapitel 1 och 2 i PEng.) Egenskaper hos MATLAB Grafiska gränssnittets komponenter och deras betydelse Variabler, identifierare Tabeller, (skalärer, vektorere, matriser,...) Uttryck, tilldelning,... Operatorer, (aritmetiska, logiska, komponentvisa eller matrisoperationer) Skapa, indexera, omforma tabeller

Egenskaper hos MATLAB MATLAB är ett kommersiellt program som finns på flera plattformar: Unix, Windows, och Mac OS X. kan användas interaktivt, som en miniräknare är anpassat för numeriska beräkningar har många inbyggda funktioner, speciellt: metoder för linjär algebra, metoder för ordinära differentialekvationer lättanvända ritfunktioner kan byggas ut med egna kommandofiler och funktioner, eller genom tillägg av en s.k. toolbox används vanligtvis interpreterat Nackdelar: dyrt och exekverar långsammare än kompilerade program (t.ex. C och Fortran)

En titt på Matlabs grafiska miljö Viktiga delar Kommandofönstret: här skriver man kommandon som utförs direkt Kommandohistoriken: visar de senaste utförda kommandona Man kan även kopiera allt som skrivs i kommandofönstret, m.h.a. diary filnamn. Vid kommandot diary off avslutas kopieringen. redigeraren används för att arbeta med kommandofiler, som är textfiler med flera kommandon; kan även redigeras fristående textredigerare som Emacs fältet Workspace visar variabelminnet

Tabeller MATLAB står för MATrix LABoratory, utvecklat för att undervisa linjär algebra Med matris brukar man mena en tabell av dimension 2 (rader och kolumner) Matlabs grundläggande datastrukturer är tabeller i generellt antal dimensioner Specialfall: Skalär: ses som tabell med en rad och en kolum [1,1] Kolumnvektor: tabell med flera rader och en kolum [m,1] Radvektor: tabell med en rad och flera kolumner [1,n] Matris: [m,n] Tabeller av högre dimension kan också skapas (andvänds inte lika ofta)

Variabler En matris som man vill spara lagras i en variabel En variabel ges ett namn (identifierare) så att man kan komma åt den senare Kan ses som en namngiven plats i datorns minne Identifierare kan innehålla A Z, a z, siffror, och. (Första tecknet bokstav!) Stora (versaler) och små (gemena) bokstäver tolkas som olika tecken Konvention: använd variabelnamn med enbart VERSALER för s.k. globala variabler, men inte för andra variabler

Uttryck och tilldelning Skriv en formel i kommandofönstret och tryck enter så beräknas uttryckets värde, värdet tilldelas variabeln ans, och variabeln skrivs ut. Vill man spara värdet i en annan variabel använder man en tilldelningssats, var = uttryck, t.ex. >> a = sqrt(2); % ; undertrycker utskriften Det är värdet är högerledet som kopieras in i variabeln i vänsterledet. Behöver man mer än en rad för ett uttryck avslutar man raden med... och fortsätter på nästa rad.

Variabler Variabler definierade i kommandofönstret (eller körda kommandofiler) finns i variabelminnet eller workspace, arbetsplats who ger information om variablerna i variabelminnet, (whos extra information) clear rensar variabelminnet Det finns fördefinierade variabler, t.ex. ans, pi, i, j, eps, realmin, realmax, Inf, NaN Ni kan ändra deras värden, men de återställs vid clear Identifierare i variabelminnet döljer inbyggda funktioner: t.ex. >> sin = 3 % Döljer sinus-funktionen >> sin(1) % Returnerar värdet 3 >> sin(2) % Ger fel, variabeln sin har ett element

Skapa tabeller Man skapar en tabell genom att räkna upp, mellan hakparanteser, elementen. Radbryte eller ; separerar rader och blanktecken eller, separerar kolumnerna. >> A = [1 2; 3 4]; A = [5 6; 7 8]; >> c = [9 10]; d = [11;12]; e=[13 14]; Man kan också sammanfoga tabeller >> f = [c; e] lägga till nya rader eller kolumner

Speciella tabeller: b:s:e linspace och logspace ones och zeros eyes

Fler sätt att modifiera tabeller, eller komma åt delar av dem: indexering, ger enstaka element eller subtabeller A(:) reshape vektorer genom stegning

Operatorer Aritmetiska operatorer i Matlab: +,- addition, subtraktion * multiplikation / division (högerdivision) 6/3 är 2 \ vänsterdivision 6\3 är 0.5 ^ exponentiering, upphöjt till, 3^2 är 9 Matrisoperationer som i linjär algebra För matriser finns också elementvisa operationer; då måste matriserna ha samma storlek, eller en vara skalär +,- elementvis addition, subtraktion.* elementvis multiplikation./ elementvis division.\ elementvis vänsterdivision.^ elementvis exponentiering

Icke elementvisa operatorer Om ena operanden är skalär fungerar operatorerna elementvis. C=A*B matrismultiplikation. A och B har dimension högst 2; antal kolumner i A = antal rader i B. C=A/B matrisdivision, löser linjärt ekvationssystem, C = AB 1 C=A\B matrisdivision, löser linjärt ekvationssystem, C = A 1 B C=A. transponering C jk = A kj C=A komplexkonjugering C jk = conj(a kj ) C=A^p för kvadratisk matris A och skalär p, C = A*A*...*A, p ggr

Logiska operatorer Värdet 0 tolkas som falskt; alla andra som sant, men resultatet sant lagras som 1. < elementvis mindre än <= elementvis mindre än eller lika med > elementvis större än >= elementvis större än eller lika med == elementvis lika med ~= elementvis skilt från & elementvis och elementvis eller ~ elementvis icke && och med genvägsutvärdering eller med genvägsutvärdering

Prioritet 1. ^,.^,,. 2. +,-,~ (med en operand, unära) 3. *,.^*,/,./,\,.\ 4. +,- (binära operationer) 5. : 6. ==,~=,<,<=,>,>= 7. & 8. 9. && 10. Paranteser används för att ändra ordningen

Polynom Lagras som en koefficientvektor med högstagradskoefficienten först och det finns speciella funktioner för polynom. Ex. p(x) = 2x 3 + 3 2 x + π >> p = [2 0 1.5 pi]; >> val = polyval(p,1) >> val = polyval(p,[1 2; 4 8]) >> rot = roots(p)

Datatyper Data lagras som bitföljder i datorns minne. Likadana bit-följder måste kunna tolkas på olika sätt i olika sammanhang. En datatyp i Matlab kan ses som ett sätt att lagra data eller tolka en variabels värde. Många andra programmeringsspråk kräver att användaren anger vilken sorts datatyp en variabel ska innehålla. Matlab är mer förlåtande och tolkar själv datatypen vid tilldelningen. I ett Matlab-programm kan samma variabel ha olika datatyper vid olika tillfällen

Datatyper Alla variabler hittils har varit av datatypen double som är matlabs standard datatyp för numeriska värden. Andra datatyper är t.ex. single flyttal med hälften så många bitar (mindre minnesåtgång, lägre precision) int8 heltal mellan -128 och 127 char tecken fler exempel senare i kursen Tilldela variabler av datatypen char genom att använda >> c = a ; citationstecken Strängar i Matlab är >> d = b ; tabeller av datatypen char och man kan indexera in i dem >> e = [c d]; (och utföra andra matrisoperationer) >> f = [c;d];

eval Formler kan lagras som text. Exempel: 1 + x + x 2 +... + x K = xk+1 1 x 1 >> str = sk = (x^(k+1)-1)/(x-1) ; >> x = 2; K = 10; >> eval(str) sk = 2047

I morgon Styrstrukturer och programmeringsteknik