Gerd Eriksson, -- MÖ-uppgifter. Funktionskurvor Rita kurvor för funktionerna f(x) och g(x) f(x)+g(x) f (x) =x( + sin ßx); e x= g(x) = cos ßx i intervallet» x». Pröva dig fram till lämpligt steg. Rita i en ny bildruta (med subplot) kurvan f (x)+g(x): Fortsätt med produkten f (x) g(x) i bildruta och kvoten f (x)=g(x) i ruta. Produkten f(x) och g(x) Kvoten f(x)/g(x). Ytterligare en funktionskurva Rita kurvan y = p x= + e p +x + sin ßx + x i intervallet» x» med ett lagom litet steg så att kurvan inte ser kantig ut. Kolla riktigheten med kurvan i facit!. Triangel Hörnen i en triangel har x-koordinaterna,, : och y-koordinaterna :, :8, :. Markera hörnen och rita upp triangeln. Beräkna sidorna, omkretsen och arean. Skriv programkoden matlab-mässigt utan for-slingor. Studera facit och lägg in eventuella förbättringar i din kod.. Cirkel Cirklar ritas bäst på parameterform: x = x c + R cos ', y = y c + R sin '; där vinkeln ' går från till ß. Rita en cirkel som har radien och centrum i (, :). Använd steget ß=: Markera mittpunkten. Glöm inte axis equal efter plot-satsen, annars blir cirkeln en oval.. Tre tangerande cirklar Låt tre cirklar ha centrum i triangelhörnen i uppgift. Bestäm deras radier så att de tangerar varandra och rita upp triangeln samt de tre cirklarna. Ledning: Sambanden r + r = s, r + r = s, r + r = s mellan radier och triangelsidor skrivs i matlab enklast på matris-vektor-form (bara ettor och nollor i matrisen A). Lös med r=a s. 8
. Pilkastning Rita tio cirklar med radie,,:::,. Fyll den innersta med rött. Lägg in poängmarkering på piltavlan med text-funktionen. Slumpa tio pilkast normalfördelat (t ex med standardavvikelsen i x-led och i y-led): for pil=: plot(*randn, *randn,'*'), pause(.) end Pause-satsen ger. sekunders fördröjning mellan varje pilkast. Den blinkning som syns i grafikfönstret vid varje pilkast beror på att gammal plot-bild raderas och ersätts av ny uppdaterad figur. Man kan slippa flimret genom att före for-slingan lägga in satsen set(gcf,'doublebuffer','on') 8 9 Egenskapen DoubleBuffer styr hur grafiken ska uppdateras hos grafikobjektet figure i matlab. Beräkna poängen för varje kast, summera och skriv ut totalpoängen. Exekvera flera gånger. Simulera sedan en sämre pilkastare genom att öka standardavvikelsen (gör help randn för mer info).. Femuddig stjärna Femuddsstjärnor kan man ju rita utan att lyfta pennan. Rita en sådan i matlab. Låt en udd ligga i origo och resten på lämpliga koordinatvärden (i facit gäller x=[. ], y=[.8. ]). Rita också en femudd som är förskjuten fyra enheter i både x-led och y-led. Använd fill istället för plot på den. Gör sedan en stjärnhimmel genom att slumpa ut femton ofyllda och femton fyllda stjärnor likformigt fördelat (med funktionen rand) i området» x» och» y». 8. Streckgubbar Skissa en streckgubbe med cirkelhuvud på ett rutat papper och fundera ut hur gubben med hjälp av vektorer ska hamna i grafikfönstret i matlab. Pröva! Placera en likadan gubbe bredvid och en tredje fast i mindre skala vid sidan om. I facit finns den här pappan med hatt, mamman med kjol och ett litet barn. Ögonen klickas in. Studera och exekvera gubbar.m som.8....8... finns i kurskatalogen....
9. Triangelhörnens koordinater genom klickning Modifiera uppgifterna och genom inklickning av tre önskade hörnpunkter till en triangel. Börja med ett axis-kommando med lämpliga värden för x-och y-axlarna, till exempel: clear, clf, axis([ 8]), hold on Klickning av tre punkter kan göras med [x,y]=ginput(); plot(x,y,'o') Nackdelen är att punkterna inte markeras förrän alla tre matats in. Pröva! Det är bättre att klicka in en punkt i taget, markera den och uppdatera x-vektorn och y-vektorn: x=[]; y=[]; for nr=: [xp,yp]=ginput(); plot(xp,yp,'*'), end x=[x; xp]; y=[y; yp];. Kurvskara för svartkroppsstrålning Beräkna och rita upp en skara av intensitetskurvor för den våglängds- och temperaturberoende funktionen w( ; T ) som gäller svartkroppsstrålning enligt Planck: w( ; T )= ff e fi=( T ) x 8 T= T= T= där ff =: T=... och fi =:88. Kurvor önskas för temperaturvärdena T = ; ; ; K i det intressanta våglängdsområdet <» 8 : Använd gtext för att skriva 'T=' vid första kurvan och motsvarande vid de övriga kurvorna.. Polynom genom givna punkter Genom fyra givna punkter går ett entydigt bestämt tredjegradspolynom som kan skrivas P (x) =c + c x + c x + c x : Det leder till ett ekvationssystem Ac = y för bestämning av de fyra koefficienterna. Systemmatrisen kan skrivas A=[ones(size(x)) x x.^ x.^] där x är en kolumnvektor med x-värdena. a) Till att börja med har vi bara tillgång till tre punkter, nämligen triangelhörnen i uppgift. Beräkna och rita den entydigt bestämda parabel (andragradskurva) som går genom punkterna. b) Lägg till punkten (8; :) och beräkna och rita tredjegradspolynomet som passerar genom de fyra punkterna. Punkterna ska naturligtvis också markeras i figuren, pröva gärna stem(x,y) som ritar en stolpe från x-axeln upp till varje punkt som markeras med ring.. Cirkel genom tre punkter Andragradspolynom genom tre punkter, heldraget x 8 Tredjegradspolynom genom fyra punkter, streckat Formeln c + c x + c y = x + y är ett bekvämt sätt att ange cirkelns ekvation då man vill hitta den entydigt bestämda cirkel som passerar genom tre givna punkter, låt oss ta triangelhörnen i uppgift. Skriv systemet i matrisform och lös med matlab. Cirkelns mittpunkt är (c =;c =): Radien kan uttryckas i c, c och c ; visa det och beräkna radien. Rita upp punkterna och cirkeln.
. Vridna figurer En trevlig matris är vridningsmatrisen S=[cos(v) -sin(v); sin(v) cos(v)]. Här startar vi med femudden i uppgift, flyttar den fem enheter åt höger och roterar allt kring origo. Så skapas stjärnbilden här (femuddsnurr.m). x=+[. ]; y=[.8. ]; plot(,,'o', x,y), axis equal, hold on n=; v=*pi/n; S=[cos(v) -sin(v); sin(v) cos(v)]; for k=:n P=S*[x;y]; x=p(,:); y=p(,:); fill(x,y,'y') end, axis off Satsen y=p(,:) betyder att vektorn y blir lika med rad av matrisen P. Modifiera mallen så att en fylld stor bokstav (gärna också en fylld tvåa) vrids i n steg. I facit visas detta för D (i filen d.m).. Nya vektorer ur gamla Givet är kolumnvektorn y med komponenterna y ;y ;:::; y, till exempel siffrorna i ditt personnummer. Bilda i matlab en ny vektor dy som innehåller differenserna y j+ y j. Bilda utan for-slinga en vektor med nio komponenter som är medelvärdena (y j + y j+ )=. Bilda också utan att använda for-slinga en vektor b med tio komponenter enligt följande: b = dy ; b j = dy j + dy j ; j =; ;:::;9; b = dy 9 : Vektorn b med dessa egenskaper är viktig bland annat vid interpolation med splines.. Tridiagonala ekvationssystem med tridia (kurskatalogfunktion) Kurskatalogfilen tridia.m (kopiera!) innehåller en funktion för effektiv lagring och effektiv lösning av tridiagonala system. Betrakta en tridiagonal matris med alla diagonalelement lika med fyra och med ettor i super- och subdiagonalen. Låt högerledet bestå av vektorn b=:n. Lös detta ekvationssystem med tridia (utan att skriva ut resultatet) då antalet obekanta, n, är stort: n = ; ; och. Beräkna och skriv ut dels antalet flops (flyttalsoperationer) dels tidsåtgången (med hjälp av tic och toc) och notera hur de växer med n. Som jämförelse ska du lösa samma ekvationssystem med den för bandmatriser oekonomiska metoden x=a b och studera flops och tidsåtgång. Matrisen A kan skapas i en sats: A=*eye(n)+diag(sup,)+diag(sub,-) där sup och sub är vektorerna för super- och subdiagonalerna.
. Kaustika inuti en cirkel Om parallellt ljus faller in mot en sfärisk spegel bildar de reflekterande strålarna en yta, kaustika, vars skärning med ett plan ger en karakteristisk kurva. Den framträder tydligt om man snedbelyser en ring som ligger på ett plant underlag (kaustika i Nationalencyklopedin). Låna en förlovningsring om du inte har en egen och betrakta kaustikan. Den brukar också kunna skönjas i ett halvfyllt mjölkglas. Kaustikan inuti enhetscirkeln då ljuset faller in parallellt med y-axeln (ljuskälla vid y = ) bestäms av det trigonometriska uttrycket x = cos '; y = sin ' sin ';» '» ß ;.8.... Kaustika vilket ger halva kurvan. Den andra kurvdelen fås genom spegling i y-axeln. Rita upp enhetscirkeln och kaustikan. Fyll den gärna med gult....8... Sned låda, D-ritning Den sneda lådan i högra figuren är konstruerad av stolparna till vänster som ritas med stem(x,y,z). Rektangeln i botten är fyra enheter i x-led och tre i y-led. De heldragna stolphöjderna är [ ]. De streckade stolparna har förflyttats en enhet i x-led och höjderna har ökats med två enheter. Rita figuren med surf-kommandot; se facit. 8. Klocka som visar rätt tid Konstruera en klocka med urtavlan i form av en cirkel och försedd med färggranna sekund-, minut- och timvisare. Det behöver inte finnas siffror på urtavlan. Rita om visarna vid varje hel sekund. utnyttja drawnow efter plot-satsen. Använd matlab-funktionen clock som returnerar en radvektor med sex element: [year month day hour minute seconds], där de fem första är heltal och det sista, seconds, har några få decimaler. Det avhjälps med fix(clock). Exempel: fix(clock) returnerar [ 8 9 ] om det råkar vara minuter och sekunder över på eftermiddagen den nionde augusti. Gör som i uppgift för att undvika flimmer då bilden uppdateras. Det är extra bra om timvisaren även är beroende av antalet gångna minuter, så att den inte står på nio då klockan är en sekund i tio, och då plötsligt hoppar till tio.