200 likes | 362 Views
Ingenjörsmetodik IT & ME 2009. Föreläsare Dr. Gunnar Malm. Dagens föreläsning. MATLAB i praktiken Hur man använder enkla program och funktioner för sina beräkningar. Ingenjörsrollen. Från DNs kultursidor http://www.dn.se/DNet/jsp/polopoly.jsp?d=&a=827474&sb2231i0=1_827474
E N D
Ingenjörsmetodik IT & ME 2009 • Föreläsare Dr. Gunnar Malm
Dagens föreläsning • MATLAB i praktiken • Hur man använder enkla program och funktioner för sina beräkningar
Ingenjörsrollen • Från DNs kultursidor • http://www.dn.se/DNet/jsp/polopoly.jsp?d=&a=827474&sb2231i0=1_827474 ”Jag läste till en examen i teknisk fysik på KTH för att jag trodde att matematiken och siffrorna skulle vara ett bättre språk än svenskan för att beskriva världen ...”
Matriser och speciella räknesätt • a=[pi 5] skapar en matris • a(1) tar ut det första elementet (index=1) ur matrisen a => svaret blir 3.1415 • ; stänger av utmatning av svar • .* multiplicerar ihop matriser med samma form/storlek
Matriser och speciella räknesätt Hela matrisen kan hanteras på en och samma gång! Inga uppräkningar eller slingor behövs i programkoden Räknesätten med punkten framför utförs elementvis i hela matrisen Matriser och vanliga tal kan blandas – då utförs beräkningen också elementvis
Matriser och speciella räknesätt Exempel: skapa en lagom stor matris fylld med siffran 2 Lösning: funktionen ones(m,n) ger matris fylld med ettor Siffran 2 kan multipliceras in på VARJE element
Matriser och speciella räknesätt >> ettor=ones(6,6) ettor = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> tvaor=2*ettor tvaor = 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Matriser och speciella räknesätt Exempel: beräkna rörelseenergin för en bil vid hastigheterna: 30,50 70 km/h Formel E=mv2/2 eller E=mv*v/2 Alltså behövs ’upphöjt till’ ^ eller ’gånger’ * Fungerar ^ eller * direkt, nej eftersom element i matriser ska hanteras
Matriser och speciella räknesätt >> v=[30 50 70]/3.6 v = 8.3333 13.8889 19.4444 >> m=1000; >> E=m*v^2/2 ??? Error using ==> mpower Matrix must be square. >> E=m*v*v/2 ??? Error using ==> mtimes Inner matrix dimensions must agree. >> E=m*v.^2/2 E = 1.0e+005 * 0.3472 0.9645 1.8904 >> E=m*v.*v/2 E = 1.0e+005 * 0.3472 0.9645 1.8904
Matriser och speciella räknesätt >> ettor=ones(6,6) ettor = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> tvaor=2*ettor tvaor = 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Studentaktivitet • Övning skapa 1:ans till 5:ans multiplikationstabell och presentera resultatet i en tabell. • Behöver inte vara tjusigt • Använd uppräkning, vektorer och/eller matriser
Studentaktivitet >> (1:5)'*(1:5) ans = 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25 >>
Vad är ett program • Ett program består avfunktionsanrop och formler/ekvationer • Villkorssatser: for-loopen kapitel 5 • Kommentarer för läsbarheten
Funktioner och program Tre varianter – • antingen ’inline’ för formler • eller med programfiler som skapas i en editor • Funktionsfiler som sparas från editorn
Skript eller programfiler • Öppna matlab-editorn • Skriv in dina ekvationer • Spara filen med lämpligt namn och prefixet .m
Funktionsfiler • Öppna matlab-editorn • Definiera in- och ut-värden till funktionen och funktionens NAMN • Skriv in dina ekvationer • Spara filen med samma namn som funktionen och suffixet .m
Jämförelse funktion/program • Programmet definierar sina egna x-värden • Funktionen kan hantera godtyckliga x-värden som användaren skickar in
Program innehåller funktioner • Alla inbyggda kommandon i matlab har formen av en funktion • T.ex. cos(x), size(x), ... • Man kan ANROPA sina EGNA funktioner
Program innehåller funktioner • Anropa funktionen stat • stat(randn(100,1)) • Svaret blir?