Numeriska beräkningar i Naturvetenskap och Teknik

Slides:



Advertisements
Liknande presentationer
Talföljder formler och summor
Advertisements

Andragradsfunktioner & Andragradsekvationer
INTRODUKTION TILL PROGRAMMERING
Programstruktur: C för enchipsdatorer
Numeriska beräkningar i Naturvetenskap och Teknik
Numeriska beräkningar i Naturvetenskap och Teknik
Funktioner och programorganisation
De fundamentala datatyperna
Föreläsning 15 Matlab överkurs KTH, CSC, Vahid Mosavat.
Föreläsning 7 Analys av algoritmer T(n) och ordo
1 Ingenjörsmetodik IT & ME 2009 Föreläsare Dr. Gunnar Malm.
Operatorer.
Komplexa tal inför Laborationerna
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Föreläsning 12 Matlab J-uppgiften.
Programmeringsteknik K och Media
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
IT för personligt arbete F6
Flödeskontroll Satser i ett program utförs en och en efter varandra. Detta kallas sekvensiell flödeskontroll. Ofta är det dock nödvändigt att modifiera.
Programmering B PHP Lektion 2
INTRODUKTION TILL PROGRAMMERING
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Pekare och speciell programstruktur i inbyggda system
Repetition inför slutprovet
Programmeringsbegrepp
Programmering B PHP Lektion 2
Programmering B PHP Lektion 3
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Felkalkyl Ofta mäter man inte direkt den storhet som är den intressanta, utan en grundläggande variabel som sedan används för att beräkna det som man är.
Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar.
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Funktioner, styrstrukturer, manipulering av matriser
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
Grundläggande programmering
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Algoritmer. Ordet kommer från en persisk författare som kom från al’Khowârizmi (engelskans algorithm). Han skrev boken ’Kitab al jabr w’al-muqabala’.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Modulär programutveckling
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Grunderna i MATLAB 1 Vad är MATLAB? Användningsområden MATLAB-miljön
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Problemlösningsmetodik
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
DATORKUNSKAP Introduktionsföreläsning
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Beräkningsvetenskap I
Simulering Introduktion Exempel: Antag att någon kastar tärning
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
Föreläsning 2 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 2 ITP Lisa Brouwers.
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
1 Matlab, föreläsning 1 Oktober MATLAB Perspektiv på materialdesign Lina Kjellqvist Rum: K324 Telefon:
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Föreläsning 1 Introduktion till kursen. Algoritmer
OOP&M - teori1 OOP&M – Föreläsning 3 kap 2-4 Repetition Föreläsning-datayper-syntax-tilldelning.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
1 Föreläsning 13 programmeringsteknik och Matlab Funktioner, styrstrukturer, mer om matriser.
Anders Sjögren Operatorer. Anders Sjögren Operand(er)
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
KPP053, HT2015 MATLAB, Föreläsning 4
Python.
Grundläggande datavetenskap, 4p
Digitala tal och Boolesk algebra
Presentationens avskrift:

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

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.

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: 1623-1662 Uppfann den s.k ”Pascalinen” ca. 1645. 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

Numeriska beräkningar i Naturvetenskap och Teknik Gottfried Leibnitz: 1646-1716, Konstruerade ca. 1670 den första maskin som kunde utföra alla de fyra grundläggande algebraiska operationerna. Charles Xavier Thomas de Colmar: 1785-1870. 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

Numeriska beräkningar i Naturvetenskap och Teknik Charles Babbage: 1791-1871 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.

Numeriska beräkningar i Naturvetenskap och Teknik Alan Turing:1912-1954 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:1910-1995 Konstruerade 1941 den första program kontrollerade datormaskinen. Baserad på telefonreläer. Delvis finansierad av ”Deutsche Versuchsanstalt fur Luftfarth”.

Numeriska beräkningar i Naturvetenskap och Teknik John von Neumann:1903-1957 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

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

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

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)

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 = 3.14159265358793 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

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

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

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

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

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

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= 1 2 3 4 5 6 Matriser kan ha fler dimensioner än två... 7 8 9 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

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

Numeriska beräkningar i Naturvetenskap och Teknik Variabler På samma sätt >> A(1,1)=1 A = 1 >> A(1,2) = 2 A = 1 2 >>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

Numeriska beräkningar i Naturvetenskap och Teknik Speciella vektorer: >>a=1:10 ans= 1 2 3 4 5 6 7 8 9 10 >>a=0:0.1:1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 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([i1 .... 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

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

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

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

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/0 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

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

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= 2 4 6 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

Numeriska beräkningar i Naturvetenskap och Teknik Tilldelningar & operatorer: Elementvis multiplikation görs med ./ >> A.*B 2 8 18 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

Numeriska beräkningar i Naturvetenskap och Teknik Tilldelningar & operatorer: Vanlig matrismultiplikation, antalet rader i A lika med antalet kolonner i B: >> A*B 12 24 36 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

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

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

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

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

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

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

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

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

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

Numeriska beräkningar i Naturvetenskap och Teknik Switchsatser: switch variabel switch a case värde1 case {1} satsgrupper disp (a) case värde2 case {7} satsgrupper b=input(’give b’) ’ .... case värde3 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

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

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

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

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

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

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

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

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

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 = 1.1234; >>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

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