Presentation laddar. Vänta.

Presentation laddar. Vänta.

Numeriska beräkningar i Naturvetenskap och Teknik

Liknande presentationer


En presentation över ämnet: "Numeriska beräkningar i Naturvetenskap och Teknik"— Presentationens avskrift:

1 Numeriska beräkningar i Naturvetenskap och Teknik
Del A, Tekniska Aspekter, användning av MATLAB Kort historik, varför beräkningar med maskin? Programmering Demo av baskunskaper… Del B, Numeriska Metoder 1. Numerisk lösning av differentialekvationer 2. Algebraiska metoder, matrisoperationer 3. Anpassningar av modeller till mätdata 4. Monte Carlo simuleringar Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

2 Numeriska beräkningar i Naturvetenskap och Teknik
Varför Numeriska Beräkningar? Arbetsbesparande för långa men triviala algebraiska beräkningar. 2. Reproducerbara resultat, minimering av fel p.g.a ”den mänskliga faktorn”. Dock dyker nya möjligheter till fel upp: programmeringsfel. Lösning av ekvationer, algebraiska men framförallt differentialekvationer som saknar lösning i ”sluten form”, dvs analytisk lösning. 4. Monte Carlo simuleringar av stokastiska processer Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm Punkt 3 och 4 är två fundamentala orsaker till att datorer är oumbärliga verktyg inom modern fysik.

3 Numeriska beräkningar i Naturvetenskap och Teknik
William Shickard:1592 – 1635 Uppfann 1623 den första mekaniska räknemaskinen. Möjliggjorde addition och subtraktion av 6 siffriga tal 1645 Blaise Pascal: Uppfann den s.k ”Pascalinen” ca Syftet var att underlätta faderns arbete som skattmästare i Rouen. Maskinen kunde addera och multiplicera. Subtraktion var tidsödande komplicerat. Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm 1623

4 Numeriska beräkningar i Naturvetenskap och Teknik
Gottfried Leibnitz: , Konstruerade ca den första maskin som kunde utföra alla de fyra grundläggande algebraiska operationerna. Charles Xavier Thomas de Colmar: Baserad på Leibnitz design konstruerar Thomas den första kommersiellt framgångsrika beräkningsmaskinen, arithometern. Ca 1500 maskiner tillverkas och används huvudsakligen inom den franska förvaltningen Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm 1820 1670

5 Numeriska beräkningar i Naturvetenskap och Teknik
Charles Babbage: Design av den första programmerbara beräkningsmaskinen med syftet att minska antalet fel i matematiska tabeller. Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm Ada Countess of Lovelace: Assistent till Babbage. Känd som den första programmeraren.

6 Numeriska beräkningar i Naturvetenskap och Teknik
Alan Turing: Datorvetenskap pionjär. Formalisering av algoritm begreppet. Introducerade 1936 den teoretiska bakgrunden till datormaskiner med den s.k. Turingmaskinen, bla. definierad genom en uppsättning väldefinierade instruktioner, lagringsutrymme etc. Idag kallas en maskin av denna typ även en finite state-machine. 1936 Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm Konrad Zuse: Konstruerade 1941 den första program kontrollerade datormaskinen. Baserad på telefonreläer. Delvis finansierad av ”Deutsche Versuchsanstalt fur Luftfarth”.

7 Numeriska beräkningar i Naturvetenskap och Teknik
John von Neumann: En av de första fakultetsmedlemmarna vid IAS, Princeton (tillsammans med Einstein, Gödel, Weyl). Insatser inom matematik, fysik, ekonomisk teori och datorvetenskap. Skrev 1945 ”The first draft report on the EDVAC”. EDVAC, Electronic Discrete Varible Automatic Computer, var en uppföljare till den mer kända ENIAC, the Electronic Numerical Integrator and Calculator som var den första storskaliga programmerbara digitala datorn (vacuumrör). Till skillnad från ENIAC kunde EDVAC omprogrammeras utan handgripliga omkopplingar då både program och data lagrades i minne. Denna typ av maskin som lagrar program och data i samma minnesenhet är den dominerande datorarkitekturen idag och benämns ofta ”von Neumann arkitektur”. Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

8 Numeriska beräkningar i Naturvetenskap och Teknik
CPU och instruktionsset Varje instruktion som processorn (CPUn) kan utföra motsvarar en kod, dvs ett tal i maskinens minne. Typiska instruktionsset innehåller en s.k. Opcode som är kommandot som skall utföras och en eller flera operander som Opcoden använder som argument. Alla instruktioner är operationer på binära tal i datorn minne. En typisk sekvens för att addera två tal a och b kan ex.vis vara: load a in register 1 load b in register 2 add register 1 to register 2 store register 2 in b Dvs att programmera ett komplext problem på detta vis direkt i maskinkod blir mycket tidsödande och många möjligheter till fel introduceras i kodningen... Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

9 Numeriska beräkningar i Naturvetenskap och Teknik
Lågnivå resp. högnivåprogrammering I lågnivå eller maskinnära programmering använder man ett programmeringsspråk vars syntax ligger nära maskinens instruktionsset. Ett vanligt sätt att programmera maskinnära är att använda s.k. assembler programmering. Med denna metod ges instruktioner som addition, subtraktion, bitshift, register access etc mha av sk. Mnemonics som översätts till de tal som motsvarar en viss instruktion, dvs till maskinkod. Mnemonics av denna typ kan ex. vis vara: DEC B, (decrease content of register B), ADD A,B (add reg A to reg B) etc. Det mesta av modern tillämpad programmering sker dock i högnivåspråk vars syntaxer är sådan att de ligger närmare vårt vanliga språk. Många olika varianter av högnivåspråk har utvecklats över tiden. Några av de mer kända är FORTRAN, COBOL, ADA, LISP, PASCAL, C, SIMULA, C++... Alla dessa har liknande satsstrukturer inbyggda, men deras syntax är något olika. Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

10 Numeriska beräkningar i Naturvetenskap och Teknik
Tolkade resp. kompilerade programspråk Källkod Görs varje gång programmet körs Görs en gång Tolk Kompilator Producerar exekverbar kod ”rad för rad” Producerar exekverbar fil Maskinkod Maskinkod Snabbt Rel. långsamt Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm FORTAN, C, C++ BASIC, olika scriptspråk (Perl, Ruby) MATLAB Java: bytecode compilator + Virtual machine -> maskinkod => Portabilitet (compile once run everywhere)

11 Numeriska beräkningar i Naturvetenskap och Teknik
MATLAB som kalkylator: >> 2 * 2 ans = 4 >> ans*2 ans =8 det senaste svaret lagras i ans >> pi ans = Kommandofönstret i MATLAB Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

12 Numeriska beräkningar i Naturvetenskap och Teknik
Variabel Storhet man själv inför med avsikt att tilldela värden I problem i klassisk fysik kan det vara tid, acceleration, position etc... En mycket GOD ide att ge sina variabler namn som anknyter till deras funktion. För fysikaliska problem är det bra att använda notation som är vedertagen för en fysikalisk storhet. Detta är till mycket stor hjälp vid programskrivning, men något man tjänar på även i enklare sammanhang. Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

13 Numeriska beräkningar i Naturvetenskap och Teknik
Se ex.vis på det triviala exemplet: >> A=1 A = 1 >> B=2 B = 2 >> C=A*B C = Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

14 Numeriska beräkningar i Naturvetenskap och Teknik
Och jämför med: >> m=1 m = 1 >> a=2 a = 2 >> F=m*a F = >> Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

15 Numeriska beräkningar i Naturvetenskap och Teknik
Variabler En variabel kan vara av olika typ. I de flesta kompilerade programspråk måste man deklarera vilken typ en variabel har eftersom detta avgör vilken typ av variabel som skall lagras i minnet. Dessa typer kan ex. vis vara: 1. heltal med olika längd, 8, 16, 32, 64 bitar etc 2. flyttal av olika längd, i dagligt tal decimaltal med olika precision 3. vektorer/matriser 4. teckensträngar etc... Normalt inleds ett sådant program med någon form av deklarationssekvens. Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

16 Numeriska beräkningar i Naturvetenskap och Teknik
Variabler I MATLAB, liksom ex.vis i BASIC som också är ett tolkat språk, behövs ingen deklaration av variabelns typ. Istället bestämmer tolken vilken typ av variabel som används från de tilldelningssatser som variabeln används i: >> A=1.234 A = 1.2340 A är ett flyttal Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

17 Numeriska beräkningar i Naturvetenskap och Teknik
Variabler >> b=[1;2;3] b = 1 2 3 b är en vektor >> B= [1 2 3; 4 5 6;7 8 9] B= Matriser kan ha fler dimensioner än två... B är en matris Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

18 Numeriska beräkningar i Naturvetenskap och Teknik
Variabler Det går också att skriva >> b(1)=1 b =1 >>b(2) =2 b=1 2 >>b(3) =3 b=1 2 3 Bra i program.... Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

19 Numeriska beräkningar i Naturvetenskap och Teknik
Variabler På samma sätt >> A(1,1)=1 A = 1 >> A(1,2) = 2 A = >>A(2,1) = 3 3 0 >>A(2,2) = 4 3 4 Addera index för fler dimensioner. Går att addera matriser till matriser av högre dimension. Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

20 Numeriska beräkningar i Naturvetenskap och Teknik
Speciella vektorer: >>a=1:10 ans= >>a=0:0.1:1 Andra: linspace(a,b) hundra jämt fördelade element mellan a och b linspace(a,b,n) n element mellan a och b Delvektorer: x(i), element i x(i:j) delvektorn av elementen i till j x(i:k:j) delvektorn av elementen i till j med steg k x([i ip]) delvektorn av de givna elementen Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm Se övningsuppgifter

21 Numeriska beräkningar i Naturvetenskap och Teknik
Speciella matriser zeros(n) nxn noll matris zeros(n, o, p...) n x o x p noll matris ones(...) på samma sätt matris med ettor eye(..) enhetsmatris, diagonala ettor rand(..) n x n slumpmatris, 0 till 1 randn(..) normalfördelade element Kompilerat språk så är definieras ofta storleken I deklarationen. Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

22 Numeriska beräkningar i Naturvetenskap och Teknik
Precision Den inre precisionen i en beräkning i MATLAB ges av att tal lagras som s.k. ”doubles”. I en modern 32 bitars maskin så lagras en double: tecken + exponent + mantissa i 64 bitar vilket ger en precision av ung. 16 siffror. Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

23 Numeriska beräkningar i Naturvetenskap och Teknik
Tilldelningssatser Notera att tilldelningssatser inte är ekvationer! >> x = 1 x=1 >>x = x +1 x=2 dvs till det tidigare värdet i minnespositionen given av x (=1) adderas 1 med resultatet 2. >>workspace -> ger lista av alla variabler Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

24 Numeriska beräkningar i Naturvetenskap och Teknik
Två resultat som kan tyda på att en beräkning inte riktigt gått som tänkt Inf (Infinity) >>a=2 a=2 >>a/ dvs inbyggd ‘exception handler’ ans = inf NaN (Not a Number) >> 0/0 ans = NaN Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

25 Numeriska beräkningar i Naturvetenskap och Teknik
Tilldelningar & operatorer: De vanliga operatorerna fungerar precis som förväntat: addition + subtraktion - multiplikation * division / potens ^ Och har samma prioritetsordning som vanligt >>a=2*3-1*2 a=4 >>a=2*(3-1)*2 a=8 Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

26 Numeriska beräkningar i Naturvetenskap och Teknik
Tilldelningar & operatorer: En matris multipliceras med en skalär görs också på vanligt vis: >>A=[1 2 3; 1 2 3; 1 2 3]; >>c = 2; >>B=c*A B= Men… Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

27 Numeriska beräkningar i Naturvetenskap och Teknik
Tilldelningar & operatorer: Elementvis multiplikation görs med ./ >> A.*B På samma sätt elementvis division ./ Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

28 Numeriska beräkningar i Naturvetenskap och Teknik
Tilldelningar & operatorer: Vanlig matrismultiplikation, antalet rader i A lika med antalet kolonner i B: >> A*B Andra funktioner: Transponat: A’ Invers: inv(A) Determinant: det(A) Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

29 Numeriska beräkningar i Naturvetenskap och Teknik
Tilldelningar & operatorer: Finns också funktioner för skalärprodukt och vektorprodukt för vektorer: >>a = [1 2 3]; >>b = [1 2 3]; >>c = dot(a,b) ans = 14 >>cross(a,b) Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

30 Numeriska beräkningar i Naturvetenskap och Teknik
Varför program? 1. Problem som kräver upprepade beräkningar ex.vis olika indata för att ge ett set av utdata 2. Komplicerade problem med komplicerade beräkningar ex. vis differential-integral ekvationer 3. Idag naturligtvis också i många styrsystem av olika slag. ofta definierade som finite state maskiner flygplan, verkstadsmaskiner, produktionsmaskiner Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

31 Numeriska beräkningar i Naturvetenskap och Teknik
Att tänka på innan och medan man programmerar: Definiera det övergripande problemet Titta efter problemets inre struktur, sök delproblem Välj lösningsmetod(er) Analysera indata och utdata. Vad går in i pgm och ut från det. Gör ev. flödesschema Debugga programmet medan det skrivs. Skriv aldrig från A till Ö. Dokumentera kontinuerligt, separat och med pgm-kommentarer Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

32 Numeriska beräkningar i Naturvetenskap och Teknik
Fel i program är huvudsakligen av två typer: 1. Syntax fel Rena skrivfel (stavfel), missförstånd av syntaxen eller bristande kunskap om syntaxen. Dessa fel upptäcks av kompilatorn eller tolken och ett felmeddelande ges. En erfaren programmerare lär sig vilka typiska misstag som hör ihop med ett givet felmeddelande och löser ett sådant problem snabbt. 2. Run time fel Designfel i programmet. Kan leda till att felaktiga resultat men också till ”programkrash”. Ofta förorsakat av för dålig analys av hur ett fullständigt set av indata handas av programalgoritmen. “Farliga fel”. Lösning, skriv korta delar av programmet och testa, debugga ofta! Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

33 Numeriska beräkningar i Naturvetenskap och Teknik
Byggblock i program: 1. Satssekvenser På varandra följande enkla satser, ex. vis tilldelningar, alegebraiska operationer, input/ouput operationer 2. Alternativa flödesvägar Beroende på givet villkor skall olika satssekvenser utföras Ex.vis om sökt nogrannhet i en viss beräkning har uppnåtts så avbryts beräkningen och en ny beräkning beroende av den tidigare tar vid alt. har slutresultatet uppnåtts 3. Repetitioner En uppgift utförs flera gånger tills ett givet villkor uppnåtts. Ex.vis om 10 termer i en serie skall räknas ut kan en given iterationsformel upprepas 10 ggr. Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

34 Numeriska beräkningar i Naturvetenskap och Teknik
Hur sätter man upp ett styrvillkor? Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

35 Numeriska beräkningar i Naturvetenskap och Teknik
Logiska uttryck: Uttryck med svar av typen sant el. falskt, motsvaras av 1 el. 0 a=1;b=2, a==b falskt, &, |, ~ < <= == >= ~= (skilt från) MATLAB specifikt any(arg) något element ~= all(arg) alla element ~= Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

36 Numeriska beräkningar i Naturvetenskap och Teknik
Alternativa flödesvägar If-satser if logiskt uttryck if a~=1 satsgrupper disp(a) endif endif Kan byggas ut if logiskt uttryck if a==1 else else satsgrupper disp(b) endif endif Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

37 Numeriska beräkningar i Naturvetenskap och Teknik
Alt. If logiskt uttryck satsgrupp elseif logiskt uttryck .... else endif Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

38 Numeriska beräkningar i Naturvetenskap och Teknik
Switchsatser: switch variabel switch a case värde case {1} satsgrupper disp (a) case värde case {7} satsgrupper b=input(’give b’) .... case värde case {11.7} satsgrupper c=23 otherwise otherwise satsgrupper a=a+23 end end Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

39 Numeriska beräkningar i Naturvetenskap och Teknik
For loop: for variabel = a:h:b for a=0:0.1:10 satsgrupper b=b+a end end While loop: while logiskt uttryck while a<b satsgrupp a=a+0.1 end end Loopar kan förstås skrivas inuti andra loopar, då får man s.k. nästlade loopar... Error(teckensträng), pause, break kan användas för styrning ` Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

40 Numeriska beräkningar i Naturvetenskap och Teknik
Error(teckensträng) avbryter m-fil och skriver ut sträng pause väntar tills godtycklig tanget trycks ned break kan användas för styrning går ur den while och for loop programmet exekverade i Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

41 Numeriska beräkningar i Naturvetenskap och Teknik
Funktioner När alla delproblem i programmet har definerats så blir det ofta naturligt att utföra vissa uppgifter med samma kod som kan kallas på flera gånger från ett huvudprogram. Definition: Function [utvar1, utvar2, utvar…] = filnamn(invar1, invar2, invar…) %kommentarer Exempel på anrop: [b1, b2, b3….] = filnamn(a1, a2,a3….) Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

42 Numeriska beräkningar i Naturvetenskap och Teknik
Globala variabler: Variablerna i en funktion är normalt lokala, d.v.s de sätts till 0 när programexekveringen lämnar funktionen. Man kan dock definiera att vissa variabler skall vara åtkomliga utanför rutinen och därmed inte nollställas. Detta görs med en global definition enl: global var1 var2 … Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

43 Numeriska beräkningar i Naturvetenskap och Teknik
Förmedlning av indata till program och utdata från program, s.k. i/o INDATA Användaren ger indata som svar på frågor från programmet (terminal input) 2. Hårdkodning, indata ges i programmet i form av tilldelningssatser Indata läses från fil UTDATA Skrivs på skärmen (terminal output) Skrivs till fil Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

44 Numeriska beräkningar i Naturvetenskap och Teknik
Input/Output >> svar = input(‘ge input värde:’) ge input värde:10 svar= 10 >>svar=input(‘ge input värde:’) ge input värde:’abc’ abc Skriva till skärmen med disp >>disp(svar) Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

45 Numeriska beräkningar i Naturvetenskap och Teknik
Läsa skriva till-från filer 1. Spara workspace save myfile sparar alla variabler i myfile.mat load myfile.mat läser in alla variabler från myfile alt. save myfile a b c sparar variablerna a, b, c 2. Formatterad inläsning och utskrift fp= fopen(namn,’r’), öppnar fil för läsning fp= fopen(‘namn’,’w’), öppnar fil för skrivning Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

46 Numeriska beräkningar i Naturvetenskap och Teknik
Läsa skriva till-från filer stänga fil: fclose(fp) läsa från fil: A=fscanf(fp,formatkod, dim) dim = n, läs n element till A som kolonnvektor dim = inf, läs alla tal i filen till A som kolonnvektor dim = [m,n], m x n element till A som m x n matris skriva till fil: A=fprintf(fp,formatkod, A, dim) Formatkoder %e, %E exponentform med litet/stort e %f, decimalform, %u heltal, %s teckensträng, \n ny rad Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

47 Numeriska beräkningar i Naturvetenskap och Teknik
Input/Output Mer sofistikerad utskrift: fprintf(formatkod,x) Formatkoder: %a.bf decimalform, a siffror varav b decimaler, skrivs ut högerställt %a.be exponent, litet e %a.bE exponent, stort E %u heltal >>a = ; >>fprintf(‘talet är %4.2f’,a) Talet är 1.23 Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm

48 Numeriska beräkningar i Naturvetenskap och Teknik
M-filer I MATLAB kan man skriva sina program el. script i s.k. m-filer m.h.a. en inbyggd editor och en debugfunktion. För större program lägger man gärna olika funktioner i egna m-filer Öppna editorn med >>edit Del A, Tekniska Aspekter matlab 1. Kort historik, varfor berakningar med maskin? 2. lagniva-hogniva programering, koppling till CPU och instruktionsset (kort for att ge en ide) 3. kort jmf med andra programsprak, framforallt vad galler definitioner, tolkat resp. kompilerat 4. interaktiv anvandning av matlab (tar upp programmet pa skarmen i salen) 5. demo av baskunskaper: operatorer, prioordning, inf,nan, variabler, vektorer, matriser tilldelning, vektorisering, matrisoperationer, notation (kolonnotation etc) teckenstrangar, lasa & skriva filer, skapa figurer, 1D-2D plottar b/ programstruktur 1. m-filer 2. varfor program? 3. byggblock i pgm: satssekvenser, alternativ (if), repetitioner (loopar) 4. funktioner och funktionsanrop 5. att tanka pa innan man programmerar definition av problem, struktur, losningsmetod (kontinuerlig) debugging, dokumentation av/i pgm


Ladda ner ppt "Numeriska beräkningar i Naturvetenskap och Teknik"

Liknande presentationer


Google-annonser