HÖGSKOLAN PÅ ÅLAND Utbildningsprogrammet i elektroteknik Introduktion till teknisk mjukvara Övning 3 i MATLAB Lös följande uppgifter i MATLAB: 1. (2p) Skriv en funktion som utnyttjar den inbyggda funktionen rand för att returnera ett slumpmässigt tal som är mellan 0 och 10. 2. (2p) Skriv om föregående funktion så att man vid anropet av funktionen kan ange mellan vilka värden, a och b, det slumpmässiga talet skall vara. 3. (2p) Skriv om föregående funktion så att den returnerar en kolumnvektor med slumpmässiga tal mellan a och b. Vid anropet av funktionen skall man förutom a och b också ange hur många tal som kolumnvektorn skall innehålla. 4. (2p) Använd den inbyggda funktionen rand för att skriva en funktion som returnerar n stycken distinkta heltal mellan 1 och n i slumpmässig ordning (dvs., alla heltal mellan 1 och n men i slumpmässig ordning). Funktionen tar heltalet n som input. Använd INTE den inbyggda funktionen randperm. 5. (2p) Skriv en for loop som skriver ut följande vid MATLAB prompten: Varv 1 i loopen Varv 2 i loopen Varv 3 i loopen .. . Tips: De inbyggda funktionerna disp och num2str. 1 6. (2p) Skriv en while loop som snurrar på tills man ger in ett givet tal. Som exempel kan resultatet vid MATLAB prompten vara Jag Jag Jag Jag slutar slutar slutar slutar om om om om du du du du ger ger ger ger in in in in talet talet talet talet 3: 3: 3: 3: 2 4 5 3 Tips: funktionen input. 7. (4p) Använd en for loop i MATLAB för att räkna ut och lagra de 20 första värdena i Fibonaccis talsekvens vars 8 första värden ges av: 0, 1, 1, 2, 3, 5, 8, 13 Tips: Givet de två första värdena i sekvensen: F1 = 0 F2 = 1 kan sekvensen räknas med den rekursiva formeln: Fn = Fn−1 + Fn−2 8. (2p) Skriv en funktion som givet de två tidigare värdena i Fibonaccis talsekvens returnerar följande värde i sekvensen. 9. (8p) Utnyttja en for-loop vars index går från 1 till N och bestäm en vektor y inne loopen så att elementen efter loopen ges av: (a) (2p) y = 1 3 5 7 9 . . . (b) (2p) y = 0 1 4 9 16 . . . (c) (2p) y = 0 3 8 15 24 . . . (d) (2p) y = 1 27 125 343 729 . . . Tips: Du kan utgå från koden: N=10; y = zeros(1,N); for index=1:N y(index) = %%%%%Fyll i denna rad! end 2 10. (4p) Upprepa föregående uppgift (1p per delfall) utan att använda en loop, dvs genom att istället använda kolonoperatorn :. 11. (4p) Givet vektorn: A= linspace(0,1,N); vilket med N=5; resulterar i A = 0 0.2500 0.5000 Ersätt vart tredje element med: 0.7500 1.0000 (a) (2p) π så att (då N=5;): A = 3.1416 0.2500 0.5000 genom att utnyttja en for-loop 3.1416 1.0000 (b) (2p) Upprepa föregående fall utan att utnyttja en loop, dvs genom att istället använda kolonoperatorn :. Skriv din kod så att den fungerar för ett valfri längd på vektorn, dvs ett godtyckligt N. 3