F1: Introduktion, Matlab (kap. 1 2)

Relevanta dokument
F1: Introduktion, Matlab (kap. 1 2)

F1: Introduktion, Matlabrepetition (kap. 1 2)

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

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

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

Kursinnehåll. Introduktion till kursen. Hederskodex. Programmering

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

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

Introduktion till MATLAB

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

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. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

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

Objektorienterad Programmering (TDDC77)

Beräkningsvetenskap föreläsning 2

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

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

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

Introduktion till Matlab

Instruktion för laboration 1

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

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

TAIU07 Matematiska beräkningar med Matlab

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

Svensk Matlab-terminologi

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

Beräkningsverktyg HT07

TDIU01 - Programmering i C++, grundkurs

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

MMA132: Laboration 2 Matriser i MATLAB

TSBB14 Laboration: Intro till Matlab 1D

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

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

Introduktion till Matlab

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

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

Matlabövning 1 Funktioner och grafer i Matlab

Matriser och Inbyggda funktioner i Matlab

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

Objektorienterad Programmering (TDDC77)

Programmering A. Johan Eliasson

Objektorienterad programmering Föreläsning 4

Datorövning 1: Introduktion till MATLAB

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

Matriser och vektorer i Matlab

Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi.

Instruktion för laboration 1

MATLAB Matrix laboratory

Introduktion till MATLAB Föreläsning 1

Matriser och vektorer i Matlab

Laboration: Vektorer och matriser

DN1212/numpp Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Linjär algebra med tillämpningar, lab 1

Introduktion till Matlab

TANA17 Matematiska beräkningar med Matlab

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

4.3. Programmering i MATLAB

Kapitel 4. Programmet MATLAB

Matriser och Inbyggda funktioner i Matlab

Matlabövning 1 Funktioner och grafer i Matlab

Introduktion till Matlab

Introduktion till Matlab

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

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

TDDC77 Objektorienterad Programmering

TANA17 Matematiska beräkningar med Matlab

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

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

Laboration 1: Linjär algebra

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

DD1361 Programmeringsparadigm. Carina Edlund

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

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

Parameteröverföring. Exempel. Exempel. Metodkropp

SMD 134 Objektorienterad programmering

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Linjära ekvationssystem i Matlab

MAPLE MIKAEL STENLUND

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Översikt över Visual Basic

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Introduktion till Matlab

MATLAB övningar, del1 Inledande Matematik

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

TAIU07 Matematiska beräkningar med Matlab

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

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

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

Programmeringsteknik med C och Matlab

Föreläsning 2. Operativsystem och programmering

Läsning, skrivning, tangentbord, skärm. F6: Filhantering (kap. 8) Tabell på skärmen. save

Objektorienterad programmering i Java

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

Villkor if, switch. F2: Styrstrukturer, programmeringsteknik (kap. 3 4) If-kommando forts. If-kommando forts.

Transkript:

F1: Introduktion, Matlab (kap. 1 2) Varför programmera? Egenskaper hos Matlab Kommando-, redigerings-, arbetsplats-, tabell-, guide- och hjälpfönster, kommando-, funktions-, m- och loggfil Tabeller, storlek, dimension, variabel, identifierare, sökväg Uttryck, tilldelning, tysta kommandon, radindelning, litteraler Operatorer, aritmetiska, jämförande, logiska, komponentvisa Skapa tabell, indexera Datatyper Resten av kursen p 1(31) Staffan Romberger, CSC, KTH, 2010-11-03

Varför program? Civilingenjören och teknologen behöver: göra egna kalkyler, visa kalkyler som övertygar uppdragsgivare/kund, producera program som uppdragsgivare/kund kan använda, ingår i produkter hon själv använder Varför programmera? För att man inte hittar något färdigt som gör det man vill; man får kontroll på vad programmet gör och hur; man vill träna logiskt tänkande och problemlösning; det är roligt; p 2(31) Staffan Romberger, CSC, KTH, 2010-11-03

MATLAB: kan användas interaktivt, som kalkylator, innehåller många inbyggda funktioner och kan byggas ut med egna kommandofiler och funktioner och extra verktygslådor (toolbox), kan lätt skapa diagram och annan grafik p 3(31) Staffan Romberger, CSC, KTH, 2010-11-03

Teknik: Interpreterat/kompilerat Man skriver Matlabkommandon i kommandofönstret och i m-filer (kommandofiler eller funktionsfiler). Kommandona översätts till p-kod (pseudokod). P-kod är maskinoberoende. En interpretator läser p-koden och utför en p-kodsinstruktion i taget. P-koden sparas under den aktuella sessionen eller tills minnet blir fullt. Interpretering ger inte maximal effektivitet men maskinoberoende. I Matlab finns möjlighet att kompilera, dvs. att översätta till maskininstruktioner. När det är gjort kan programmet utföras maximalt effektivt. Många klassiska programspråk är kompilerade t.ex. Fortran och C. Java fungerar som Matlab, dvs. använder en sorts p-kod (byte-kod) som kan kompileras när den exekveras första gången, för att de snabbare maskininstruktionerna ska användas om programdelen exekveras igen. Perl, Applescript, Javascript m.fl. programspråk interpreteras normalt. p 4(31) Staffan Romberger, CSC, KTH, 2010-11-03

Att kunna programmera är att Behärska programspråket och programmeringsmiljön. Veta hur man hanterar vanliga delproblem. Kunna söka fel, testa, och ta hänsyn till effektivitet. Kunna skriva program och dokumentation så att de är lätta att underhålla. Känna till människans (o)förmåga och ta hänsyn till den i designprocessen och i själva programmet. p 5(31) Staffan Romberger, CSC, KTH, 2010-11-03

Algoritm: Formell beskrivning av ett förfarande, där varje steg kan bero på resultatet av tidigare steg. Iteration, rekursion vanliga element: Kommer algoritmen att sluta? Gödel, Turing Exempel: Beräkna 2 start x := 1; L: y := (x + 2/x) / 2; om y x < 10-6 sluta annars x : = y gå till L. x :=1 y := (x+2/x)/2 x y < 10-6? Ja Nej x := y Stop: svar y p 6(31) Staffan Romberger, CSC, KTH, 2010-11-03

Lösning av icke-linjär ekvation à la Newton Ekvationen må vara f ( x) = 0. I vårt fall: 2 f ( x) = x 2 = 0 y Om ett närmevärde till roten är x n så torde man få ett bättre x n+1 som nollstället till tangenten i (x n,f(x n )) till grafen y = f(x) och det blir x n+ 1 = x n f ( x f ( x n n ) ) x n+1 x n p 7(31) Staffan Romberger, CSC, KTH, 2010-11-03

Aktiviteter i programmeringskurs F Vi tittar på problem och, i stort sett, färdiga program med kommentarer. Ni får en mängd begrepp att jobba med och ska förstå programmet och kommentarerna, åtminstone översiktligt. Ö Vi startar med ett problem och följer lösningsprocessen. Ni kommer med förslag, alternativ och frågor. L Ni arbetar själva fram lösningen till ett givet problem. Ni söker hjälp i tidigare undervisningsmoment, i MATLABsystemet, Webben, läroböcker och annat undervisningsmaterial. Ni ska öva på att förstå felmeddelanden och felmekanismer, använda Matlabs felsökningshjälpmedel och andra metoder att utveckla och kontrollera program. Eget arbete Tag problem ur läroböckerna, både till denna kurs och andra kurser, eller ur egen fantasi och lös dem med datorn. Programmering är en mängdträningssport och det brukar kännas tillfredsställande när man»lätt» kan programmera datorn att göra grovjobbet med olika uppgifter. p 8(31) Staffan Romberger, CSC, KTH, 2010-11-03

Introduktion till Matlab Matlab finns för många plattformar, bl.a. Unix, Windows och Mac OS X. Det finns många viktiga fönster. Kommandofönstret är centralt. Där skriver man kommandon som utförs direkt. Matlab skriver normalt resultat i detta fönster. Mycket av det som man kan göra i andra fönster, kan man också göra med kommandon i kommandofönstret. Man kan starta kopiering (loggning) av kommandofönstret till en fil med diary filnamn. Med diary off slutar man spara. De inbyggda funktionerna och programdelar som man gör själv är normalt m-filer som innehåller Matlabkommandon och har filnamn som slutar på».m». M-filer kan redigeras med Matlabs redigeringsprogram (Rekommenderat!) eller med något annat redigeringsprogram, MSWord, emacs e.d. I Matlabs redigeringsfönster har man också tillgång till avlusningsfunktioner för att sätta stoppunkter, stega och inspektera p 9(31) Staffan Romberger, CSC, KTH, 2010-11-03

variabler. I arbetsplatsfönstret kan man inspektera och i tabellfönstret kan man också ändra variabler. p 10(31) Staffan Romberger, CSC, KTH, 2010-11-03

Hjälp Det finns mycket hjälpinformation om Matlab förutom kursen och läroböcker. Via hjälpmenyn (eller med kommandot helpbrowser) når man hjälpfönstret med massor med länkad information. Kommandot lookfor text söker efter m-filer med text i första dokumentationskommentarrad. Kommandot help filnamn skriver alla dokumentationskommentarer dvs. inledande kommentarrader i m-filen filnamn.m. Det är lämpligt att förbereda egna m-filer så att de fungerar bra för lookfor och help. p 11(31) Staffan Romberger, CSC, KTH, 2010-11-03

Variabler En tabell som man vill spara till senare under räkningarna lagrar man i en variabel. En variabel har ett namn (identifierare) och man kan se variabeln som en namngiven plats i datorns minne där man kan spara/lagra en tabell. Identifierare kan innehålla A Z, a z, siffror och _ (understreck) och måste börja med bokstav. Versaler och gemena (stora och små bokstäver) anses olika och identifierare har en maximalt tillåten längd (vanligen 19 tecken, MATLAB skiljer på 64). Normalt använder man gemena. För s.k. globala variabler använder man versaler. Det är viktigt att välja bra identifierare. De variabler som man använder i kommandofiler ingår i arbetsplatsen. Man kan se vilka det är med who, få mer information, bl.a. storlek, minnesutrymme och elementtyp, med whos och radera med clear. Det finns några fördefinierade variabler såsom ans, eps, realmax, realmin, pi, Inf, NaN, i, j. Variabeln eps påverkas inte av clear. p 12(31) Staffan Romberger, CSC, KTH, 2010-11-03

Tabeller Matlab står ju för matrix laboratory (matrislabb). Med matris menar man normalt en tabell med rader och kolumner. Vi kommer att använda termen»tabell» för Matlabs mer generella matriser. Man kan se praktiskt taget allt som Matlab kan hantera som tabeller. En tabell har en storlek (size) som är en vektor med antalet komponenter i de olika riktningarna/dimensionerna. Antalet komponenter i storleken är tabellens dimension. En matris är en tabell med dimension 2. Vektorer hanteras som matriser med endast en komponent i den ena dimensionen. En radvektor har en komponent i första dimensionen (en rad) och en kolumnvektor har en komponent i andra dimensionen (en kolumn). Skalärer (tal) hanteras som matriser med storleken [1 1]. Tabeller med dimension 3 eller större finns men används sällan. Alla element i normala tabeller har samma typ. Det finns andra sorters tabeller. p 13(31) Staffan Romberger, CSC, KTH, 2010-11-03

Sökväg m.m. Matlab har en aktuell sökväg en lista av kataloger, som söks igenom i tur och ordning. När Matlab ska tolka en identifierare prövas tolkningar i denna ordning: variabel, inbyggd funktion eller inbyggt kommando, m-fil längs aktuell sökväg. Om Matlab verkar ha hängt sig, pröva med Ctrl-C. På vissa plattformar kan man skicka kommandon till OS med!kommando, t ex!dir (Windows) Det finns särskilda fönster (guidefönster) för att skapa användargränssnitt och hantera grafiska objekt. p 14(31) Staffan Romberger, CSC, KTH, 2010-11-03

Uttryck och tilldelning När man skriver en formel/ett uttryck i kommandofönstret beräknas uttryckets värde, värdet tilldelas variabeln ans och variabeln skrivs ut. Man kan istället lagra uttryckets värde i en annan variabel med ett tilldelningskommando. Man kan undertrycka utskriften genom att skriva»;» (semikolon) efter kommandot. Man kan styra hur mycket plats utskrifterna tar med format compact/format loose. Man kan skriva mer än ett kommando på en rad med»,» (kommatecken) eller»;» mellan kommandona. Ett kommando kan fortsättas på nästa rad om man avslutar raden med»» (tre punkter). Uttryck byggs upp, ungefär som matematikens formler, av tallitteraler, variabler, parenteser, operatorer, [] (hakparenteser),, (kommatecken), ; (semikolon) (för att sätta ihop tabeller) och funktionsanrop. Litteral är beteckning för ett värde. Litteraler kallas ibland för konstanter, men i programmeringssammanhang är en konstant en variabel vars värde inte kan ändras, när den har fått sitt första värde (write once). p 15(31) Staffan Romberger, CSC, KTH, 2010-11-03

Operatorer Matlab har många operatorer: +, addition, subtraktion * multiplikation / division (högerdivision) 10/5 är 2 \ vänsterdivision 10\5 är 5/10 är 0,5 ^ exponentiering (upphöjt till) 2^3 är 8 För tabeller finns det elementvisa operationer. För att A op B ska vara tillåtet måste A och B ha samma storlek eller åtminstone den ena vara skalär: +, elementvis addition, subtraktion.* elementvis multiplikation./ elementvis division.\ elementvis vänsterdivision.^ elementvis exponentiering p 16(31) Staffan Romberger, CSC, KTH, 2010-11-03

>>A = [1 2;3 4]; B = [2 4;8 16]; C = 5; >>A+B ans = 3 6 11 20 >>A./B ans = 0.5000 0.5000 0.3750 0.2500 C.\B % B/C?? ans = 0.4000 0.8000 1.6000 3.2000 p 17(31) Staffan Romberger, CSC, KTH, 2010-11-03

Icke elementvisa operatorer När den ena operanden är skalär fungerar dessa operatorer elementvis. C = A*B matrismultiplikation, A och B har högst dimension 2 och sista dimensionens storlek i A är lika första dimensionens storlek i B C = A/B matrisdivision, lösning av linjärt ekvationssystem F = E\D C = A*inv(B) resp. F = inv(e)*d C = A' komplexkonjugering, c ij = conj(a ji ) C = A.' transponat, c ij = a ji C = A^p A är kvadratisk, p är skalär C = A* *A (p st A) p 18(31) Staffan Romberger, CSC, KTH, 2010-11-03

Logiska operationer Värdet 0 betraktas som falskt (false), alla andra värden betraktas som sant (true). 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 && genvägsoch genvägseller p 19(31) Staffan Romberger, CSC, KTH, 2010-11-03

Prioritet 1 ^,.^, ',.' 2 +, -, ~ (med en operand, unära) 3 *,.*, /,./, \,.\ 4 +, (binära) 5 : 6 ==, ~=, <, <=, >, >= 7 & 8 9 && 10 Ordningen kan kontrolleras med parenteser. Operatorer med samma prioritet utförs från vänster till höger, utom de unära som utförs från höger till vänster. p 20(31) Staffan Romberger, CSC, KTH, 2010-11-03

v = ~17 ans = 0 a = [1]; b = 1>3 & a(2); b = 1>3 && a(2); c = 1>3 & 6==10+--7 5/2/2\10 p 21(31) Staffan Romberger, CSC, KTH, 2010-11-03

Skapa tabell I en tabellitteral räknar man, mellan»[» och»]», upp elementen med»;» eller radbyte mellan raderna och»,» eller blanktecken mellan kolumnerna. Om tabellen ska ha dimension 3 eller mer skapar man ett lager i taget. Man kan också sammanfoga befintliga tabeller: A = [1 2;3 4]; B = [5 6;7 8]; x = [9 10]; y = [11;12]; z = [13 14]; Tre sätt att skapa xnew som [9 10 0 15]: xnew = x; xnew(3) = 0; xnew(4) = 15; xnew = [x 0 15]; temp = [0 15]; xnew = [x temp]; p 22(31) Staffan Romberger, CSC, KTH, 2010-11-03

Skapa tabell forts. Man kan lägga en ny rad eller en ny kolumn till A: Anew = [A;z]; Anew = [A;[13 14]]; Anew = [A y]; Anew = [A [11;12]]; p 23(31) Staffan Romberger, CSC, KTH, 2010-11-03

Indexering, omformning Man kan nå enstaka element eller subtabeller med indexering. Elementen lagras i följd motsvarande att tidiga index varierar fortare än senare index. Man kan skriva ut elementen i denna ordning med A(1:numel(A)) eller A(:). >>A = reshape(1:9,3,3) A = [1 4 7 2 5 8 3 6 9] >>A(:)' ans = [1 2 3 4 5 6 7 8 9] p 24(31) Staffan Romberger, CSC, KTH, 2010-11-03

Indexering forts. Man kan ange en subtabell som vänsterled i en tilldelning. >>A(1:4:9) = 1; >>A([3 5 7]) = [1 2 3] A = [1 4 3 2 2 8 3 6 1] >>A([1 3],[1 3]) = 0 A = [0 4 0 2 2 8 0 6 0] p 25(31) Staffan Romberger, CSC, KTH, 2010-11-03

Skapa speciella tabeller b:s:e en radvektor med elementen b b+s b+2*s b+3*s b+n*s så att n är det största heltal som gör b+n*s<=e om s > 0 linspace(a,b,n) a:(b-a)/(n-1):b linspace(0,12,6) [0 2.4 4.8 7.2 9.6 12] linspace(a,b) linspace(a,b,100) ones(n), matris med storlek [n n] resp. [m n p] med ettor ones(m, n,, p) zeros(n), matris med storlek [n n] resp. [m n p] med nollor zeros(m, n,, p) eye(n), eye(m,n) matris med storlek [n n] resp. [m n] med ettor i diagonalen och nollor f.ö. p 26(31) Staffan Romberger, CSC, KTH, 2010-11-03

Datatyper En datatyp kan vi i Matlab se som ett sätt att lagra data som bitmönster/tolka en variabels bitmönster som ett värde. I många programspråk anger programmeraren för varje variabel vilken sorts data (datatyp) den ska innehålla. I Matlab kan en variabel ha olika datatyp vid olika tillfällen. Data (värden) lagras som bitföljder i datorns minne. Det finns ju oändligt många tal. Egentligen skulle man därför reservera oändligt mycket plats för varje variabel. Istället har man olika datatyper, med olika minnesutrymme, för olika behov. int8 heltal 8 bitar 128... 127 int16 heltal 16 bitar 32 768... 32 767 int32 heltal 32 bitar 2 147 483 648... 2 147 483 647 single flyttal 32 bitar ung. 3,4E 38... 3,4E38 med 7 siffror double flyttal 64 bitar ung. 1,7E 308... 1,7E308 med 15 siffror char tecken 16 bitar teckenkod (räcker till Unicode) p 27(31) Staffan Romberger, CSC, KTH, 2010-11-03

Datatyper forts. uint8 heltal utan tecken 8 bitar 0..255 uint16 heltal utan tecken 16 bitar 0..65 535 uint32 heltal utan tecken 32 bitar 0..4 294 967 295 logical inte egen datatyp Numeriska data lagras normalt som double. Man kan själv välja datatyp. >>d1 = 32; d2 = uint8(32); >>whos d1 d2 Name Size Bytes Class d1 1x1 8 double array d2 1x1 1 uint8 array p 28(31) Staffan Romberger, CSC, KTH, 2010-11-03

Eval Uttryck kan lagras som text. En aritmetisk följd a, a+s, a+2*s,, a+(n 1)*s kan vi summera med (a = 1, s = 1) >>f = 1:99; summa = sum(f) summa = 4950 Summan är ju (a+a+(n-1)*s)*n/2 så vi lagrar uttrycket som text i variabeln str: >>str = '(2*a+(n-1)*s)*n/2'; >>a = 1; s = 1; n = 99; >>eval(str) ans = 4950 p 29(31) Staffan Romberger, CSC, KTH, 2010-11-03

Polynom Matlab lagrar polynom som en koefficientvektor med högstagradskoefficienten först. Med p(x)=x 4 +5x 3 2x 2 +7x 11 kan vi beräkna: >>p = [1 5-2 7-11]; polyval(p,1) ans = 0 >>val = polyval(p,[2 3 5 7 9]) val = 51 208 1224 4056 10096 Det finns många andra funktioner för att skapa speciella tabeller. p 30(31) Staffan Romberger, CSC, KTH, 2010-11-03

Resten av kursen Programmeringsdelen med 3 laborationer. Villkorssatser, slingor, egna funktioner, diagram och grafiskt användargränssnitt ska vi behandla. Numerikdelen sköter Beatrice. Den handlar om metoder för att lösa ingenjörens beräkningsproblem. Kursen avslutas med ett projekt som ger möjlighet att fördjupa delarna i kombination och få betygshöjning. Titta ofta på kursens webbplats. Övning 1 Ö1: PEng 2.1, 2.6, 2.10, 2.16 (2.14) p 31(31) Staffan Romberger, CSC, KTH, 2010-11-03