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. Stäng alla fönster utom kommandofönstret genom att klicka på!"$#% &!"' )(!+*, Gå sedan igenom kapitel 2.3 5 och utför själv alla exempel. Sidan 37 och 38 kan du hoppa över. Nu är det dags att testa dina kunskaper genom att göra följande övningsuppgifter. 1 Skriv -. % / 01 2 3!4-5 67 2 &!4 -+7586 Lägg märke till skillnaden, man ser det tydligare om man ritar kurvorna. 9 +* 14:; &!4-5 67 : <>= 6 @?A 7 9 +* 14:; &!4 -+7586 : <>= 6 @?A 7 9 +* 14:<B 3!4 -+75 6 3! 4-5 67 A1: <>= 6 @?A 7 Observera att det går att rita kurvan sinx x 9 +* 14:; &!4 -+7 / - : <>= 6 @?A 7 fast den inte är definierad för x C 0. 2 Matlab behandlar division med 0 på ett naturligt sätt. D *E 3! 9 D *F!! G /8HI 2= G /HI JH/8H 3!4KH 7 /8HI 2 &!4> 7 /8 3! 9L 3! 9 M 3! 9 = 3! 9 M 3! 9N 3! 9 O 3! 9 / &! 9 M 3! 9 5 3! 9 M 3! 9 5 4P= 3! 9 7 Försök att förklara vad som händer här H/ &!4Q% 7 3 Rita en del av Matlabs inbyggda funktioner. 9 +* 14:B R%S4 -+7 : <>= TI >T8A 7 9 +* 14:; 'U8!4 -+7 : <>= TV BT8A 7 9 +* 14:<B WX14> R S4 -+77 3! 4 -+7 * UV4 G&L -5 67 A1: <K= TI BT8A 7 9 +* 14:<Q8! 6 4 - G 7 8! 6 4 - Y= G 7 A1: <>= TI BT8A 7 9 +* 14:; &!4 -+7 L 3!4BZ N -+7 / Z L &! 4>T N - 7 /8TV: <>= TV BT8A 7 Testa också en av de icke elementära funktionerna Γ[ x\. Låt först - vara heltalen mellan ] 2 och 8, beräkna sedan funktionsvärdena för varje sådant x-värde.
-. = 6? U' + 4 -+7 Här ser man att Γ[ n\c [ n ] 1\! för positiva heltal. Eftersom gammafunktionen har lodräta asymptoter vid x C 0 >] 1 >] 2 blir kurvan inte så snygg med 9 +* 14: U 4-7 : <>= 6, TTI OT1, TT8A 7 Vi har ingen koll på exakt vilka x-värden som används. Låt oss därför rita den för x-värden som undviker de negativa heltalen. x-värdena definieras med kommandot -. <BX 8U *'Ä Observera det semikolon som gör att vi slipper se utskriften av -. Därefter ritas kurvan med +*'. -. <>= 6, TT H1, G T, TT8Ä I4 -+7 *8!UD4 -+7 +*'4 - U 4-77 Här förekommer inte x=0, -1, -2. Bara en rad. 4 Med hjälp av avrundningar kan man plocka ut siffra nummer k ur ett decimaltal (Siffran framför 10 k ). %. H X ' 4 9-4 % 8/ G H 5 7 G H 7 Siffra nummer 0.. = G X 4 9-4Q% 8/ G H 5 7 G H 7 Siffra nummer -1.. = 6 X 4 9-4Q% 8/ G H 5 7 G H 7 Siffra nummer -2.. ='Z X 4 9-4Q% 8/ G H 5 7 G H 7 Siffra nummer -3.. Z X ' 4 9-4 % 8/ G H 5 7 G H 7 Siffra nummer 3. Hade det gått lika bra med X'!" istället för 9 -? 5 Lös en andragradsekvation..6 R. 0. - G. =&R+/8/ 6 L WX4QR 5 6 / 0/8 5 6 =/ 7 Tryck på för att ta fram det sista kommandot en gång till. Ändra sedan - G -6. =&R+/8/ 6 = WX4QR 5 6 / 0/8 5 6 =/ 7!X**. N - G 586 L R N - G&L till -6 och plus till minus. Vad visade den avslutande kontrollen? Kontrollera även den andra roten genom att använda och ändra - G till -6 i det senaste kommandot. Testa även att ta fram gamla kommandon genom att skriva början av dem och sedan trycka på. Skriv och +*. Då bör du få fram % respektive +*'4 - U 4-77. Prova till sist lite räkning med komplexa tal.
. T L T N R S4 7!U* 4 7!U* 4 7 NG?H/ R S4 7 N - 4P N!U*8 4 77 Viktiga kommandon i detta avsnitt: - X*= V D * <>8X 8U *A I *8!UD % S R - * U1 3! X!"1 9-9 * X1 8* X ' +*' Matlabövningar 2 Under detta pass kommer du att spara några filer så det är bäst att skapa en särskild katalog för dessa. Det gör du med kommandona "+ 'X8*8 R '" + *8 R "+ 'X* &!* U '" * 3!* U /matlab/linalg När du senare vill byta katalog så kan du klicka i rutan Current Directory under menyraden eller skriva '"$ * U8!'! XX! % X + X. För att hantera filerna kan du klicka på så öppnas ett fönster med filerna listade. Genom att högerklicka på en fil kan du både editera och exekvera den. Kataloghantering: " " 8* U!'! "+ X$ * U8!! " *8 8* U!'! " X visar katalognamn, samma som rutan Current Directory ändrar till annan katalog, samma som att klicka i rutan Current Directory skapar ny katalog tar bort katalogen. listar katalogens innehåll, samma som fönstret Current Directory Filhantering: Kan även utföras med högerklick på filnamnet i fönstret Current Directory. 8 9 8*!! visar innehållet i filen. " *8 9 *!'! tar bort filen. "+ & 9 8*!! öppnar editorn för redigering av filen. 9 *8 4 9 * G 9 * 67 kopierar fil1 till fil2. Läs igenom kapitel 2.6 7. Fortsätt med att gå igenom kapitel 2.8. Här skall du själv prova alla exempel och kommandon.
W Kör sedan igenom följande övningar för att befästa dina kunskaper ytterligare. Slå upp i boken så fort du känner dig osäker. 1 Klicka på '8 +! * och studera vad som händer i fönstren för varje kommando du ger. D *$ X X! D * " '% X F! 8X1:: X F I:: "+ 8X)&8X1, - 9 X + )*!U1 % 9 X + FX % 9 X + % "+ 8X 99 D+& 8 &X1, - * "+ X Studera hjälpavsnittet. Bara som övning, du behöver inte läsa demolistan. Visar en rad till. Visar en sida till. Avbryter. Öppnar filen spara.txt, Syns i Current Directory. Stänger filen spara.txt. Flyttar cursern. Visar innehållet i spara.txt. Flyttar cursern och raderar fönstret. Visar samma som Current Directory. Klicka på filen spara.txt i Current Directory. Det ger samma resultat som att skriva 8"+ & &X1, - dvs editorn öppnas så att man kan redigera filen spara.txt. Stäng editorn när du går vidare. " *8 8 "+ X 8X1, - Raderar filen spara.txt. Syns i Current Directory. Syns här också. Avsluta denna övningsuppgift med att klicka på 8 ' 8 J&!" # 3!"' )(! *. 2 I exempel 2.14b har du sparat en matris A i filen Thematrix.m. Ett annat sätt att spara en matris visades i exempel 2.13. X & Prova att flytta ut Workspace med musen. *8 X Syns i Workspace. D ' + X+ - Exekverar filen Thematrix.m, dvs skapar matrisen A. D X+ -, " = Sparar A i filen Thematrix.dat *88"D X+ -, " Hämtar tillbaka matrisen och döper den till Thematrix. Visar samma sak som Workspace Listar variablerna När man sparar matriser på dessa sätt är namnen förutbestämda till respektive D '8X+ -. Det kan man slippa genom att göra om filen Thematrix.m till en funktionsfil. Tillverka en fil vanligmatris.m med följande utseende.
9! ' 8!.!+* U8 X+!+* U X+ MD!"*8 8"!% 3!U!. <>= ='Z = G G Z G @Z$Z G H8A Nu kan vi tilldela matrisen vilket namn vi vill och vi kan välja om vi vill se matrisen när vi hämtar den. Observera också att variabeln i funktionen är lokal så den syns inte i Workspace..!+* U + X+.!+* U + X+ Avsluta denna övningsuppgift med att stänga Workspace. 3 Vi skall nu lösa ekvationssystemet i övning 1.2 i linalghäftet med hjälp av Matlab. Utför själv följande kommandon som i tur och ordning ger koefficienterna, högerledet och lösningen.. < G = 6 G 6 = GG Y='Z T G A R. < 6 @ZT @?A -. 'R Kommandot som löste systemet med hjälp av Gausselimination heter backslash, mldivide eller left matrix divide. Skriv in de kommandon som vi använde i en fil som du ger namnet uppgift1_2.m. Istället för att skriva in kommandona för hand i editorn kan du kopiera över de färdiga kommandona från Matlabfönstret. Man kan också öppna Command History och välja ut de önskade kommandona genom att hålla shift eller Ctrl nere och klicka på dem. Med ett högerklick kan man sedan direkt skapa en m.fil av dem. Med lämpliga kommentarer tillagda bör filen nu ha utseendet: 8X " * 3! 8X 8 8! ' -. R! 3!U&U+ 9 G, 6. < G = 6 G 6 = GG Y='Z T G A X 99!8 + X+ 8! R. < 6 @ZT @?A X D U 8X*8 " -. 'R * 8X '' ' Nu kan vi lösa ekvationssystemet genom att bara skriva U 9 G 6. Observera att uppgift1_2.m inte är en funktion vilket gör att variablerna 1 R - är globala. Det kontrollerar vi. *8 X U 9 G 6 Viktiga kommandon i detta avsnitt: X I J"+ 8X 9 X D & I * I 8"+ & '"1 J"+ 'X1 " *8 V *8 8X1 X+& I
Matlabövningar 3 Läs och gör exemplen i kapitel 3.1 2, 3.5 7, 3.9 11, 4.1 3. Vi återkommer till kapitel 3.3 4 senare, men inte till 3.8. Nu kommer övningarna. 1 Skriv -. G Z. <QH G 6 A - L. 1: - L.- L N 1: "'14-7 "'14 - : 7 'XS4-7 'XS4 - : @ 7 WX4@"'14 - -+77!+ X 4 -+7 Här får du felmeddelande. Varför? OBS både transponering och konjugering Varför blev det samma? 2 Elementvis multiplikation och division, N resp,b/ är mycket användbart för att skapa funktioner. -. ='Z H1, G Z +*'4 - -, 5 67 D+* ")! +*'4-4 - = G 7, 586 : U1: 7 +*'4 - -, 5 6 = - / 6 L 01 :@X1: 7 +*'4 - G,>/ - :Q : :K* &! "D : >T 7.-, 5 6 = G *8 +*'4-7 Gör att figuren ej raderas Skalan ändrades så att den nya gröna kurvan får plats Här fick du en varning men figuren blev bra ändå Raderar kurvorna V4@ G 7'. G Ersätter alla y-värden mindre än 1 med 1 +*'4-1 : X1: 7. G,>/ - 9 3!"14P &!!4@ 77 Letar upp numret på alla NaN 9 3!"14P 3! 9 4@ 77 Letar upp numret på alla inf +*'4-7 - 4 9 &!"V4P 3! 9 4@ 777'. < Ä Ersätter x-värde med tom matris V4 9 &!"V4P 3! 9 4@ 777'. < Ä Ersätter motsvarande y-värde med tom matris +*'4-7 Ser du någon skillnad?
3 Såhär kan man leta upp vissa element i en matris.. <QH G 6 Z 0 T G H G H G H8A1: Glöm inte H Visar ettor där elementen är positiva ** 4 1: H 7 Visar ettor där en hel rad är positiv X8". 9 3!"V4K** 4 : H 77 Visar numret på dessa rader V4@X"1 K7 Visar raderna *8!UD4 9 &!"V4>** 4 1: H 777 Visar antalet sådana rader 4 Bygga upp matriser. Det här är mycket användbara kommandon. Kolla att du vet vad Matlab kommer att svara innan du trycker på enter. 8 4 7 8XS4 6 0 7! 4 6 @Z 7. G "+ 8U14> 7 "+ 8U14>I 67. <QHF BH)= 8A 4 G!" 7 4K7 <!A. 4> 7. <Q 8XS4 BZ 7 K! S4 G Q! L Z 7 A 5 Manipulera matriser. X8" G. 4 G K7 *'!! 6 Z0. 4 6 0 7. 4 G 6 ;7. 4 6!" 7 4 < Z$? 8A 7'. < A 9 * 3 * XV4> 7 Samma som a(:,1:end)=a(:,end:-1:1) 9 * 3"V4> 7 Samma som a(1:end,:)=a(end:-1:1,:). < G? G G 6 0A X &D 4>V: 0 7 : R. X &D I4>I: 6 G 67 : R. 9 * 3+* XV4 R 7 X &D 4QR : G 6 67 : Viktiga kommandon i detta avsnitt:, N,B/, 5 : 9 &!"! ** &!!! 8X 8 "+ 8U 9 * 3+* X 9 * 3" X &D. < A
Matlabövningar 4 Nu skall vi öva på några användbara kommando som inte kommit med tidigare. 1 Först kommer matrismultiplikation N på sidan 47 48.. < G 6 Z 0 T F? A. "+ 8UV4 G Z 7 N N, N Det är viktigt att veta om man skall ha med punkten eller ej, N 3! 14 7 Inversen till B N 3! 14 7 Enhetsmatrisen såklart! 3! 14 7 Men A är ju inte inverterbar! N 3! 14 7 Hur gick detta till? N 1: A är inte ortogonal 9 9 2 Läs själv i boken och i D * om 3! M X1 J"+ D% 8*8. Provkör sedan en fil med innehållet 8X. 3!14: DXF X 6 +* Z : 7 9 8X.. T "+ &4: " ' ' X1: 7 * "+ &4:Y &! D * FX 8 8: 7!" 9 X$. G 0 "+ &4 7!". G H "+ & 4: ======== : 7 D% 8* 586 L 6 HH "+ 4< 5 6 L 8A 7. L G!" Viktiga kommandon i detta avsnitt: N 3! 3!E 9$9 X$ D% 8* " &