Kontrolluppgifter 1 Gör en funktion som anropas med där är den siffra i som står på plats 10 k Funktionen skall fungera även för negativa Glöm inte dokumentationen! Kontrollera genom att skriva!"#$ &% (') #* +!, # 2 Förklara hur - /012 13 - - 14 fungerar med hjälp av en m-fil 65 ) /0)/7 (/89;: med innehållet % =<,19>'?< # -@AB1"CD (/B#E - /0F"CD (/E"G? H -@AB1"CD (/B#E F!CD (/B # 6G -@AB1"CD (/B#E - -6 F"CD (/E"G? H -@AB1"CD (/B#EI4 "CD J/EBG # G 4 - Slå upp i boken och se efter hur pause fungerar Skriv själv kommentarer till filen H 3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter Funktionen cosinus deriveras för x-värdena på följande sätt % =<,19>'?< #,19B,'7 4K- #B# H 4K-?B L? (: B G G % G)M -@EB11B1 G N:7 5 Gör en m-fil som anropas med G N: K0 J5 OI4K-?O Första raden skall då vara ) /G4@G )- /P G N: K0 J5 B 1G Kommandot 4 - #B? måste ersättas med K 5 B E# och motsvarande för G Prova att derivera funktionerna 6@/B# QK @1B#RSH #B# 8)/EB?T8: :B Lägg särskilt märke till hur roten ur negativa x ritas Förklaringen till detta finns under U -@ Glöm inte dokumentationen! 4 Integraler och primitiva funktioner kan beräknas med @ V "1 respektive 4JK:@ V B1 Slå upp i boken och läs om detta % =<,19>'?< # 4K- #B# W 4J :@ V B1G# -@EB11B1 W @ V 4JK:@ V Gör en m-fil som anropas med (/@ 8 OI4 -?O G Beräkna på detta sätt primitiva funktioner till 6@/B# QK @1B#RSH #B# 8)/EB Förklara varför första elementet i W alltid blir 0 Glöm inte dokumentationen!
5 Gör en m-fil 0 J5 (/@ 8 19;: som först beräknar derivatan av och sedan primitiven till derivatan Resultatet skall ritas tillsammans med Prova med funktionerna 6@6/EB# Q K@1B? SG #BG# Glöm inte dokumentationen! 6 En triangel har hörnen i x 1 y 1 x 2 y 2 x 3 y 3 Den kan alltså beskrivas med en enda matris x 1 y 1 x 2 y 2 x 3 y 3 triangel Gör en m-fil solveram som vid kommandot K- 5 @ 6/8 räknar ut alla sidor och vinklar (i grader) samt ritar triangeln så att man kan se att det är rimligt Arbetsgång: Gör om triangelns hörn till tre komplexa tal, x 1 iy 1 osv Beräkna triangelns sidor som tre komplexa tal Beräkna deras längder så att de skrivs ut på skärmen Beräkna vinklarna med hjälp av /8 K, skriv ut Rita triangeln med hjälp av -@E W, se -@ Använd K K Q6 för att få en snygg triangel ) Q6 7 Gör en fil 9;: som vid kommandot 5E G ritar vektorn 5 med början i punkten och som har färgen Vi förutsätter att en rityta redan har definierats dvs att följande kommandon redan har utförts ) K?!%', ', %', ',G# ) K Q6-0 - / - 0 -/ Dessa kommandon kan för övrigt samlas till en fil G J@ K@E9;: så blir det enklare när du skall testa din pil Pilen skall ha följande utseende A p 1 p 2 C D s B s E t p 1 v 1 p 2 v 2 Pilspetsens mått bestäms av längden av sträckan BD som vi kallar t och längden av sträckan BC som vi kallar s För att det skall bli snyggt låter vi t vara hela figurens bredd multiplicerat med 0 03 och s t 3 Figurbredden får vi reda på med kommandot
S 0 0 K0 FB8 @1B846F O (: O>? 0 128 @1B846 # Räkna nu ut koordinaterna för punkterna B C och E uttryckta i s t p v Rita sedan linjen AB med -@ och triangeln CDE med För att inte triangeln skall ritas med svart kant skriver man 1 W B 1 O J/ @ ) O O /- / O> där X och Y är hörnens x- resp y-koordinater 8 Gör en fil S JS @ 9;: som vid anropet S JS @ ' ritar upp de nya basvektorerna ' och i blått När man klickar på en punkt x y ritas vektorn x y ut med grönt Koordinaterna i den nya basen beräknas och skrivs ut och parallellogrammen fylls i med röda vektorer e 1 x y e 2 En rityta måste definieras i början av filen ) K?!%', ', %', ',G# ) K Q6-0 - / Sedan skall basvektorena ritas ut för första gången Därefter upprepas följande sekvens ända tills man klickar med höger musknapp (button=3) En punkt läsas in med 11 S @ @- / K8 (/ @1('K# Figuren rensas med 4 Basvektorer och nya vektorer ritas 8 (/ @ Loopen kan se ut såhär: S @ @- / G'7 K S @ @- / 6 C 1E S @ @- / K8G (/ @E(')# 4 9 9 9 9 9 9 9 J@ 9 9 9 9 9 9 /01 ) 4
9 I denna uppgift skall en triangels tyngdpunkt beräknas Använd 8G (/ @ för att läsa in triangelns hörn med musknapparna Rita triangeln och dess medianer, beräkna och skriv ut tyngdpunkten Släck figuren med höger musknapp 10 Gör en fil - 5 KCE9;: som solverar en triangel i rummet 0 -@ /G- 6: 11 Låt A vara en av Matlabs inbyggda matriser, av ordning 100, G G J/G K- /EJ',, # Beräkna det största elementet i varje rad Hur många av dessa är större än 43? Skriv ut de som är större än 43 i storleksordning med det största elementet först Använd några av kommandona :)E :7 J/ - K@E2 (/01 K /8K@ :)E : (/ K- K@ 12 Studera först exempel 1313 på sidan 282 i Matlab-boken Uppgiften är att göra en liknande funktion 8) S S 9;: som uppfyller följande krav Börja med att definiera ritytan med ) K?!%' ' %' ' G# ) K Q6-0 - /!%' ' ' %' %' 1O!%' %'U' ' %' 1O O1O>? Läs sedan in punkterna en och en och spara dem i en matris -6 )/H (/8 där första kolonnen är punkternas x-koordinater och andra kolonnen är motsvarande y-koordinater När fyra punkter är inlästa fylls fyrhörningen med blå färg Sedan sparas hela fyrhörningen i matrisen 8) S S / med kommandot 8) S S / 8) S S / K/H (/8 E Fortsätt att läsa in nya rektanglar så att en gubbe bildas Avsluta inläsningen med ett klick med höger musknapp Nu skall hela gubben ritas med grön färg och utan kantlinjer G BE1 O8EO O J/ @ ) O O /-/ O>? Här är kolonnerna i fyrhörningarnas -koordinater och motsvarande för Det innebär att 8) S S /E<)N'?<1< /0# och motsvarande för Avsluta med J@ - KS @ @-/?I4 - Spara matrisen gubben till nästa uppgift J@ -6 )S @ @- / 13 Gör ett program som börjar med att rita upp gubben från förra uppgiften Därefter ställs frågan hur många grader man vill rotera figuren När man svarat på det skall gubbens alla koordinater multipliceras med en vridningsmatris R För att detta skall fungera placeras alla x-koordinaterna i första raden av en ny matris - - 0 och alla y-koordinaterna i andra raden De roterade koordinaterna är då D- - 0 Sedan måste koordinaterna sorteras tillbaka i den ordning de hade för att kommandot skall fungera Slutligen ritas den roterade gubben ut (/ @E D
14 En enkel metod att hitta ett lokalt min till en funktion f x a x b går ut på att rekursivt minska intervallet där minpunkten ligger Dela intervallet i tre lika delar a c d b Om f c f d anser vi att minpunkten ligger i det mindre intervallet a x d annars ligger det i intervallet c x b y y a c d b x a c d b x Nytt intervall a x d Nytt intervall c x b Nu upprepas proceduren med samma funktion men med det nya mindre intervallet Då får vi ett ännu mindre intervall osv Iterationen avbryts tex när intervalllängden är mindre än 001 Då låter vi mittpunkten i intervallet vara vår approximation av minpunkten Gör en funktion 0 /H (/8 (:7 (/B 1" SH som räknar ut de nya punkterna 4 och 0 samt funktionsvärdena i dessa 4 respektive 0 Det nya intervallet som vi kallar a1 x b1 definieras av kommandona 4 ) 0 'J S 'J 01 'J 4? S 'J )S /01 Med hjälp av ytterligare en if-sats undersöker vi om intervallängden är mindre än 001 Är den det räknar vi ut mittpunkten och funktionsvärdet i denna annars gör vi en iteration till U6SG # S 'K%'),19,' :7 (/ / @ /!G'JL6S ')KM) :7 (/5) 0 @ K 5 B 1 :7 (/ / @ /H 0 /H (/8 J:7 (/EB E"'7 S#') /01 Prova nu resultatet på en enkel funktion tex 0 /7 (/8 (: (/E OI4 -?O N' Försök sedan hitta minpunkten till övningsuppgift 415 i Analys-häftet Man skapar först en m-fil -5K/ 7' 19;: som definierar funktionen Sedan hittas minpunkten med 0 /H (/8 J:7 (/E OI-5K/ H' O >%'" H# Programmet skall även göra utskrifter under beräkningens gång Denna skall göras på skärmen och ha princip-utseendet:
4 0 S 4 0 %19 C %E9 ' %19, C %19 C, % 19BKC % E9,, %19 ' %E9 %19 ' %19 C, % 19B % E9 %19 %E9, %19 C %19 C, % 19B % E9 KC %19 %E9, %19 C %19 C % 19B % E9 KC :7 (/ / @ /P %619, :7 (/ 5 ) 0 @P % 19 Snygga utskrifter fås med kommandot J/ @ Provkör följande rader så förstår du hur det fungerar K FO 0KO S 19 F 4 G'#9&' ' '7 J/ @ F OH' 19 H' E9>'( H' E9 / O " S I4 # J/ @ F OH' 19 H' E9 ) H' E9 K / O " S I4 # J/ @ F OH' 19 H' E9 ) C E9 K / O " S I4 # G (/ @ Det kan vara svårt att få dit rubriken över utskriften Ett sätt att göra detta är att skapa ytterligare en funktion J@ @:7 (/ 9;: som bara innehåller följande tre rader ) /G4@G )- / J@ @:7 (/B 1" SH J/ @ F OH',19 H' 19 7' 19 H'19 H' E9 H' 19 /O O!O OI4=O O01O O SO O 4?O O 0EO&# 0 /7 (/8 (: (/EB 1! SH# Om man inte vill ha två filer kan man flytta hela innehållet i 0 /H J/8 (:7 J/ 9;: och lägga det sist i filen J@ @ :7 (/ 9 : 15 Tillverka en funktion SH som tar fram alla lösningar till ett linjärt ekvationsystem, alltså även parameterlösningar Vi titta först på ett exempel x 1 2x 2 x 3 x 4 4x 5 11 2x 1 4x 2 3x 3 3x 4 9x 5 26 Efter Gausselimination får vi ett system på trappstegsform x 1 2x 2 x 3 x 4 4x 5 11 x 3 x 4 x 5 4 Ytterligare en elimination skapar en nolla ovanför x 3 (och en ovanför x 4 ) x 1 2x 2 3x 5 7 x 3 x 4 x 5 4
Lösningen fås genom att vi inför parametrar för x 5 x 4 ochx 2 och löser ut x 3 och x 1 x 1 2t 2 3t 5 7 x 2 t 2 x 3 t 4 t 5 4 x 4 t 4 x 5 t 5 Om vi bara skriver ut koefficienterna och inte variablerna ser vi att eliminationen har överfört systemet i systemet Lösningen kan på motsvarande sätt skrivas x r 1 2 1 1 4 11 2 4 3 3 9 26 1 2 0 0 3 7 0 0 1 1 1 4 0 2 0 0 3 7 0 1 0 0 0 0 0 0 0 1 1 4 0 0 0 1 0 0 0 0 0 0 1 0 Om vi jämför med ser vi att x fås ur på följande sätt Sätt pivotelementen i till noll och byt tecken utom i sista kolonnen Skapa med V - # FN'), byt sedan första och tredje raden i mot raderna i Arbetsgång: Utför Gausselimination i matrisen S med K F S För varje rad i gör vi Leta upp pivotelementet och sätt det till noll Byt tecken på hela raden utom sista elementet Sätt in raden i som den rad som svarar mot pivotelementets nummer För att resultatet skall se mera tilltalande ut kan man ta bort kolonner med bara nollor i parameterdelen av Till exempel bör systemet x 1 0 x 2 0 ha svaret x 0 snarare än x 0 0 0 0 0 0 0
16 En linje l i rummet bestäms av en punkt x 0 y 0 z 0 och en riktning x 1 y 1 z 1 Linjen kan alltså beskrivas av matrisen x 0 x 1 l y 0 y 1 z 0 z 1 Gör ett program som vid kommandot 65 @ /0F '7 beräknar det kortaste avståndet mellan två linjer samt de punkter på linjerna där avståndet är kortast Om linjerna är parallella är punkterna inte entydiga så vi nöjer oss med att få meddelandet linjerna är parallella Arbetsgång: Kalla de båda linjernas punkter och riktningar för '7 57' resp 5 Undersök om riktningarna är parallella med hjälp av / Kalla riktningen för den vektor som utgör det kortaste avståndet för Beräkna denna med hjälp av 4 - / E4 - Vi söker nu två punkter p 1 t 1 v 1 och p 2 t 2 v 2, en på vardera linjen, så att vektorn mellan dessa punkter är parallell med r dvs p 1 t 1 v 1 p 2 t 2 v 2 λr p 2 t 2 v 2 p 1 t 1 v 1 r Detta kan skrivas som Alltså är x t 1 v 1 t 2 v 2 λr p 2 p 1 t 1 t 2 λ lösningen till systemet Ax b där b p 2 p 1 och A är matrisen vars kolonner är v 1 v 2 r Lös detta system med hjälp av Använd de erhållna värdena för t 1 och t 2 för att beräkna de sökta punkterna Använd punkterna för att beräkna avståndet