%% 7  Parameteriserade kurvor i planet
%% 7.1 Illustration av parametriserade kurvor
% Takeaways
% Hur man plottar en parameteriserad kurva i planet.
% Kommandot  axis equal  ger att skalorna på de båda axlarna är samma.
% Om  u  är en vektor ger kommandot  max( u )  största värdet bland  u:s  koordinater.  min( u )  ger det minsta.
% Kommandot  [ M , i ] = max( u )  sätter  M  till   största värdet i  u  och  i  till det första index där det värdet finns (kan ju finnas flera). Motsvarande gäller för  min( u ) .
% Tänk dig att du sätter fart och skruv på en bordtennisboll på golvet. Den far då fram längs en bana i takt med tiden. Om du lägger ut ett koordinatsystem med x- och y-axlar på golvet och filmar förloppet kan du sen avläsa var bollen befann sig vid olika tidpunkter t\,. Du ser att x- och y-kooridnaterna ändras i takt med tiden, så att båda är funktioner x(t)\, respektive  y(t)\,  av tiden. Vid tiden t\, befann sig bollen i punkten  (x(t),\, y(t)\,)\,. Utrycket  (x(t),\, y(t))\, kallas en parameteriserad kurva i planet.
% Exempel  En partikel rör sig i positiv led längs enhetscirkeln, så att vinkeln med positiva x-axeln är  t vid tiden  t\,.
% Det ger att partikelns läge vid tiden t\, är (\cos t,\, \sin t)\,. I detta exempel är alltså  x(t) = \cos t\, och y(t) =\sin t\,.
% Vi ritar upp den parametriserade kurvan med Matlab när t  går mellan 0  och 3\pi/2\,:



%
% Hur ser den paratetriserade kurvan (2\cos t,\, 3\sin t)\,ut? Vi kollar:



%
% Uppgift 7.1
% En partikel rör sig i planet, så att vinkeln mellan linjesegmentet från origo till partikelns läge och positiva x-axlen vi tiden t\,  är t\,. Avståndet till origo ges vid tiden t\, av  r( t ) = 10  ( 1 + t ) / ( 1 + t^2)\,.
% Illustrera partikelns bana när t\, går mellan 0\, och 4\pi\,.
% Lösning



% Uppgift 7.1 ger upphov till en del frågor. T.ex.
%     1) Hur långt från orig är partikeln som mest och när inträffar det?
%     2) Hur lång väg färdas partikel? (Svarar på detta senare!)
% Den först frågan är ganska lätt att svara på (approximativt). Om  u  är en vektor ger kommandot
%  max( u )
%  det största värdet bland koordinaterna i  u .
% Pröva detta med t.ex.  u = [ 1 5 3 7 2 9 3 9 ] :



%
% Vi kanske vill veta vilket index det största talet har. Kommandot  max( u ) ger egentligen två svar, dels vad största koordinaten är, dels vilket index den har. Det senare undertrycks om man inte gör nåt speciellt. För att få fatt i det ger vi kommandot
% [ M , i ] = max( u )
% som tilldelar  M  det maximala värdet och  i  vilket index det har. Man kan välja att kalla  M  och  i  nåt helt annat om man vill, t.ex.  a  och  b .
% Pröva detta nu:



% Som du ser är största kooridnaten i  u  9 och den har index 6 . Men - vänta nu! Det finns ju en till koordinat i  u  som är 9 ! Riktigt, men man får bara ut index på den första förekomsten av den maximala koordinaten.
% På mosvaraden sätt ger
% min( u )
% minsta koordinaten i  u  (och dess första index, om man vill) .
%
% Uppgift 7.2
% Hur långt från origon befinner sig partikeln i uppgift 7.1 som längst? När inträffar det? Svara approximativt. Markera punkten på kurvan!



%
%% 7.2  En studsande boll
% Takeaway
% Användingen av m-fil i uppgiften nedan
% 'skrift_1' + 'skrift_2'  sätter ihop de två texterna i tur och ordning till en enda.
% Kommandot  string( tal )  omvandlar ett tal till en text(sträng).
% Kommandot  ledgend  kan användas för att ge en förklaring till olika grafer (när man har flera i samma figur).
% Uppgift 7.3
% a)  En boll studsas i golvet med infallsvinkel  \alpha  mot lodlinjen och studsar upp med farten  v_0 = 10\  \mathrm{m/s}\, . Plotta bollens bana fram tills den åter tar mark, när  \alpha = 20^{\circ},\, 40^{\circ},\,60^{\circ}, i samma figur. Bortse från luftmotståndet.
% b)  Hur lång tid tar respektive studs? Hur högt når bollen? Var landar den?
% Lösning
% Inför ett koordinatsystem som i figuren nedan. Vi låter  (x(t), y(t)) var bollens läge vid tiden t\,. Farten i x-led är då  x'(t) som är konstant 10\sin \alpha\,, eftersom vi bortser från luftmotstånd. I y-led är accelerationen  y''(t)  som är tyngdaccelerationen - g=9.81\,, eftersom vi mäter "uppåt" längs positiva  y-axeln.
%
% Vi får
% x'(t) = 10\sin \alpha  som ger  x(t) = 10t\sin \alpha + \mathrm{konstant}_1
% y''(t) = -g  som ger  y'(t) = -gt +\mathrm{konstant}_2
% Eftersom vi infört koordinatsytemet som vi gjort gäller x(0) = 0 som ger \mathrm{konstant}_1=0\,. Vi har också y'(0) = 10\cos \alpha\, , som ger \mathrm{konstant}_2=10\cos \alpha\,. Detta leder till
% y(t) = -gt^2/2 + 10t\cos \alpha + \mathrm{konstant}_3\, .
% Eftersom vi infört koordinatsystemet som vi gjort gäller y(0) = 0, så \mathrm{konstant}_3 = 0\, .
% Det betyder att
% (x(t), y(t)) = (10t\sin \alpha ,\, -gt^2/2 + 10t\cos \alpha)\,.
% Bollen tar mark när y(t)=0\, och t>0\, , vilket ger t= 20 \cos(\alpha)/g\, .
% Efersom vi vill plotta bollens bana för flera olika vinklar \alpha gör vi ett skript som vi kallar bollbana. Vi skulle kunna gjort detta med en anonym funktion, men det hade blivit komplicerat och svårt att begripa efteråt, eftersom en sån funktion bara kan innehålla en enda beräkningssats.
% function [ x_v , y_v, t_max ] = bollbana(  vinkel_grader )
%     g = 9.81 ;
%     vinkel = vinkel_grader * pi /180 ;
%     t_max = 20 * cos( vinkel ) / g ;
%     t_v = linspace( 0 , t_max ) ;
%     x_v = 10 * sin( vinkel ) * t_v ;
%     y_v = -g * t_v.^2 / 2 + 10 * cos( vinkel ) * t_v ;
% Vi sparar detta in en fil med namnet  bollbana.m  i Matlabs sökväg. Nu kan vi använda kommandot
% [ x_v , y_v , T ] = bollbana( 20 )
% för att sätta  x_v  och  y_v  till listor med koordinater för bollens läge när tiden går från  0  till den tidpunkt den landar, som vi sätter till  T , när infallsvinkeln är 20^{\circ}\, .

