Matematik med Matlab. Allmänt. Matlabs uppbyggnad. Att komma igång. sid. 1 av oktober 2000

Storlek: px
Starta visningen från sidan:

Download "Matematik med Matlab. Allmänt. Matlabs uppbyggnad. Att komma igång. sid. 1 av oktober 2000"

Transkript

1 CHALMERS LINDHOLMEN Institutionen för Matematik Joakim Becker, Thomas Wernstål Matematik med Matlab sid. 1 av 6 oktober 000 Dessa övningsstenciler i MATLAB bygger på delar av det kompendium med samma titel som använts vid Matematikutbildningen vid Maskinlinjen på Chalmers läsåret 1999/000 och som utarbetats av Carl-Henrik Fant vid Matematiska institutionen på Chalmers. Allmänt. MATLAB är ett interaktivt program med mycket kraftfulla numeriska rutiner. Namnet MATLAB står för matrix laboratory. Det var ursprungligen ett program för matrishantering, men har numera utvecklats så att det lätt kan användas för grafisk representation, för att lösa olika problem inom matematisk analys och som ett programmeringsspråk för måttligt stora program. Denna kurs är avsedd att ge en introduktion till den version av MATLAB som just nu är aktuell på studentdatorerna vid Chalmers Lindholmen. En uppföljande kurs i MATLAB kommer att gå i tredje läsperioden. Tillsammans avser kurserna att ge en tillräcklig grund för dig att på egen hand utveckla dina kunskaper om MATLAB. Under hela utbildningen är det tänkt att du skall använda MATLAB som räkneverktyg, dessutom används programmet av allt fler företag så den tid du nu ägnar åt att lära dig grunderna är väl använd. För att övningarna skall kunna ge bestående kunskap krävs att du arbetar aktivt och medvetet med dem. Det kommer säkert dessutom att finnas anledning att gå tillbaka till det du en gång gjort så jag rekommenderar att du gör anteckningar och sparar lämpliga programfiler. Det kan också vara bra att du, parallellt med att du läser de stenciler som delas ut under kursens gång, läser motsvarande avsnitt i boken Användarhandledning för MATLAB 5 av Pärt-Enander och Sjöberg. I görligaste mån hänvisas till denna nedan. (P-E,S.1 syftar på kapitel sektion 1 i nämnda bok.) Matlabs uppbyggnad. Till skillnad från din miniräknare som arbetar med enstaka tal så arbetar MATLAB med listor av tal vektorer, matriser, flerdimensionella matriser, samt två andra objekttyper celler och strukturer. I början, troligen under hela denna kurs, kommer vi enbart att behandla de två enklaste typerna av objekt vektorer och matriser. En lista av tal kan vi tänka på som en vektor eller en radmatris dvs en 1 5-matris. Det är också så vi kan tänka oss att den uppfattas av MATLAB men kompletterad med matristypen (1,5). En matris som ex.vis lagras som listan tillsammans med matristypen (3,3). Notera ordningen på elementen i listan. En av svårigheterna då man lär sig MATLAB är just att lära sig tänka i listor eller matriser i kalkyler där man normalt bara tänker på enstaka tal. Samtidigt är detta en av MATLAB s fördelar om man lär sig utnyttja den. Om du tidigare har hållit på med programmering så har du säkert använt dig av for-slingor i programmen. Många sådana kan ersättas av matrisräkning vilket gör programmen betydligt effektivare. De program som MATLAB använder finns i s.k. m-filer. En m-fil är (i allmänhet) en textfil som innehåller MATLAB kommandon. Att de kallas m-filer beror på att namnet på filen skall ha ändelsen.m. En del av dessa filer finns inbyggda i MATLAB och är därför dolda för användaren, detta gäller exempelvis sin.m (den vanliga sinus-funktionen), andra finns tillgängliga så att man kan titta på innehållet, detta gäller exempelvis de hyperboliska funktionerna sinh, cosh vars beräkningsprocedurer finns lagrade i m-filerna sinh.m resp. cosh.m. Även de program som man själv skriver skall lagras som m-filer. Längre fram skall vi se hur man kan titta på innehållet i dessa filer och vilka krav MATLAB ställer för att hitta dessa filer. Att komma igång. Start: (P-E,S.1) Hur MATLAB startas varierar mellan olika datorsystem. På det Windows system ni arbetar i (vid studentdatorerna) öppnas MATLAB enklast genom att vänsterklicka på fliken MATLAB 5.3, som finns att hitta under Programs I Matlab på Start menyn. Efter en liten stund poppar en liten bild upp en kort stund på skärmen därefter dyker ett terminalfönster upp med lite text om Matlab och en rad To get started, type... Under den raden finns den så kallade matlabprompten». Då den syns är det klart att börja räkna. 1

2 Matematik med Matlab för MI1/MEI1 000/001 sid. av 6 Förberedelser: Som nämnts ovan finns alla matlabkommandon som m-filer. Du kommer också själv att skriva en del m-filer under kursens gång och senare. Dessa skall du samla i ett bibliotek F:\matlab. Börja därför med att starta filhanteraren Windows Explorer. Klicka på F: under My Computer i det vänstra delfönstret (Folders) och välj New I Folder under File på menyraden. Då skapas en ny mapp med addressen F:\new folder. Du kan nu ändra dess namn genom att klicka på detta bibliotek och välja Rename under File på menyraden. Ändra namnet på biblioteket till matlab. Stäng sedan Windows Explorer genom att antingen välja Close under File på menyraden eller som vanligt klicka på x i övre högra hörnet på fönstret. Byt nu i matlabfönstret arbetsbibliotek till F:\matlab. Detta kan du göra med kommandot cd (cd står för change directory ), dvs. skriv cd F:\matlab (eller bara cd matlab om du befinner dig i biblioteket F:) efter prompten» i MATLAB fönstret och tryck på vagnretur Return/Enter tangenten ( -). Det är viktigt att du i början av varje nytt arbetspass i MATLAB kontrollerar vilket bibliotek du befinner dig i. Detta kan du göra med kommandot pwd (vilket står för print working directory ). Byt sedan arbetsbibliotek till F:\matlab, om du inte redan befinner dig där. Om du glömmer bort att byta bibliotek så kommer MATLAB inte att kunna hitta de m-filer du sparat i annat bibliotek än det du befinner dig i. Du kan använda kommandot ls för att se vilka filer som finns i det bibliotek du befinner dig. Inmatning: (P-E,S.) MATLAB arbetar som redan nämnts med listor/matriser av tal. Ett enstaka tal kan vi uppfatta som en 1 1-matris. Tal, även komplexa, matas in precis som de skrivs, exempelvis 3+*i eller 5-*j. Notera * tecknet och att man inte har mellanslag inne i talet. Den imaginära enheten skrivs i eller j. Matriser skrivs in radvis. De inramas av [ och ]. Matriselementen separeras av mellanslag eller, tecken, raderna (utom den sista) separeras med ; tecken eller genom ett tryck på Return/Enter tangenten. All inmatning avslutas med att trycka på Return/Enter. Vill man att resultat inte skall skrivas ut på skärmen så avslutas kommandot med ;. Som exempel ger inmatningarna >>A=[1 3; ;7 8 0] eller >>A=[1,,3;4,5,6;7,8,0] resultatet A = I allmänhet tilldelar man det man matar in eller resultatet av en beräkning ett variabelnamn, matrisen ovan har namnet A, MATLAB kommer då att spara detta i vad man kallar arbetsutrymmet (workspace) och man kan använda det senare under samma arbetspass. Om inget annat namn ges så får senaste beräkningsresultatet eller inmatade matrisen automatiskt namnet ans. Kommandot who ger information om vilka variabler som finns i arbetsutrymmet. Spara och Rensa: (P-E,S.8) Kommandot clear tar bort alla variabler och kommandot clear A B x tar bort variablerna A, B och x. Då man avslutar MATLAB med quit eller exit så töms arbetsutrymmet. Om man vill spara variabler för framtiden så måste de sparas i en fil. Kommandona save tmp och save tmp A B sparar alla variabler respektive variablerna A och B i en binärfil tmp.mat. Denna placeras i aktuellt bibliotek. Kontrollera med kommandot pwd i MATLAB fönstret vilket detta är. Om det inte är det du vill så byt med hjälp av kommandot cd, innan du sparar med save. Med kommandot save utan filnamn sparas variablerna i en fil matlab.mat. De sparade variablerna i filen tmp.mat återfås med kommandot load tmp, variablerna i matlab.mat återfås med load. Dokumentering: Ett enkelt sätt att dokumentera vad man gör är att låta MATLAB skriva en dagbok. För att testa detta kan du göra följande: Ge kommandot diary on. Skriv ditt namn mellan -ar. I mitt fall Thomas Wernstål. Ge kommandot diary off. Välj nu Open under File på menyraden i matlabfönstret, och öppna filen diary (F:\matlab\diary). Innehållet i filen visas då i ett nytt fönster (i en s.k. editor). Där ser du då att allt som skrivits på skärmen efter diary on också skrivits till filen diary. Varje gång du ger kommandot diary on så fylls textfilen på, inget raderas eller

3 Matematik med Matlab för MI1/MEI1 000/001 sid. 3 av 6 skrivs över. Det är därför viktigt att stänga dagboken då man inte vill att kalkylerna skall dokumenteras. Du kan om du så önskar, m.h.a. editorn, också redigera texten i filen diary. Om du t.ex. ger kommandot diary ovning1 istället för bara diary så sparas allt som skrivs på skärmen i en fil med namn ovning1 istället. Detta kan vara praktiskt att känna till om du vill samla det du gör under kursens gång i olika filer, så att du senare vid behov lättare kan hitta det igen. Du kan också på samma sätt som ovan öppna (och redigera om så önskas) filen ovning1 i MATLAB editorn (alternativt kan du ge kommandot edit ovning1). Hjälp: (P-E,S.7) Man kan få information exempelvis om vad ett kommando utför dels via särskilda hjälpfönster, dels direkt i MATLAB fönstret. Hjälpfunktionerna kommer du åt genom att ge lämpligt kommando efter matlabpromptern eller genom att välja önskad hjälpfunktion under Help på menyraden i MATLAB fönstret. Kommandot helpwin startar ett hjälpfönster där man snabbt kan få information om alla kommandon. Då fönstret öppnas visas en lista över alla underbibliotek där MATLAB s programfiler finns lagrade. Genom att dubbelklicka på en sådan rubrik ex.vis matlab/elmat går man vidare i hjälpsystemet och får en lista över kommandon/program i det biblioteket. Dubbelklickar man på ett kommando i denna lista, ex.vis size så får man information om detta. Kommandot help kommando ex.vis help size ger samma information som den ovan beskrivna proceduren men nu direkt i MATLAB fönstret. Kommandot helpdesk startar en webläsare om man inte redan har en igång och laddar in en online manual. I denna kan man välja vad man vill titta på. Om man väljer matlab functions by index, klickar på bokstaven S och sedan på size så får man en mycket mer omfattande information om kommandot/funktionen size. Helpdesken innehåller allt man behöver kunna för att använda MATLAB. Kommandot demo ger en demonstration av MATLAB s olika kommandon, funktioner och tillämpningsområden. I ett separat fönster kan man med hjälp av menyer välja mellan ett stort antal demonstrationsexempel. Bra för den som på egen hand vill upptäcka MATLAB s möjligheter. Bra att veta: Man lämnar programmet med quit eller exit. Man kan avbryta beräkningar med kommandot Control-c. Man kan återfå tidigare givna kommandorader genom att trycka på piltangenten ". Om du skriver en eller flera bokstäver eller symboler och använder "-tangenten så återfår du den rad som börjar på detta sätt. Senare kommandon får man tillbaka genom att trycka på #. Man kan korrigera ett givet kommando genom att flytta markören med piltangenterna och! och sedan ta bort tecknen med Back-Space eller Delete-knappen. 1 Grundläggande operationer Syftet med denna övning är att träna på hur man skriver in matematiska uttryck i MATLAB och illustrera hur MATLAB kan användas som räknedosa. I vissa av övningsuppgifterna, i detta och efterkommande avsnitt, förekommer variablerna p 1 p ::: p 10. De avser siffrorna i ditt personnummer p 1 p p 3 p 4 p 5 p 6 ; p 7 p 8 p 9 p 10 (välj ett av era personnummer om ni är två som gör övningen tillsammans). Ett tips är också att spara arbetet med övningsuppgifterna i en dagbok. Detta gör du genom att ge t.ex. kommandot diary ovning1 innan du ger dig i kast med en övningsuppgift och avsluta med kommandot diary off när du är klar med uppgiften. 1.1 Aritmetiska operationer De vanliga aritmetiska operationerna mellan tal ser ut så här : + addition ; subtraktion * multiplikation = division ^ exponentiering (OBS! För att få denna symbol skriver man^följt av mellanslag!) 3

4 Talet skrivs pi medan talet e skrivs exp(1) Några exempel: Skriver vi >> 100*pi (utan ; före avslutande RETURN) blir svaret ans = Här står ans för det senaste svaret (ans är förkortning för answer). Skriver vi nu >> ans+exp(1) (utan ; före avslutande RETURN) blir svaret ans = Matematik med Matlab för MI1/MEI1 000/001 sid. 4 av 6 MATLAB tillämpar den vanliga prioriteringsordningen mellan de aritmetiska operationerna : >> 8^1/3 ger svaret.6667, medan >> 8^(1/3) ger svaret. Man får allmän hjälp om dessa begrepp i helpwin genom att gå till biblioteket matlab/ops och i helpdesk genom att välja functions by subject och sedan Operators and Special Characters. Du kan även läsa mer i P-E,S.4. Uppgift 1: Beräkna med hjälp av MATLAB värdet på p e;1 1. Variabler. (Det rätta svaret skall vara 0:9995) Variabler kan ges namn innehållande bokstäver (dock ej å,ä och ö) och siffror. Första tecknet måste vara en bokstav. Man bör inte använda namn på inbyggda funktioner eller MATLAB kommandon som variabelnamn. Programmet skiljer på stora och små bokstäver. Tecknet = används för att tilldela variabler värden. >>x=pi/3 ger variabeln x värdet =3. Man kan ge instruktioner på samma rad om man skiljer dem åt med komma (eller semikolon). T.ex. >>x=pi/4, X=x-pi ger x värdet =4 och X värdet ;3=4. Observera att MATLAB hela tiden skriver ut närmevärden. Som vi sett ovan tilldelas variabeln ans resultatet av den senast gjorda beräkning om ingen annan tilldelning görs. Om man vill ta reda på värdet på en variabel, t.ex. x, så skriver vi helt enkelt >>x Tilldelningstecknet = fungerar som vi sett på följande sätt. Först beräknas det som står på höger sida om = och sedan tilldelas variabeln på vänster sida om = motsvarande värde. Med x som ovan angivet, ger därför instruktionen >>x=x+1 resultatet x = 1:7854. Observera att MATLAB inte ser på detta kommando som en ekvation som skall lösas. Vi skall återkomma längre fram till hur man kan lösa ekvationer i MATLAB. Som nämnts tidigare så skrivs inte resultatet av ett kommando ut om vi lägger till ett semikolon efter kommandot. Resultatet registreras dock av MATLAB på samma sätt som tidigare. T.ex ger >>Y1=; >>Rest=Y1+1 att variabeln med namnet Rest får värdet 3. Uppgift : Försök på förhand lista ut värdet på variabeln y om följande beräkningar utförs i MATLAB. >>x=; y=x^(); x=y-1; y=x*y; När du tror dig veta svaret så kontrollera om du har rätt. Om du gissade fel så gå tillbaka och undersök steg för steg och försök hitta var du tänkte fel. 4

5 1.3 Elementära funktioner Matematik med Matlab för MI1/MEI1 000/001 sid. 5 av 6 MATLAB har alla de vanliga elementära grundfunktionerna, alltså exponential- och logaritmfunktionerna, de trigonometriska funktionerna och deras inverser, absolutbelopp, kvadratrot, och flera andra. Här följer en lista på några av MATLAB s funktioner: exp, log (= ln), log10 (= 10-logaritmen), sin, cos, tan, atan (= arctan), asin, abs, sqrt sinh, cosh, tanh Observera att man alltid måste ha () runt variabeln som i sin(pi/3). T.ex beräknas p ln( e) genom att skriva >>y=log(sqrt(exp(1))) Det finns ytterligare funktioner t.ex. sign, round, floor, ceil Man får en fullständig lista i helpwin under matlab/elfun. Läs även mer i P-E,S.4. p Uppgift 3: Använd MATLAB för att beräkna x = sin 3 y = ln z = e och x y=z. (Notera att man inte kan skriva e^x för exponentialfunktionen) 1.4 Felmeddelanden I likhet med många andra program är MATLAB inte speciellt förlåtande, i det avseendet att programmet är känsligt för felaktiga instruktioner av användaren. Använder man funktioner eller kommandon som inte finns inbyggda i MATLAB och inte heller finns definierade på annat sätt, så kommer programmet att ge felmeddelande. Samma sak händer om man använder en variabel som inte tidigare givits ett värde eller glömmer ett tecken i ett uttryck. Det är lätt hänt att man råkar stava fel eller att det smyger in sig en stor bokstav där det skall vara en liten. Här några exempel. >>plutten??? Undefined function or variable plutten. MATLAB vet inte vad plutten är. Du måste först ge plutten ett värde, exempelvis >>plutten=0; Nu går det bra att skriva >>plutten utan att råka ut för några protester. Ännu ett exempel: >>x=sin??? Error using ==> sin Incorrect number of inputs. Man måste naturligtvis ge något argument som sinus-funktionen kan räkna ut. >>x=sin(plutten) går t.ex. bra. Här ett exempel där man felaktigt använder stora bokstäver: >>X=SIN()??? Undefined variable or capitalized internal function SIN; Caps Lock may be on. En vanlig orsak till att man av misstag får stora bokstäver är att man råkat trycka på knappen Caps Lock. Tryck ner den igen i så fall! Uppgift 4: Skriv in följande felaktiga rad i MATLAB: >>sin Reproducera sedan det felaktiga kommandot med ". Redigera sedan om uttrycket genom att flytta markören med och! så att kommandot blir rätt. 1.5 Formatering av utskrift och närmevärden Man kan kontrollera antalet decimaler som skrivs ut och formen på utskriften med hjälp av kommandot format. De vanligaste varianterna är format short ger fem signifikanta siffror format long ger femton signifikanta siffror format short e ger fem signifikanta siffror i flyttalsnotering format long e ger femton signifikanta siffror i flyttalsnotering En fullständig lista av de olika utskriftsformaten finner man under format i matlab/general. 5

6 Prova med att skriva ut 10 i de olika utskriftsformaten, t.ex. >> format long >> 10*pi ans = (Läs mer i P-E,S.6) Matematik med Matlab för MI1/MEI1 000/001 sid. 6 av 6 MATLAB räknar enbart med närmevärden. Här några uppgifter för att illustrera det. Uppgift 5: Tilldela c värdet p 7 p 8 p 9 p 10 =1000 (siffrorna p 1 :::kommer från ditt personnummer. Se ovan). a. Beräkna talet q =sin(e) ; sin(e)=cos(e) dels med hjälp av MATLAB och dels m.h.a. räknedosa (om du har en sådan). Ger någon av dem rätt svar? (Beräkna för hand med hjälp av lämplig formel) b. Sätt x =1+(10c) ;n och y = (10 c) n (x ; 1) Då är det exakta värdet av y lika med 1, men MATLAB kommer att för stora heltal n ge andra värden. Finn det minsta heltal för vilket y =0. Vilket värde får y för n-värdet dessförinnan? Enklaste sättet att utföra upprepade beräkningar av denna typ är att skriva allt på en rad som körs gång efter gång med hjälp av pil-tangenten. Gör så här: Skriv först n=0 och sedan på en ny rad n = n+1, x=1+(10*c)^(-n), y=(10*c)^n*(x-1) Då du återkallar denna rad med pilupp-tangenten första gången har n värdet 1 och får nytt värde varefter x och y beräknas med detta n-värde. Med hjälp av pilupp-tangenten kan du upprepa så många gånger du vill, denna metod brukar jag kalla en mekanisk snurra. 1.6 Extra uppgift för den flitige Antag att man är intresserad av att hitta lösningar till en ekvation av typen f (x) =0, där f (x) är en reellvärd och deriverbar funktion av en reell variabel. Ett sätt är då att använda sig av den s.k. Newton Raphsons metod (Se lämplig gymnasie-litteratur). Detta innebär att man bildar en följd av tal x 0 x 1 x ::: x n :::genom att först sätta ett värde till x 0 och sedan beräkna de övriga talen m.h.a. formeln x n+1 = x n ; f (x n )=f 0 (x n ). Om derivatans värde f 0 (x) är 6= 0ien omgivning av en rot och om startvärdet x 0 ligger tillräckligt nära, så kan man visa att följden konvergerar (närmar sig) mot. Exempel: Antag att vi vill hitta lösningar på ekvationen cos x = x. Sätter vi f (x) = x ; cos x så söker vi alltså x sådana att f (x) =0. Vi har f 0 (x) = 1+sinx så talföljden i Newton Raphsons metod genereras i detta fall av formeln x n+1 = x n ; (x n ; cos x n )=(1 + sin x n ). Med startvärdet x 0 = 1 får vi x 1 = x 0 ; (x 0 ; cos x 0 )=(1 + sin x 0 ) = 1 ; (1 ; cos 1)=(1+sin1)=0:7504::: och sedan x = x 1 ; (x 1 ; cos x 1 )=(1 + sin x 1 )=0:7391:::, osv... Ett enkelt sätt att skapa talföljden ovan är m.h.a. en s.k. mekanisk snurra (se uppgift.5b ovan). Skriv >>x=1 >>x=x-(x-cos(x))/(1+sin(x)) Fortsätt sedan att reproducera >>x=x-(x-cos(x))/(1+sin(x)) m.h.a. pilupp-tangenten. Man ser snart att talen ändras allt mindre och mindre och närmar sig ett fixt värde som är ca. 0:7391. Detta är ett närmevärde till en lösning på ekvationen. Skissa i samma figur grafen till funktionen cos x och linjen y = x, och avgör om du tycker det känns rimligt att de skär varandra vid x 0:7391. Pröva vad som händer för andra startvärden på x 0. Finns det fler rötter? Uppgift 6: Hitta på en egen ekvation som du vill lösa m.h.a. Newton Raphsons metod och lös den som i exemplet ovan. (anm. Det finns i MATLAB inbyggda kommandon som ger nollställen till funktioner (se t.ex. fzero och roots)) 6

7 Radmatriser och kurvritning Matematik med Matlab för MI1/MEI1 000/001 sid. 7 av 6 I denna övning skall vi se hur man på ett enkelt sätt kan generera radmatriser och hur dessa kan användas till att rita funktionsgrafer..1 Operationer med radmatriser För att utnyttja MATLAB effektivt skall nästan alla variabler man använder vara radmatriser eller större matriser. Detta innebär en viss komplikation. Multiplikationen x*y betyder matrismultiplikation. Om x och y är enstaka tal så är det den vanliga produkten. Är x och y matriser så finns inte produkten såvida inte typerna stämmer överens. Vi kan som nämnts ovan föreställa oss en matris lagrad som en lång lista av tal tillsammans med uppgift om matrisens typ. Ofta vill vi beräkna elementvisa (punkt-visa) produkter av tal i sådana listor. Den produkten skrivs.* alltså med en punkt framför *-tecknet. Med x = [1,,3] är x.*x= [1,4,9]. På samma sätt skrivs division x./y och potenser x.^y. Man kan även använda de elementära funktionerna på matriser. Allmän hjälp om detta område får du i helpwin under matlab/elmat och matlab/ops. Exempel (med utskrift i format short): >>x=[1 3]; y=[4 5 6]; ger x+y x.*y x./y x.^y exp(x) Viktiga specialkommandon är ones och zeros. De användes för att generera matriser bestående av enbart ettor respektive nollor. T.ex. ger kommandot ones(1,3) eller ones(size(x)) svaret 111om x är en radmatris av längden 3. Andra exempel: >>x=[1 3 4]; z=ones(size(x))./x ger svaret >>z = >>x+ones(size(x)) ger svaret >>*ones(size(x)) ger svaret Det näst sista svaret hade man också kunnat få genom att skriva x+1. z kan man erhålla med z = 1./x. (Läs mer i P-E,S 3.5-6) Uppgift 1: Skriv in radmatriserna x =[p 1 p p 3 ] och y =[p 4 p 5 p 6 ]. Beräkna x+y, x-y, x.*y, x.^y, x./y, x.\y, x.*sin(y). Skriv upp vad MATLAB svarar på x y. Hur tolkar du svaret? Kom ihåg detta svar och orsaken. Du kommer säkert att få det fler gånger.. Generering av aritmetiska följder a a + h a +h b med hjälp av kommandot Om a, h och b är givna tal kan man bilda radmatrisen x = x=a:h:b. >>x=-5::5 ger x = Analogt ger kommandot >>x=-pi:0.1:pi; radmatrisen x=[ ], vilket är en matris av längden 63. Kolla genom att mata in x enligt ovan och sedan skriva >>length(x) Låt också datorn skriva matrisen x på skärmen genom att skriva >>x (utan semi-kolon) 7

8 Matematik med Matlab för MI1/MEI1 000/001 sid. 8 av 6 Vill man ha steglängden h = 1 räcker det att skriva >>x=a:b t.ex. >>x=0:10 x = Om b < a så kan man ha h < 0. Ytterligare information får du under matlab/ops. Läs den informationen, kolon-operatorn är en mycket viktig ingrediens i Matlab. (Läs mer i P-E,S 4.3) Uppgift : Låt n vara ett givet positivt heltal. Generera radmatriserna m=[-1,-,...,-n] och x=[^(-1),^(-),..., ^(-n)]. Använd sedan kommandot sum(x) för att beräkna den geometriska summan Vilket är det första n-värde för vilket s>0:999999? s = ;1 + ; + + ;n.3 Logiska operationer Om A och B är matriser av samma typ så kan de jämföras elementvis. Exempelvis ger A == B en matris av samma typ som A och B med 0 på de platser där elementen är olika och 1 på de platser där elementen är lika. Titta i matlab/ops för att läsa mer om detta. (Läs mer i P-E,S ) Uppgift 3: Använd kommandot rand (rand = random = slump) för att generera en radmatris R, med 10 element. Titta efter i helpwin under matlab/elmat hur rand fungerar. a. Vad väntar du att kommandot R >= 0.5 skall ge för resultat? Ge kommandot och jämför. Sätt namn på den radmatrisen med R5 = ans. b. Vad är sum(r5)? Förklara! c. Sätt V = find(r < 0.4). Vad är V? R(V)? Förklara!.4 Kurvritning Om x = [x(1),...,x(n)] och y = [y(1),...,y(n)] är två radmatriser av samma längd så kommer ritkommandot plot(x,y) att rita en kurva som sammanbinder de n stycken punkterna (x(1),y(1)),..., (x(n),y(n)). Omx eller y innehåller flera rader så kommer flera grafer att ritas i samma figur. Om man inte ger ett särskilt kommando kommer MATLAB att välja koordinataxlarna så att samtliga punkter syns. (Detta kallas auto-scaling.) Man kan dirigera på vilket sätt kurvan ritas genom att ge order om särskild linjetyp. Man kan också rita ut punkterna utan att sammanbinda dem genom att bestämma vilken punkttyp som skall användas. Här några exempel: >>x=-3:0.5:3;y=sin(x); >>plot(x,y) >>plot(x,y, : ) (Prickad sammanbunden kurva.) >>plot(x,y,. ) (Punkterna utritade som små prickar.) >>plot(x,y, o ) (Punkterna utritade som små cirklar.) Allmän hjälp för tvådimensionell grafik ges i matlab/graphd. (Läs mer i P-E,S 13.1) Uppgift 4: Skriv in A=1::11, B=rand(1,6) och C=rand(6,3). Testa kurvritning med plot(a,b), plot(b), plot(a,c) samt plot(b,c, * ). 8

9 .5 Funktionskurvor Matematik med Matlab för MI1/MEI1 000/001 sid. 9 av 6 Av exemplen ovan framgår det redan hur man kan rita funktionskurvor. Säg att vi vill rita funktionen f (x), på intervallet a x b. Man börjar då med att välja en lämplig steglängd h och bildar sedan radmatrisen x=a:h:b. Därefter låter man MATLAB beräkna funktionsvärden samt ger dessa ett namn. Man får funktionskurvan uppritad med kommandot plot(x,funktionsnamn). Ett exempel gör detta klarare: >> x=-*pi:0.1:*pi; >> f=sin(3*x)+cos(5*x);plot(x,f) Här ritas funktionen f (x) =sin3x + cos 5x på intervallet [; ]. På samma sätt ritar man funktionen g(x) =x sin x på samma intervall med hjälp av kommandot >>g=x.*sin(x.*x);plot(x,g) Uppgift 5: Rita ovanstående figurer. Vid kurvritning bör man tänka på att det blir bättre graf om man har fler punkter, men bara upp till en viss gräns. Radmatriserna bör inte ha fler än ca 400 element. Däröver blir det bara slöseri med beräkningstid och minnesutrymme. I synnerhet om bilden skall skrivas ut på papper så är detta mycket viktigt..6 Flera kurvor i samma figur Antag att vi vill rita funktionerna f och g ovan i samma figur. Vi kan då ge kommandot plot(x,f -,x,g, -. ) eller bara plot(x,f,x,g) Det finns också en annan möjlighet. Antag att vi först ritar funktionen f med hjälp av kommandot >>plot(x,f) Man kan sedan ge kommandot >>hold on Då kommer de gamla kurvorna att behållas när nya kurvor ritas. Till exempel >>plot(x,g) När man inte längre vill behålla gamla kurvor ger man kommandot >>hold off Kommandot hold ensamt innebär att man skiftar från hold on-läge till hold off-läge, (om man tidigare gett kommandot hold on ) eller från hold off-läge till hold-on-läge. Läs vidare i matlab/graphd. (Läs mer i P-E,S 13.3).7 Dimensionering av koordinataxlarna Normalt väljer MATLAB ett koordinatsystem så att alla punkter som skall ritas syns på skärmen. Man kan styra valet av koordinataxlar med hjälp av kommandot axis. För att ta reda på hur axis fungerar kan du läsa hjälptexten i matlab/graphd. (Läs mer i P-E,S 13.3) Uppgift 6: Ett bekvämt sätt att ge ett plotkommando där det är lätt att ändra är att på en enda rad skriva enligt följande exempel. >> a=0; b=1; h=(b-a)/400; x = a:h:b; y = sin(1./x); plot(x,y) Med vänster och höger piltangenterna kan du flytta markören till den plats du vill ändra. Backspace och del raderar, pröva vad de tar bort. a. Rita en figur i vilken de tre kurvorna y =sin(x)=x y =sin(1=x) och y =1 förekommer samtidigt. Den sista får du med y = ones(size(x)). Använd zoom för att titta närmare på kurvorna. b. Rita kurvan som ges av y =1; x om x 0 och y =0annars på intervallet ; x. Skriv in y=(1-x.^).*(x>=0). Rita nu kurvan y =1; x om 0 x 1 och 0 annars..8 Teckensträngar Elementen i en matris kan även vara teckensträngar, dvs följder av tecken placerade mellan två symboler, (s.k. fnuttar). >> A=[ så här kan ; det se ut ] ger (om man gör ett mellanslag så att de två raderna har lika många 9

10 Matematik med Matlab för MI1/MEI1 000/001 sid. 10 av 6 element) A = så här kan det se ut Detta använder man bland annat då man vill ha text i en graf. Till exempel lägger man in en titelrad med kommandot title. Med text eller gtext kan man lägga in funktionsuttrycket inplacerat på lämplig plats. Man kan även använda figurfönstrets menyer för att t. ex. lägga till text till en graf. (Läs mer i P-E,S 13.3) Uppgift 7: Lägg in en titelrad med era namn på den sista bilden. Lägg också in funktionsuttrycken inplacerade på lämpliga platser..9 Olika sätt att hantera egna funktioner. En svårighet då man ritar kurvor y = f (x) med Matlab är att man måste komma ihåg att räkna om y varje gång man ändrar x. Ett sätt att lösa denna komplikation är att skriva en funktionsfil för funktionen. Vi väntar till lite senare i kursen med att förklara hur funktionsfiler fungerar. Man kan dock skapa en funktion som man skall använda tillfälligt med hjälp av inline som i följande exempel där allt skrivs i Matlab-fönstret: fun=inline( 3*x*.(x+1)./(x.^+1), x ); Nu finns funktionen fun lagrad i arbetsutrymmet och om vi vill se beräkningsformeln så skriver vi: formula(fun) och får svaret 3*x.*(x+1)./(x.^+1). Man kan utelämna punkterna i definitionen för att låta Matlab sätta dit dem efteråt. fun=inline( 3*x*(x+1)/(x^+1), x ); formula(fun) ger nu 3*x*(x+1)/(x^+1)y. Denna funktion kan inte användas om x är en matris. För att punktera operationerna skriver vi: fun=vectorize(inline( 3*x*(x+1)/(x^+1), x )); varefter formula(fun) ger svaret 3*x.*(x+1)./(x.^+1). Nu kan du kontrollera att filen finns i det aktuella biblioteket med kommandot what. Testa sedan filen med >> fun(1) och >> fun([1,,3]) Fungerade detta så kan du rita grafen med >> fplot( fun,[-1,1]) Dessa tre steg är ett bra sätt att kontrollera en sådan här funktonsfil fungerar (fplot står för funktionsplot). Se även help fplot. Vi väntar till lite senare i kursen med att förklara hur funktionsfiler fungerar. Uppgift 8: Man brukar definiera stegfunktionen som steg(x) = 0 om x < 0 och steg(x) = 1 om x 0. Skapa en funktion steg m.h.a inline. Testa den som ovan..10 Använd matrisoperationer för effektivitet! Vi avslutar med ett exempel på en summa. Antag att vi vill beräkna de första termerna i summan 1 ;1:1 + ;1:1 +3 ;1:1 +. Med en for-slinga kan vi beräkna summan med följande rad, där vi också låter MATLAB ta tiden, >>tic,s=0;for n=1: ,s=s+1/n^1.1;end,s,toc där tic startar tidtagningen och toc avslutar den. Om vi använder matrisoperationer kan vi istället skriva (varför?) >>tic,n=1: ;s=(1./n.^1.1)*ones(size(n)),toc Här betyder att vi transponerar matrisen. Uppgift 9: Vad blir resultatet? Vilken operation tar längst tid? 10

11 Matematik med Matlab för MI1/MEI1 000/001 sid. 11 av 6 3 MATLAB som matrishanterande räknedosa. Detta avsnitt förutsätter att läsaren är bekant med den linjära algebrans mest grundläggande begrepp (t.ex. matrismultiplikation, system av linjära ekvationer och determinant ). Hjälp till detta kapitel hittar du i helpwin under matlab/ops, matlab/elmat och matlab/matfun. Läs mera i P-E,S kap 3, 4 och Grundläggande matrisoperationer (P-E,S 3.1-) Man matar in matriser radvis med mellanslag eller kommatecken mellan radelementen och med semi-kolon eller tryck på return/enter-tangenten mellan raderna. Så till exempel ger inmatningen >>A=[1 3; 4 5 6; 7 8 0], x=[-1;0;] resultatet A = 1 3 x = ; Addition, subtraktion och multiplikation av matriser betecknas med +, - resp. *. Exempel: >>b= A*x b = 5 8 ;7 Uppgift 1: Definiera matriserna 1 ; 6 A = B = E = 7 ;3 5 4 ;1 ; ;3 ; C = D = 4 0 ;, a. Beräkna A + B, ;A, A och 3A ; 5B. b. Beräkna A + C. c. Beräkna AC. d. Beräkna AB. e. Jämför DE och ED. f. Beräkna C^ och C.^. 3. Transponering och inversmatris (P-E,S 3.3-4, 7.1) Symbolen för transponering är. Transponering av en radvektor ger till exempel kolonnvektor: >> x=[-1 0 ] ger alltså resultatet x = ;1 0 Man får inversen av A med kommandot inv(a). 11

12 Med A enligt ovan får man: >> C=inv(A) C = ;1:7778 0:8889 ;0:1111 Matematik med Matlab för MI1/MEI1 000/001 sid. 1 av 6 1:5556 ;0:7778 0: ;0:1111 0: ;0:1111 Kommandot norm(v) ger absolutbeloppet av en vektor v och cross(u,v) ger kryssprodukten. Uppgift : Låt A C D och E vara matriserna ur uppgift 1. a. Beräkna skalärprodukten mellan vektorerna D och E t med hjälp av matrisoperationer. Beräkna även kryssprodukten. b. Beräkna norm(d) och sqrt(d*d ). Förklara. c. Beräkna A t (transponatet av A). Jämför med A. d. Inför en tredje rad i A genom att sätta den lika med E t. Låt A vara den nya matrisen. e. Beräkna A ;1. f. Jämför (A t ) ;1 och (A ;1 ) t. g. Beräkna (AC) t och C t A t. Förklara. 3.3 Rader, kolonner och enskilda matriselement. Nya matriser av gamla. (P-E,S 4.1-3) Om M är en given matris betecknar M(r,:) den r:te raden i M, M(:,k) är den k:te kolonnen och M(r,k) är elementet på plats (r,k). Kommandot [m,n]=size(m) ger typen av matrisen M. Om u och v är två vektorer med heltalskomponenter så betecknar M(u,v) den undermatris av M som består av de rader vars index ges av vektorn u och vars kolonner är kolonnerna i M med index givna av vektorn v. Låt oss exemplifiera: >> M=[11:15;1:5;31:35] M = >> M(1,:) ans = >> M(:,1) ans = >> M(3,4) ans = 34 >> N=M([ 3],[1 3 5]) N = Man kan ändra enstaka element eller hela rader och kolonner genom att direkt tilldela dem nya värden. Exempel: >> M(3,4)=134 M = >> M(:,5)=[1:3] 1

13 M = Matematik med Matlab för MI1/MEI1 000/001 sid. 13 av Man kan ändra storlek på en matris med direkta tilldelningskommandon. Matrisen utökas eventuellt med tillägg av extra nollor. Exempel: >> N(4,:)=ones(1,3) N = Man kan även bygga matriser med andra matriser som block. Exempel: >> P=[[M;(-1).^(1:5)] N] P = ;1 1 ;1 1 ; Man kan också göra om formen på en m n-matris med reshape(m,r,k), under förutsättning att r k = m n. M(:) gör om M till en kolonnmatris. Ordningen på elementen i listan M ändras inte av dessa kommandon. Uppgift 3: Genomför beräkningarna i ovanstående exempel och kontrollera att du och jag får samma resultat. Har jag skrivit rätt? Är något oklart? 3.4 Speciella matriser Det finns ett antal kommandon som är avsedda för att bygga upp nya matriser. Här följer ett urval: zeros(n) n n-matris med bara nollor zeros(n,m) n m-matris med bara nollor eye(n) enhetsmatris av typ n n eye(n,m) n m-matris med ettor i diagonalen och nollor för övrigt ones(n) n n-matris med bara ettor ones(n,m) n m-matris med bara ettor rand(n) n n-matris vars element är tal mellan 0 och 1, slumpmässigt utvalda. rand(n,m) n m-matris vars element är tal mellan 0 och 1, slumpmässigt utvalda. Ytterligare några användbara kommandon för att bygga upp nya matriser är tril(a) ger den undre triangulärmatrisen i den givna matrisen A triu(a) ger den övre triangulärmatrisen i A diag(v) ger, om V är en rad- eller kolonnmatris, en matris med V på diagonalen och 0 på övriga platser. diag(a) ger, om A är en matris, en kolonnvektor med diagonaleelementen i A som element. Det finns även ett antal speciella matriser som den nyfikne läsaren kan inspektera, dessa hittar du i helpwin under matlab/elmat Specilized matrices. (Läs mer i P-E,S 4.1) Uppgift 4: Stora matriser byggda av mindre block. a. Skriv in följande: M= ones(3,3); N=zeros(,3); P=[,,]; Q=eye(4); R=rand(4,); X=[M,[N;P];Q,R] b. Skapa följande matris. Ledning: help diag. S = 6 4 ;1 0 0 ;1 ; ;1 ; ;1 ;1 0 0 ;

14 Matematik med Matlab för MI1/MEI1 000/001 sid. 14 av Ekvationssytem. (P-E,S 7.3, 7.7) Om A är en icke-singulär (d.v.s. inverterbar) kvadratisk matris, kan man entydigt lösa systemet AX = b för varje matris b som har lika många rader som A. Lösningen ges av X = A ;1 b. Analogt om b har lika många kolonner som A så ges lösningen till XA = b av X = ba ;1. Observera att dessa formler aldrig används till numerisk beräkning av lösningen. För både inverterbara och icke-inverterbara matriser kan lösningen till AX = b erhållas med hjälp av Gausseliminering i ekvationssystemet tills koefficientmatrisen är triangulär. Ofta väljer man att presentera räkningarna utan att ta med de obekanta. Man bildar då systemets totalmatris eller utökad koefficientmatris som består av koefficientmatrisen följd av högerledet, ofta separerade med ett lodrätt streck för att förtydliga att det handlar om en totalmatris till ett ekvationssystem. På denna matris gör man sedan radoperationer tills koefficientmatrisen är triangulär, därefter kan man enkelt lösa ut de obekanta ev. på parameterform, eller se att systemet saknar lösning. I Matlab erhålls trianguleringen genom att man bildar systemets totalmatris A1 = [A b] och sedan beräknar T = rref(a1),(rref är förkortning av row reduced echelon form. Ur denna kan man bestämma X. Även ekvationen XA = b kan lösas med hjälp av rref, men då måste ekvationen först transponeras, (XA) 0 = b 0, som är samma som A 0 X 0 = b 0. Det vanligaste sättet att beräkna en lösning till ekvationssystemet AX = b i Matlab ges av X=A\b. Om matrisen A är kvadratisk så erhålls en lösning genom Gausselimination. Även om systemet saknar lösning eller har parameterlösning så får man ett svar dock tillsammans med en varning. Om matrisen är inverterbar så erhålls samma lösning som med matrisinversen ovan, (beräkningsrutinen är dock en annan så det är inte säkert att man får exakt samma numeriska resultat). Om A inte är kvadratisk så är X=A\b en lösning till AX = b med minstakvadratmetoden. Det innebär att även om systemet saknar lösning så får man alltså ett svar. Analogt ger kommandot Y=c/A lösningen till systemet Y A = c för varje matris c som har lika många kolonner som A. Kommentarerna ovan gäller även denna operation. T.ex., med A = och b = 5 8 ;7 ger X = A\b X = ;1 0 Vidare ger rref([a b]) matrisen ; ur vilken vi direkt kan utläsa samma lösning som ovan. Låter vi A = 1 3 ; ; och b = 4 5 så ger T = rref([a b]) T = 1: : :0000 0: :0000 Den sista raden ger oss ekvationen 0=1vilket visar att ekvationssystemet AX = b saknar lösning. 14

15 Matematik med Matlab för MI1/MEI1 000/001 sid. 15 av 6 Däremot ger X = A\b X = 1:0e +15 4:1 :9555 ;3:3777 Här ges emellertid en varning som säger oss att detta kanske är fel. Om vi ändrar högerledet till b = 4 5 ;1 så ger T = rref([a b]) T = 1: :500 0: :0000 0:8750 1: Ur denna matris kan vi se att systemet har parameterlösning. Nu ger X = A\b X = ;0:5000 0:7500 1:0000 Även nu ges en varning som säger oss att detta kanske är fel. Exempel: Vi bestämmer minstakvadrat-lösningen till systemet x 1 +x = 1 3x 1 +4x = 3 5x 1 +6x = 5 Vi kallar systemets matris för W. I matrisbeteckningar blir systemet alltså W*X=b. Så här löser vi det: >> W=[1 ; 3 4; 5 6]; b=[1; 3; 5]; X= W\b X = 1 0 Vi undersöker om detta är en lösning till ekvationssystemet genom att ge kommandot: >> W*X ans = Notera att detta system är entydigt lösbart men det vet vi inte utan att triangulera det. Om vi ändrar högerledet till b=[1;0;0] så är systemet W*x=b inte längre lösbart. MATLAB ger då minstakvadratlösningen: >> b=[1 0 0] ; X=W\b X = ;1:3333 1:0833 Vi ser att detta inte är lösning till den givna ekvationen: >> W*X ans = 0:8333 0:3333 ;0:1667 OBS! Om A och c är radmatriser av samma längd och Y är en lösning till ekvationen YA = c så är Y ett tal och c en multipel av A. Omc X inte är X en multipel av A så ger Y=c/A minstakvadratlösningen Y som minimerar jc ; YAj. I detta fall är Y = (a i c i )= a i. Jag nämner detta här för att belysa ett annat problem: Antag att vi vill beräkna den elementvisa divisionen x./sin(x) men råkar glömma punkten. Matlab ger då ingen varning utan beräknar 15

16 Matematik med Matlab för MI1/MEI1 000/001 sid. 16 av 6 X (x i sin(x i ))= X sin (x i ). Vi kan sedan få fullständigt obegripliga felmeddelanden eller helt felaktiga resultat. Uppgift 5: I denna uppgift skall du undersöka några olika ekvationssystem och jämföra lösningarna som erhålls med de olika metoderna som beskrivs ovan. Matriserna C D och E är samma som i uppgift 1, matrisen A är den du fick i uppgift d. a. Lös ekvationssystemen AX = E och Y A = D med hjälp av rref (transponera först ekvationen Y A = D). b. Jämför med resultatet som ges av matlabs operationer A\E och D/A. c. Vilken lösning till ekvationssystemet CX = E ger X = inv(c)*e? Vilken lösning till ekvationssystemet CX = E ger X = C\E? d. Bilda totalmatrisen C1 till ekvationssystemet ovan, dvs C1 = [C,E]. Låt Matlab beräkna trappstegsmatrisen till C1 med hjälp av kommandot rref(c1). Vad kan du nu säga om lösningen till ekvationssystemet. i. Lös CX = F med hjälp av rref([c,f]). Vad ger X = C\F? Ser du något samband mellan h ;1 5 e. Låt F = lösningarna? f. Skriv x=-5:.1:5;y=x+.5*sin(x+1);plot(x,y, + ). Bestäm ekvationen för den räta linje y = kx + m som enligt minsta kvadratmetoden bäst ansluter till de mätdata du just plottat. Rita in mätdata och den räta linjen i samma figur. Beräkna även medelfelet. Ledning: Sätt först upp ekvationssystemet kx i + m = y i i =1 :::n. Koefficientmatrisen kan man bilda genom A=[x,ones(size(x)) ] och systemet kan skrivas Au = y t där u =[ m k ]. Medelfelet fås som norm(y -A*u)/sqrt(n) där n=length(x) är antalet mätdata. Ett betydligt enklare sätt att bestämma u är dock att använda kommandot polyfit. 16

17 Matematik med Matlab för MI1/MEI1 000/001 sid. 17 av 6 4 Att skapa egna kommandon och att programera i MATLAB. Denna vecka skall delar av ert arbete redovisas för oss lärare, i en s.k. inlämningsuppgift. Bland annat ingår uppgifterna i detta avsnitt i denna inlämningsuppgift. Glöm därför inte att spara arbetet med uppgifterna i en dagbok. Utförlig information om hela inlämningsuppgiften och hur den skall redovisas finns på separat stencil som ni som vanligt kan hämta från kursens (inofficiella) hemsida: Detta redovisningsmoment i MATLABkursen är obligatoriskt och skall vara slutfört senast fredagen den 13:de oktober. Som tidigare förekommer parametrarna p 1 p ::: p 10 i vissa uppgifter. Dessa syftar som vanligt på siffrorna i era personnummer p 1 p p 3 p 4 p 5 p 6 ; p 7 p 8 p 9 p 10. Några råd innan du skall skriva m-filer Innan du första gången skriver en m-fil bör du ha skapat ett eget matlab bibliotek (F:\matlab). Om så inte är fallet, läs hur man gör i delavsnittet Att komma igång i början av detta övningskompendium. För att skriva och spara egna m-filer behövs en lämplig texteditor. Förslagsvis använder ni MATLAB s egen editor. I så fall väljer ni New (för att skapa en ny fil) eller Open (för att öppna en redan befintlig fil) under File på menyraden i matlabfönstret. Glöm inte att spara dina filer innan du kör dem. Det är viktigt eftersom MATLAB inte läser från skrivbufferten. MATLAB letar efter filer i tur och ordning i: - Det bibliotek du jobbar i för tillfället - Ditt eget matlab-bibliotek - MATLAB s programbibliotek. Observera att om det finns två MATLAB-filer med samma namn kommer MATLAB att använda den fil som hittas först. Kommandot path ger lista över bibliotek där MATLAB söker efter filer. Man får en lista över alla m-filer i aktuellt bibliotek genom att i matlabfönstret ge kommandot what. Vill man byta bibliotek kan man skriva cd följt av bibliotekets namn (inklusive sökväg). Det finns ett omfattande programbibliotek. Undersök t.ex. innehållet i några av de bibliotek som är angivna i pathlistan. Programbibliotekets filer kan man fritt kopiera över till sitt eget matlab-bibliotek för inspektion och ev. modifikation. 4.1 Script-filer En av de viktigaste finesserna med MATLAB är att man kan utvidga arsenalen av kommandon med sina egna program. Detta kan ske på två sätt, antingen i form av s.k. script-filer eller i form av funktionsfiler. Båda filtyperna kallas m-filer eftersom deras namn alltid slutar med.m. En script-fil (kan även kallas kommando-fil) består av en uppsättning vanliga MATLAB-kommandon medan funktionsfiler fungerar som egendefinierade kommandon. Scriptfiler används huvudsakligen då det är opraktiskt att skriva direkt i Matlab-fönstret, till exempel om man skall skriva in en lång rad av kommandon, stora matriser och liknande, eller om man vill ha kvar de kommandon som skrivs in för senare bruk. Följande fil är skriven för att rita funktionen sin N x på intervallet [a b] för olika värden på a b och N. Till en början sätts a = ;4 b =4 och N =. Så här ser filen ut: a=-4*pi;b=4*pi;n=; Steg=(b-a)/1000; x=a:steg:b; y=sin(x).^n; plot(x,y); Skriv in filen ovan i någon editor (t.ex. MATLAB s egen) och spara den under namnet sinusn:m. Kontrollera att filen finns i ditt aktuella bibliotek med kommandot what. Kör sedan filen med följande kommando: >>sinusn; Du kan nu gå tillbaks till editeringsfönstret och ändra, t.ex. värdena på a b och N. Spara sedan filen och kör den på nytt. Skriv gärna också något medvetet fel i filen och se vilket felmeddelande du får. En viktig observation är att alla variabler som förekommer i en script-fil är globala, dvs. de är tillgängliga utanför filen. Testa detta genom att nu ge kommandot >>Steg 17

18 Matematik med Matlab för MI1/MEI1 000/001 sid. 18 av 6 Uppgift 6:Börja med att tilldela variabeln n värdet 10 i matlabfönstret. Öppna sedan din editor och skapa en fil med namnet summan:m. Skriv MATLAB-instruktioner i filen som gör följande: Tilldelar variabeln p värdet (p 6 +)=7. Genererar vektorn v =(1 3 ::: n). Skapar vektorn x =(1=1 p 1= p 1=3 p ::: 1=n p ). Beräknar talet s =1=1 p +1= p +1=3 p + ::: +1=n p Provkör filen och undersök sedan värdet på variabeln s. Pröva därefter ett större värde på n och kör filen igen. Vad händer med värdet på s då n växer mot oändligheten. Ändra nu i filen så att p istället får värdet (11 ; p 6 )=7. Spara sedan filen på nytt och pröva som tidigare värdet på s, för olika värden på n. Vad händer nu då n växer mot oändligheten. 4. Funktionsfiler Funktionsfiler består också av en samling vanliga MATLAB-kommandon, men skiljer sig mot sript-filer på några väsentliga punkter. Namnet på en funktionsfil skall vara funktionsnamn.m, inget annat även om det fungerar. Det första ordet i en funktionsfil skall vara function. Det följs sedan av en beskrivning av funktionens utvariabler (output), funktionsnamn och funktionens invariabler (input). Låt oss skriva en enkel funktion. Den skall heta myfunk, ha en invariabel och en utvariabel. Filen skall alltså heta myfunk:m och den första raden skall se ut så här: function y=myfunk(x) Därefter kommer beräkningsdelen av funktionen: taeljaren=x.*sin(x); naemnaren=1+sin(x).*sin(x); Alla beräkningsinstruktioner bör avslutas med ; för att undvika att mellan-kalkyler visas på skärmen. Sist i filen anges utvariabelns värde: y=taeljaren./naemnaren; Skriv in ovanstående kommandorader i editorn och spara under namnet myfunk:m. Prova sedan funktionen genom att i matlabfönstret ge följande kommandon: >>u=0:0.01:pi;v=myfunk(u);plot(u,v); Observera att varken invariabler eller utvariabler måste ha samma namn som de har i funktionsdefinitionen (dvs. första raden i filen myfunk.m). Till skillnad mot situationen med script-filer är alla variabler som använd inuti en funktion lokala, dvs. de är inte åtkomliga utifrån. Kontrollera detta genom att ge kommandot >>taeljaren De enda variabler som kan användas utifrån är de som förekommer i funktionens utvariabler. Observera också att om man givit en variabel ett visst värde i matlab-fönstret, så kommer detta värde inte att påverkas även om man använder samma variabelnamn innuti en funktion. Prova detta genom att först tilldela variabeln taeljaren värdet 3 i matlabfönstret innan du (som ovan) prövar funktionen myfunk. Kontrollera sedan att värdet på variabeln taeljaren inte har ändrats, trots att funktionen myfunk lokalt använt sig av variabelnamnet. En funktionsfil behöver inte ha en in-variabel och en ut-variabel, som i ovanstående exempel. Den kan helt sakna invariabler/utvariabler eller ha flera invariabler/utvariabler. En in-variabel kan vara ett tal, matris eller ett annat objekt. Om funktionen skall ha flera utvariabler så skall detta anges i deklarationen (första raden) genom att man räknar upp dem inom hakparanteser [ ]. Så här skulle första raden kunna se ut i en funktionsfil för en funktion med namnet exempel, som har fyra in-variabler och tre ut-variabler: function [ut1,ut,ut3]=exempel(in1,in,in3,in4) Uppgift 7: Sätt p = p 1 + p + p 3 + p 4 + p 5 + p 6. Skriv en funktionsfil där funktionen beräknar px sin x för x som anges i grader (istället för radianer). Testa sedan funktionen i matlabfönstret (om p =0och funktionen heter sing så skall alltså kommandot >>y=sing(30) ge resultatet y=300, om man har gjort rätt vill säga). 18

19 Matematik med Matlab för MI1/MEI1 000/001 sid. 19 av Kommentarer i m-filer Man kan skriva egna kommentarer var som helst i en m-fil, bara man låter kommentaren inledas med tecknet %. MAT- LAB ignorerar då resten av raden. Om man sätter in sådana kommentarer överst i en script-fil eller omedelbart efter funktionsdeklarationen i en funktionsfil, så kommer dessa kommentarer att skrivas ut om man ger kommandot help följt av filnamnet (exklusive.m ). Här ges två exempel där filerna sinusn och myfunk kompletteras med kommentarer. sinusn.m: % sinusn % Denna scriptfil är till för att rita grafen av % y=sin(x)^n på intervallet (a,b). % a=-4*pi;b=4*pi;n=; % Val av intervallets ändpunkter och exponenten N Steg=(b-a)/1000; % Val av steglängd x=a:steg:b; y=sin(x).^n; % OBS! elementvis exponentiering plot(x,y); myfunk.m: function y=myfunk(x) % myfunk % myfunk(x)=x*sin(x)/(1+sin(x)^()) taeljaren=x.*sin(x); naemnaren=1+sin(x).*sin(x); % använder.* eftersom input x t.ex. kan vara en radvektor y=naemnare./taeljare; % obs!./ Skriv in kommentarerna i respektive m-fil och provkör på nytt, för att se om allt blivit rätt. Testa också kommandona >>help sinusn och >>help myfunk Viktigt! Det är klokt att ta för vana att sätta in kommentarer och hjälp-information i sina m-filer. Man glömmer lättare än vad man tror. Dessutom är det ofta hopplöst svårt att begripa vad okommenterade program egentligen gör, till och med om man själv skrivit dem. Uppgift 8: Lägg in kommentarer i din script-fil från uppg.1 och i din funktionsfil från uppg.. Testa sedan filerna på nytt och kontrollera att help-kommandot på de båda filerna ger den information du vill. 4.4 Villkor och val I detta delavsnitt, och de följande, beskrivs några kommandon som är praktiska vid programering i MATLAB. Vi börjar med ett enkelt exempel. Betrakta följande script-fil: if a>0 log(a) end Skriv in den i editorn och spara den med namnet logaritm.m. Ge sedan kommandot: >>a=3;logaritm Som resultat får vi då värdet på log(3). Pröva nu kommandot: >>a=-;logaritm Detta ger inget resultat. Innebörden i det som är skrivet i filen logaritm.m är att kommandot log(a) bara utförs om vill- 19

Lab 2, Funktioner, funktionsfiler och grafer.

Lab 2, Funktioner, funktionsfiler och grafer. Lab 2, Funktioner, funktionsfiler och grafer. Laborationen innehåller 8 deluppgifter. Uppg. 1-3: behandlar Matlabs grundläggande operationer Uppg. 4-5: behandlar kurvritning Uppg. 6-8: behandlar funktionsfiler

Läs mer

Inledning till matematik med Matlab kompendium för M1 och TD

Inledning till matematik med Matlab kompendium för M1 och TD Matematiska vetenskaper Carl-Henrik Fant 16 september 2005 Inledning till matematik med Matlab kompendium för M1 och TD1 2005. Allmänt. MATLAB är ett interaktivt program med mycket kraftfulla numeriska

Läs mer

Lab 1, Funktioner, funktionsfiler och grafer.

Lab 1, Funktioner, funktionsfiler och grafer. Lab 1, Funktioner, funktionsfiler och grafer. Starta gärna en dagbok genom att ge kommandot diary lab1. Skriv in alla beräkningar som efterfrågas i uppgifterna i dagboken. Glöm inte diary off om det skrivna

Läs mer

1 Grundläggande operationer

1 Grundläggande operationer Redovisning: Laborationen innehåller 8 deluppgifter. Uppg. 1-3: Redovisa körningsresultat Uppg. 4-5: Redovisa graferna. Uppg. 6-8: Redovisa funktionsfilerna (koden) samt evenuella grafer. samtliga fall

Läs mer

Matematik med MATLAB

Matematik med MATLAB 1 Matrishantering Matematik med MATLAB 1. Matrishantering Detta avsnitt förutsätter att läsaren är bekant med den linjära algebrans mest grundläggande begrepp (t.ex. matrismultiplikation, matrisinvers

Läs mer

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson Introduktion till MATLAB Introduktion till MATLAB sid. 2 av 12 Innehåll 1 Vad är MATLAB? 3 1.1 Textens syfte..................................... 3 2 Grundläggande

Läs mer

Introduktion till MATLAB

Introduktion till MATLAB 29 augusti 2017 Introduktion till MATLAB 1 Inledning MATLAB är ett interaktivt program för numeriska beräkningar med matriser. Med enkla kommandon kan man till exempel utföra matrismultiplikation, beräkna

Läs mer

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

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc. Introduktion till MATLAB Martin Nilsson Avdelningen för teknisk databehandling Institutionen för informationsteknologi Uppsala universitet MATLAB the Matrix Laboratory utvecklat av MathWorks, Inc. Matematisk

Läs mer

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

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi. Grunderna i MATLAB eva@it.uu.se Innehåll Vad är MATLAB? Användningsområden MATLAB-miljön Variabler i MATLAB Funktioner i MATLAB Eempel och smakprov: Grafik Beräkningar Bilder GUI Vad är MATLAB? Utvecklat

Läs mer

Introduktion till Matlab

Introduktion till Matlab Introduktion till Matlab Inledande matematik, I1, ht10 1 Inledning Detta är en koncis beskrivning av de viktigaste delarna av Matlab. Till en början är det enkla beräkningar och grafik som intresserar

Läs mer

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor % Föreläsning 1 26/1 % Kommentarer efter %-tecken clear % Vi nollställer allting 1/2+1/3 % Matlab räknar numeriskt. Observera punkten som decimaltecken. sym(1/2+1/3) % Nu blev det symboliskt pi % Vissa

Läs mer

Laboration: Grunderna i Matlab

Laboration: Grunderna i Matlab Laboration: Grunderna i Matlab Att arbeta i kommandofönstret och enkel grafik Den här delen av laborationen handlar om hur man arbetar med kommandon direkt i Matlabs kommandofönster. Det kan liknas vid

Läs mer

Introduktion till Matlab

Introduktion till Matlab Introduktion till Matlab Analys och Linjär Algebra, del A, K1/Kf1/Bt1, ht10 1 Inledning Ni kommer använda Matlab i nästan alla kurser i utbildningen. I matematikkurserna kommer vi ha studio-övningar nästan

Läs mer

Laboration: Grunderna i MATLAB

Laboration: Grunderna i MATLAB Laboration: Grunderna i MATLAB 25 augusti 2005 Grunderna i MATLAB Vad är MATLAB? MATLAB är ett interaktivt program för vetenskapliga beräkningar. Som användare ger du enkla kommandon och MATLAB levererar

Läs mer

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

Lägg märke till skillnaden, man ser det tydligare om man ritar kurvorna. Matlabövningar 1 Börja med att läsa igenom kapitel 2.1 2 i läroboken och lär dig att starta och avsluta Matlab. Starta sedan Matlab. Vi övar inte på de olika fönstren nu utan återkommer till det senare.

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU 2015/2016 Matematiska vetenskaper Introduktion till Matlab 1 Inledning Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på många tekniska högskolor och universitet runt

Läs mer

Matlabövning 1 Funktioner och grafer i Matlab

Matlabövning 1 Funktioner och grafer i Matlab Matlabövning 1 Funktioner och grafer i Matlab I den här övningen ska vi titta på hur man konstruerar funktioner i Matlab och hur man kan rita funktionsgrafer. Läs först igenom PM:et. Gå sedan igenom exemplen

Läs mer

Matlabövning 1 Funktioner och grafer i Matlab

Matlabövning 1 Funktioner och grafer i Matlab Matlabövning 1 Funktioner och grafer i Matlab I den här övningen ska vi titta på hur man konstruerar funktioner i Matlab och hur man kan rita funktionsgrafer. Läs först igenom hela PM:et. Gå sedan igenom

Läs mer

Laboration: Vektorer och matriser

Laboration: Vektorer och matriser Laboration: Vektorer och matriser Grundläggande om matriser Begreppet matris är en utvidgning av vektorbegreppet, och det används bl a när man löser linjära ekvationssystem. Namnet Matlab står för MATrix

Läs mer

Linjär algebra med tillämpningar, lab 1

Linjär algebra med tillämpningar, lab 1 Linjär algebra med tillämpningar, lab 1 Innehåll Per Jönsson Fakulteten för Teknik och Samhälle, 2013 Uppgifterna i denna laboration täcker kapitel 1-3 i läroboken. Läs igenom motsvarande kapitel. Sitt

Läs mer

Introduktion till Matlab

Introduktion till Matlab Inledande matematik, I1 2011/2012 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på de flesta tekniska högskolor

Läs mer

TSBB14 Laboration: Intro till Matlab 1D

TSBB14 Laboration: Intro till Matlab 1D TSBB14 Laboration: Intro till Matlab 1D Utvecklad av Maria Magnusson med mycket hjälp av Lasse Alfredssons material i kursen Introduktionskurs i Matlab, TSKS08 Avdelningen för Datorseende, Institutionen

Läs mer

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

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och... Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»

Läs mer

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

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde: TANA81: Beräkningar med Matlab - Variabler och Matriser - Logiska uttryck och Villkor - Repetitionssatser - Grafik - Funktioner Variabler I Matlab skapas en variabel genom att man anger dess namn och ger

Läs mer

MATLAB övningar, del1 Inledande Matematik

MATLAB övningar, del1 Inledande Matematik MATLAB övningar, del1 Inledande Matematik Övningarna på de två första sidorna är avsedda att ge Dig en bild av hur miljön ser ut när Du arbetar med MATLAB. På de följande sidorna följer uppgifter som behandlar

Läs mer

Matriser och Inbyggda funktioner i Matlab

Matriser och Inbyggda funktioner i Matlab Matematiska vetenskaper 2010/2011 Matriser och Inbyggda funktioner i Matlab 1 Inledning Vi skall denna vecka se på matriser och funktioner som är inbyggda i Matlab, dels (elementära) matematiska funktioner

Läs mer

4 Numerisk integration och av differentialekvationer

4 Numerisk integration och av differentialekvationer Matematik med Matlab M1 och TD1 1999/2000 sid. 27 av 47 4 Numerisk integration och av differentialekvationer Redovisning redovisas som tidigare med en utdatafil skapad med diary 4.1 Numerisk av ekvationer.

Läs mer

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26 TAIU07 Föreläsning 2 Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26 Matriselement och Index För att manipulera

Läs mer

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln Matlab-föreläsning (4), 10 september, 015 Innehåll m-filer (script) - fortsättning från föreläsning 1 In- och utmatning Sekvenser, vektorer och matriser Upprepning med for-slingor (inledning) Matlab-script

Läs mer

Matriser och vektorer i Matlab

Matriser och vektorer i Matlab CTH/GU LABORATION 2 TMV157-2014/2015 Matematiska vetenskaper Matriser och vektorer i Matlab 1 Inledning Först skall vi se lite på matriser, vilket är den grundläggande datatypen i Matlab, sedan skall vi

Läs mer

MAPLE MIKAEL STENLUND

MAPLE MIKAEL STENLUND MAPLE MIKAEL STENLUND. Introduktion I dina inlämningsuppgifter skall ett program som heter Maple användas för att lösa ett antal matematiska problem. Maple är ett symbolhanterande program som har ett antal

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Datorlektion 1. Vektorer och Matriser 1 Inledning I denna övning skall du träna på att använda Matlab för enklare beräkningar och grafik. För att lösa uppgifterna

Läs mer

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 27 oktober 2015 Sida 1 / 31 TANA17 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet

Läs mer

Matriser och linjära ekvationssystem

Matriser och linjära ekvationssystem Linjär algebra, I1 2011/2012 Matematiska vetenskaper Matriser och linjära ekvationssystem Matriser En matris är som ni vet ett rektangulärt talschema: a 11 a 1n A = a m1 a mn Matrisen ovan har m rader

Läs mer

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1 M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1 Ove Edlund LTU 2014-11-07 Ove Edlund (LTU) M0043M, M1 2014-11-07 1 / 14 Några elementära funktioner i Matlab Exempel exp Beräknar e

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU 2011/2012 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Version för IT-programmet Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på de flesta tekniska

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU 2011/2012 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på de flesta tekniska högskolor runt om i världen,

Läs mer

MMA132: Laboration 2 Matriser i MATLAB

MMA132: Laboration 2 Matriser i MATLAB MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen

Läs mer

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

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26 TAIU07 Matematiska beräkningar med MATLAB för MI Fredrik Berntsson, Linköpings Universitet 15 januari 2016 Sida 1 / 26 TAIU07 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet i att

Läs mer

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab TAIU07 Matematiska beräkningar med Matlab Datorlektion 1. Vektorer och Matriser 1 Inledning I denna övning skall du träna på att använda Matlab för enklare beräkningar och grafik. Starta Matlab genom att

Läs mer

MAM283 Introduktion till Matlab

MAM283 Introduktion till Matlab Rum: A3446 E-post: ove.edlund@ltu.se Hemsida: www.math.ltu.se/ jove Översikt: Matlab i MAM283 Några fakta Introduktion till Matlab. Omfattning: 0,4 p En föreläsning och tre datorövningar Examineras genom

Läs mer

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

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32) Programmeringsteknik och Matlab Övning Dagens program Övningsgrupp 2 (Sal Q22/E2) Johannes Hjorth hjorth@nada.kth.se Rum 458 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d2

Läs mer

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

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner KPP053, HT2016 MATLAB, Föreläsning 1 Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner MATLAB Väletablerat Mycket omfattande program GNU OCTAVE Öppen

Läs mer

Matriser och Inbyggda funktioner i Matlab

Matriser och Inbyggda funktioner i Matlab CTH/GU STUDIO 1 TMV036a - 2012/2013 Matematiska vetenskaper Matriser och Inbyggda funktioner i Matlab Analys och Linjär Algebra, del A, K1/Kf1/Bt1 Moore: 2.3, 3.1-3.4, 3..1-3.., 4.1, 7.4 1 Inledning Nu

Läs mer

Linjär Algebra M/TD Läsvecka 2

Linjär Algebra M/TD Läsvecka 2 Linjär Algebra M/TD Läsvecka 2 Omfattning och Innehåll 2.1 Matrisoperationer: addition av matriser, multiplikation av matris med skalär, multiplikation av matriser. 2.2-2.3 Matrisinvers, karakterisering

Läs mer

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 2 november 2015 Sida 1 / 23 Föreläsning 2 Index. Kolon-notation. Vektoroperationer. Summor och medelvärden.

Läs mer

Matriser och linjära ekvationssystem

Matriser och linjära ekvationssystem Linjär algebra, AT3 211/212 Matematiska vetenskaper Matriser och linjära ekvationssystem Matriser En matris är som ni redan vet ett rektangulärt talschema: a 11 a 1n A = a m1 a mn Matrisen ovan har m rader

Läs mer

Laboration 1: Linjär algebra

Laboration 1: Linjär algebra MALMÖ HÖGSKOLA Centrum för teknikstudier MA119A VT 2010, Yuanji Cheng Viktigt information om labb Vid laborationen gäller följande: 1. Labben görs i grupp av två studenter, och redovisningsuppgifterna

Läs mer

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

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi. Grunderna i MATLAB stefan@it.uu.se Innehåll Vad är MATLAB? Användningsområden MATLAB-miljön Variabler i MATLAB Funktioner i MATLAB Exempel och smakprov: Grafik Beräkningar Bilder GUI Vad är MATLAB? Utvecklat

Läs mer

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x Mathematica Första kapitlet kommer att handla om Mathematica det matematiska verktyg, som vi ska lära oss hantera under denna kurs. Indata När du arbetar med Mathematica ger du indata i form av kommandon

Läs mer

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

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning MATEMATISKA VETENSKAPER TMV66 07 Chalmers tekniska högskola Datorlaboration Examinator: Tony Stillfjord TMV66 Linjär algebra för M Datorlaboration : Matrisalgebra och en mekanisk tillämpning Allmänt Den

Läs mer

Newtons metod och arsenik på lekplatser

Newtons metod och arsenik på lekplatser Newtons metod och arsenik på lekplatser Karin Kraft och Stig Larsson Beräkningsmatematik Chalmers tekniska högskola 1 november 2004 Introduktion Denna övning ingår i Lärardag på Chalmers för kemilärare

Läs mer

Matematik med MATLAB, F1, HT 2004

Matematik med MATLAB, F1, HT 2004 Matematik med MATLAB, F1, HT 2004 MATRISER OCH EKVATIONSSYSTEM 1 Matrishantering Detta avsnitt förutsätter att läsaren är bekant med den linjära algebrans mest grundläggande begrepp (t.ex. matrismultiplikation,

Läs mer

Beräkningsvetenskap föreläsning 2

Beräkningsvetenskap föreläsning 2 Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU STUDIO 1 LMA515b - 2016/2017 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på många tekniska högskolor

Läs mer

Matematik med MATLAB R

Matematik med MATLAB R Matematik med MATLAB R En handledning Matematik CTH/GU Version J.L. 11 augusti 1997 Reviderad J-E.A. augusti 2002 Matematik med MATLAB R En handledning Matematik CTH/GU Version J.L. 11 augusti 1997 Reviderad

Läs mer

Kapitel 4. Programmet MATLAB

Kapitel 4. Programmet MATLAB Kapitel 4. Programmet MATLAB MATLAB (namnet härlett ur MATrix LABoratory) är ett matematikprogram baserat på matrisalgebra, som blivit mycket använt för fysikaliska och tekniska tillämpningar. Den ursprungliga

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU LABORATION 1 MVE011-2012/2013 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på de flesta tekniska högskolor

Läs mer

Linjär algebra. 1 Inledning. 2 Matriser. Analys och Linjär Algebra, del B, K1/Kf1/Bt1. CTH/GU STUDIO 1 TMV036b /2013 Matematiska vetenskaper

Linjär algebra. 1 Inledning. 2 Matriser. Analys och Linjär Algebra, del B, K1/Kf1/Bt1. CTH/GU STUDIO 1 TMV036b /2013 Matematiska vetenskaper CTH/GU STUDIO 1 TMV06b - 2012/201 Matematiska vetenskaper Linjär algebra Analys och Linjär Algebra, del B, K1/Kf1/Bt1 1 Inledning Vi fortsätter även denna läsperiod att arbete med Matlab i matematikkurserna

Läs mer

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

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2 Matematisk Statistik SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2 1 Introduktion Denna laboration är inte poänggivande utan är till för den som vill bekanta sig med MATLAB. Fokusera

Läs mer

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

Beräkningsvetenskap och Matlab. Vad är MATLAB? Vad är MATLAB? Användningsområden. Vad är MATLAB? Grunderna i Matlab. Beräkningsvetenskap == Matlab? Beräkningsvetenskap och Matlab Beräkningsvetenskap == Matlab? Grunderna i Matlab Beräkningsvetenskap I Institutionen för, Uppsala Universitet 1 november, 2011 Nej, Matlab är ett verktyg som används inom

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU LABORATION 1 TMV216/MMGD20-2017/2018 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på många tekniska

Läs mer

Instruktion för laboration 1

Instruktion för laboration 1 STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik MD, ANL, TB (rev. JM, OE) SANNOLIKHETSTEORI I Instruktion för laboration 1 De skriftliga laborationsrapporterna skall vara

Läs mer

2 Matrisfaktorisering och lösning till ekvationssystem

2 Matrisfaktorisering och lösning till ekvationssystem TANA21+22/ 5 juli 2016 LAB 2. LINJÄR ALGEBRA 1 Inledning Lösning av ett linjärt ekvationssystem Ax = b förekommer ofta inom tekniska beräkningar. I laborationen studeras Gauss-elimination med eller utan

Läs mer

Datorövning 1 Fördelningar

Datorövning 1 Fördelningar Lunds tekniska högskola Matematikcentrum Matematisk statistik FMSF20: MATEMATISK STATISTIK, ALLMÄN KURS, 7.5HP FÖR E, HT-15 Datorövning 1 Fördelningar I denna datorövning ska du utforska begreppen sannolikhet

Läs mer

linjära ekvationssystem.

linjära ekvationssystem. CTH/GU LABORATION 2 TMV216/MMGD20-2017/2018 Matematiska vetenskaper 1 Inledning Linjära ekvationssystem Denna laboration börjar med att vi påminner oss om matriser i Matlab samtidigt som vi börjar se på

Läs mer

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

Du kan söka hjälp efter innehåll eller efter namn Du kan söka hjälp efter innehåll eller efter namn Skalärer x = 2 y = 1.234 pi, inf Ex: Skriver du >> x+100*pi Så blir svaret ans = 316.1593 (observera decimalpunkt.) Vektorer v = [1 2 3 4] radvektor u

Läs mer

Mer om funktioner och grafik i Matlab

Mer om funktioner och grafik i Matlab CTH/GU 2017/2018 Matematiska vetenskaper Mer om funktioner och grafik i Matlab 1 Inledning Först skall vi se lite på funktioner som redan finns i Matlab, (elementära) matematiska funktioner som sinus och

Läs mer

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

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER. MATEMATISKA INSTITUTIONEN Tillämpad statistisk analys, GN STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB 2011-03-24 DATORLABORATION 1: TIDSSERIER. I Tarfala har man under en lång följd av

Läs mer

Datorövning 1: Introduktion till MATLAB

Datorövning 1: Introduktion till MATLAB Datorövning 1: Introduktion till MATLAB Om datorövningarna Övningarna går ut på att bekanta sig med MATLAB och se hur man löser olika typer av problem. Arbetet är självständigt. Hoppa över sådant ni tycker

Läs mer

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson Uppsala Universitet Matematiska Institutionen Thomas Erlandsson MATRISER MED MERA VEKTORRUM DEFINITION Ett vektorrum V är en mängd av symboler u som vi kan addera samt multiplicera med reella tal c så

Läs mer

Subtraktion. Räkneregler

Subtraktion. Räkneregler Matriser En matris är en rektangulär tabell av tal, 1 3 17 4 3 2 14 4 0 6 100 2 Om matrisen har m rader och n kolumner så säger vi att matrisen har storlek m n Index Vi indexerar elementen i matrisen genom

Läs mer

MMA132: Laboration 1 Introduktion till MATLAB

MMA132: Laboration 1 Introduktion till MATLAB MMA132: Laboration 1 Introduktion till MATLAB De flesta numeriska metoder låter oss få en tillräckligt bra lösning på ett matematiskt problem genom att byta ut komplexa matematiska operationer med kombinationer

Läs mer

Matriser och vektorer i Matlab

Matriser och vektorer i Matlab CTH/GU LABORATION 3 TMV206-2013/2014 Matematiska vetenskaper 1 Inledning Matriser och vektorer i Matlab I denna laboration ser vi på hantering och uppbyggnad av matriser samt operationer på matriser En

Läs mer

Linjära ekvationssystem

Linjära ekvationssystem CTH/GU STUDIO 1 LMA515c - 2016/2017 Matematiska vetenskaper 1 Inledning Linjära ekvationssystem Denna studioövning börjar med att vi påminner oss om matriser i Matlab samtidigt som vi börjar se på matriser

Läs mer

Funktioner och grafritning i Matlab

Funktioner och grafritning i Matlab CTH/GU LABORATION 3 MVE11-212/213 Matematiska vetenskaper 1 Inledning Funktioner och grafritning i Matlab Först skall vi se lite på (elementära) matematiska funktioner i Matlab, som sinus och cosinus.

Läs mer

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter Inledande matematik för I1 MVE011 läsperiod 1 010 Matlab vecka övningsuppgifter Linjära ekvationssystem Matlab har många kraftfulla redskap för att hantera matriser och därmed också linjära ekvationssystem.

Läs mer

1.1 MATLABs kommandon för matriser

1.1 MATLABs kommandon för matriser MATLABs kommandon för matriser Det finns en mängd kommandon för att hantera vektorer, matriser och linjära ekvationssystem Vi ger här en kort sammanfattning av dessa kommandon För en mera detaljerad diskussion

Läs mer

Mer om funktioner och grafik i Matlab

Mer om funktioner och grafik i Matlab CTH/GU 2/22 Matematiska vetenskaper Inledning Mer om funktioner och grafik i Matlab Först skall vi se lite på funktioner som redan finns i Matlab, (elementära) matematiska funktioner som sinus och cosinus

Läs mer

Matlabföreläsningen. Lite mer och lite mindre!

Matlabföreläsningen. Lite mer och lite mindre! Inmatning: Här är lite exempel på inmatning i Matlab: >> pi 3.1416 >> format long >> ans 3.141592653589793 Matlabföreläsningen Lite mer och lite mindre! >> format %återställer format (%- tecknet gör att

Läs mer

Linjär algebra med MATLAB

Linjär algebra med MATLAB INGENJÖRSHÖGSKOLAN Matematik Fredrik Abrahamsson, Anders Andersson Innehåll Linjär algebra med MATLAB 1 Grundläggande begrepp 1 1.1 Introduktion...................................... 1 1.2 Genomförande

Läs mer

SF1672, Linjär Algebra med Matlab för F1 Lab0

SF1672, Linjär Algebra med Matlab för F1 Lab0 SF1672, Linjär Algebra med Matlab för F1 Lab0 Denna labb är tänkt att öva datorhantering och öva inledande Matlab. Eftersom förkunskaperna varierar finns en hel del uppgifter så att alla kan få något att

Läs mer

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61 Moment 5.5 Övningsuppgifter I 5.0a. 5.0b, 5.0.c, 1 Linjära ekvationssystem Vi har redan tidigare i kursen stött på linjära ekvationssystem. Nu är stunden kommen till en mera systematisk genomgång. Kvadratiska

Läs mer

Beräkningsverktyg HT07

Beräkningsverktyg HT07 Beräkningsverktyg HT07 Föreläsning 1, Kapitel 1 6 1.Introduktion till MATLAB 2.Tal och matematiska funktioner 3.Datatyper och variabler 4.Vektorer och matriser 5.Grafik och plottar 6.Programmering Introduktion

Läs mer

Laborationstillfälle 1 Lite mer om Matlab och matematik

Laborationstillfälle 1 Lite mer om Matlab och matematik Laborationstillfälle Lite mer om Matlab och matematik En första introduktion till Matlab har ni fått under kursen i inledande matematik. Vid behov av repetition kan materialet till de övningar som gjordes

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU LABORATION 1 TMV157-2014/2015 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på många tekniska högskolor

Läs mer

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A =

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A = 62 6 MATRISER 6 Matriser 6 Definition av matriser En matris är ett rektangulärt schema av tal: A a a 2 a 3 a n a 2 a 22 a 23 a 2n a m a m2 a m3 a mn Matrisen A säges vara av typ m n, där m är antalet rader

Läs mer

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

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan 8.00-12.00 Redovisning Lös först uppgifterna i Matlab.

Läs mer

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

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner KPP053, HT2015 MATLAB, Föreläsning 1 Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner MATLAB Väletablerat Mycket omfattande program GNU OCTAVE Öppen

Läs mer

Linjära ekvationssystem i Matlab

Linjära ekvationssystem i Matlab CTH/GU LABORATION 2 MVE11-212/213 Matematiska vetenskaper Linjära ekvationssystem i Matlab 1 Inledning Först skall vi se lite på matriser, vilket är den grundläggande datatypen i Matlab, sedan skall vi

Läs mer

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 9 november 2015 Sida 1 / 28 Föreläsning 3 Linjära ekvationssystem. Invers. Rotationsmatriser. Tillämpning:

Läs mer

Numeriska metoder, grundkurs II. Dagens program. Hur skriver man en funktion? Administrativt. Hur var det man gjorde?

Numeriska metoder, grundkurs II. Dagens program. Hur skriver man en funktion? Administrativt. Hur var det man gjorde? Numeriska metoder, grundkurs II Övning 1 för I2 Dagens program Övningsgrupp 1 Johannes Hjorth hjorth@nada.kth.se Rum 163:006, Roslagstullsbacken 35 08-790 69 00 Kurshemsida: http://www.csc.kth.se/utbildning/kth/kurser/2d1240/numi07

Läs mer

MMA132: Laboration 1 & 2 Introduktion till MATLAB

MMA132: Laboration 1 & 2 Introduktion till MATLAB MMA132: Laboration 1 & 2 Introduktion till MATLAB De flesta numeriska metoder låter oss få en tillräckligt bra lösning på ett matematiskt problem genom att byta ut komplexa matematiska operationer med

Läs mer

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

KPP053, HT2016 MATLAB, Föreläsning 2. Vektorer Matriser Plotta i 2D Teckensträngar KPP053, HT2016 MATLAB, Föreläsning 2 Vektorer Matriser Plotta i 2D Teckensträngar Vektorer För att skapa vektorn x = [ 0 1 1 2 3 5]: >> x = [0 1 1 2 3 5] x = 0 1 1 2 3 5 För att ändra (eller lägga till)

Läs mer

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration 10 februari 2017 Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration Syfte med övningen: Introduktion till ett par numeriska metoder för lösning av ekvationer respektive

Läs mer

NUMPROG, 2D1212, vt Föreläsning 1, Numme-delen. Linjära ekvationssystem Interpolation, Minstakvadratmetoden

NUMPROG, 2D1212, vt Föreläsning 1, Numme-delen. Linjära ekvationssystem Interpolation, Minstakvadratmetoden NUMPROG, D, vt 006 Föreläsning, Numme-delen Linjära ekvationssystem Interpolation, Minstakvadratmetoden En av de vanligaste numeriska beräkningar som görs i ingenjörsmässiga tillämpningar är att lösa ett

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU LABORATION 1 TMV206-2018/2019 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på många tekniska högskolor

Läs mer

Moment Viktiga exempel Övningsuppgifter

Moment Viktiga exempel Övningsuppgifter Moment Viktiga exempel Övningsuppgifter Inga Inga Inga Linjära ekvationssystem Vi har redan tidigare i kursen stött på linjära ekvationssystem. Nu är stunden kommen till en mera systematisk genomgång.

Läs mer

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet 19-20 april

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet 19-20 april GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare Karlstads universitet 19-0 april Exempel på elevaktiviteter framtagna i skolutvecklingsprojektet IKT och lärande i matematik 1

Läs mer

15 september, Föreläsning 5. Tillämpad linjär algebra

15 september, Föreläsning 5. Tillämpad linjär algebra 5 september, 5 Föreläsning 5 Tillämpad linjär algebra Innehåll Matriser Algebraiska operationer med matriser Definition och beräkning av inversen av en matris Förra gången: Linjära ekvationer och dess

Läs mer