Informatyka I Lab 6, r.a. / prow. Sławomir Czarnecki Zadania na laboratorium nr. 6 Po utworzeniu nowego projektu, dołącz bibliotekę bibs.h.. Największy wspólny dzielnik liczb naturalnych a, b oznaczamy przez nwd(a,b). Zdefiniuj int nwd in t a, int b implementującą iteracyjną wersję Algorytmu Euklidesa funkcję ( ) znajdowania największego wspólnego dzielnika dwóch liczb naturalnych a, b = {,,... } Algorytm Euklidesa start naturalne nwd, a, b, A, B ; czytaj a ; czytaj b ; A = a ; B = b ; dopóty dopóki a b wykonuj: jeśli a> b to: a= a b ; nwd = a ; wyświetl A, B, nwd; koniec w przeciwnym przypadku: b= b a ; N.. Udowodnij poprawność Algorytmu Euklidesa. W tym celu udowodnij, Ŝe funkcja zdaniowa P( a, b) = a> b> nwd( a, b) = nwd( A, B), gdzie a, b, A, B są identyfikatorami zmiennych zdefiniowanych powyŝej, jest prawdziwa w kaŝdym kroku algorytmu oraz, Ŝe liczba kroków jest liczbą skończoną. 3. Zdefiniuj funkcję int ( in t, int ) NWD a b implementującą rekurencyjną wersję Algorytmu Euklidesa znajdowania największego wspólnego dzielnika dwóch liczb naturalnych a, b N =,,.... { } 4. Zdefiniuj funkcję? mm( double** a, double** b,?), która oblicza iloczyn c M m n macierzy a M m k i b M k n, tj. c= a b. Przetestuj funkcję wywołując ją dla losowo wygenerowanych składowych macierzy a M m k i b M k n. 5. Zadanie problemowe z kinematyki bryły sztywnej (nawiązanie do materiału z rozdz. 8.8 na stronie 37, Ruch Płaski w podręczniku R. Nagórski, W. Szcześniak, Mechanika Teoretyczna, t., OW PW 993 oraz do materiału z rozdz. 6 na stronie 7, Ruch Płaski Układu Materialnego w podręczniku W. Szcześniak, Zbiór Zadań z Mechaniki Teoretycznej Kinematyka, OW PW ). WzdłuŜ poziomej linii prostej toczy się ze stałą prędkością kątową ω oraz bez poślizgu szpulka Ω o mniejszym promieniu r i o większym R. Dla uproszczenia interpretacji formuł zakładamy, Ŝe R=. W chwili początkowej t=, środek szpulki znajduje się w początku globalnego układu współrzędnych kartezjańskich por. Rys..
Rys.. Szpulka w ruchu płaskim toczenie się bez poślizgu ze stałą prędkością kątową ω. Na rysunku pokazano szpulkę w chwili początkowej t =. Ruch szpulki Ω w globalnym układzie współrzędnych kartezjańskich i w przedziale czasu T =, opisuje odwzorowanie [ ) ( ω ) + sin( ) + sin( ω ) cos( ω ) x X cos t X ω t ω r t F : Ω T R, x= F( X, t), x =, () X t + X t gdzie materialnego x x = x R oznacza punkt przestrzenny definiujący połoŝenie punktu X X = Ω X identyfikującego punkt szpulki Ω w chwili t T Zdefiniuj funkcję? F( double* X, double t,?), która opisuje ruch szpulki w opisie materialnym lub w tzw. opisie Lagrange a. { t F t T} Definiując trajektorię jako zbiór (, ) (, ) G= F : I Ω do odwzorowania F :. I= x Ω odwzorowanie odwrotne Ω T R moŝemy zdefiniować następująco: ( ω ) ( ω ) ω ( ω ) ( ω ) + ( ω ) ω ( ω ) X x cos t x sin t r t cos t G : I Ω, X= G( x, t), X =. () x sin t x cos t r t sin t Zdefiniuj funkcję? G( double* x, double t,?), która opisuje ruch szpulki w opisie przestrzennym lub w tzw. opisie Eulera.
3 Rys.. Trajektoria I = R R R szpulki w pewnym przedziale czasu [ ] xy czas Widok z góry oraz widok izometryczny.,t. Rys.3. Szpulka w ruchu płaskim w chwili początkowej t = i w dowolnej chwili t>. Na rysunku pokazano zdefiniowany w zadaniu punkt materialny X oraz punkt przestrzenny x. Nietrudno jest analitycznie sprawdzić, Ŝe dla dowolnych X, x, t : ( x, ), x oraz ( ) F G t t = G F X, t, t = X. Dla losowo wygenerowanych wartości X, x, t sprawdź numerycznie obie powyŝsze relacje.
Wektor prędkości v definiujemy jako pole materialne ( ) cos( ) ( ) sin( ) F v X ω sin ω t + Xω ω t + ω r v : Ω T R, v= ( X, t), t v =. (3) X ω cos ω t Xω ω t Opis przestrzenny V wektora prędkości v definiujemy jako pole przestrzenne V xω + ω r V : I Ω, V= v G( x, t), t, = V xω+ ω r t. (4) Formułę (4) otrzymujemy ze wzoru (3), w którym składowe X i X obliczone są za pomocą relacji (), tj. ( X t) = X ω ( ω t) + X ω ( ω t) + ω r= x cos( ω t) x sin( ω t) ω r t cos( ω t) ω sin( ω t) x sin( ω t) x cos( ω t) ω r t sin( ω t) ω cos( ω t) ω r x cos( ω t) ω sin( ω t) x sin( ω t) ω sin( ω t) ω r t cos( ω t) ω sin( ω t) sin( ω ) ω cos( ω ) x cos( ω t) ω cos( ω t) ω r t sin( ω t) ω cos( ω t) ω sin ( ω t) + xω cos ( ω t) + ω r= xω+ ω r= V ( x, t) v, sin cos = + + + + = = + + + + x t t + + ω r= = x oraz v ( X, t) = X ω cos( ω t) Xω sin( ω t) = x cos( ω t) x sin( ω t) ω r t cos( ω t) ω cos( ω t) x sin( ω t) x cos( ω t) ω r t sin( ω t) ω sin( ω t) x cos( ω t) ω cos( ω t) x sin( ω t) ω cos( ω t) ω r t cos( ω t) ω cos( ω t) sin( ω ) ω sin( ω ) x cos( ω t) ω sin( ω t) ω r t sin( ω t) ω sin( ω t) xω cos ( ω t) xω sin ( ω t) + ω r t cos ( ω t) + ω r t sin ( ω t) = xω+ ω r t= V ( x, t) + + = = + + + x t t + = = Zdefiniuj funkcję? v( double* X, double t,?), która opisuje pole prędkości szpulki (prędkość dowolnego punktu X Ω w chwili t) oraz funkcję? V( double* x, double t,?), która definiuje opis przestrzenny prędkości szpulki (prędkość szpulki w miejscu x R i w chwili t). Głównym celem ćwiczenia jest stabelaryzowanie powyŝszych wzorów (), (), (3), (4) dla wartości r=. [ m], ω= 3. [/ s], t = 5. [ s] w n= równo odległych od siebie t chwilach ti = i t i=,,..., n, t= dla punktu materialnego n X = Ω r oraz r punktu przestrzennego x= R. Stabelaryzowane wartości naleŝy zapisać do plików w celu wizualizacji w Excelu.
Po poprawnie oprogramowanym zadaniu, 4 wykresy w Excelu obejmujące: wizualizację trajektorii danego punktu materialnego X wizualizację w kolejnych chwilach czasowych punktów materialnych X przechodzących przez dany punkt x przestrzeni wizualizację w kolejnych chwilach czasowych wektora prędkości v danego punktu materialnego X (stycznego do jego trajektorii) oraz wizualizację wektora prędkości poruszającego się ciała (szpulki) w danym miejscu x (opis przestrzenny V pola materialnego prędkości v) powinny wyglądać jak na poniŝszych rysunkach: T Rys.4. Trajektoria punktu materialnego X = [ r] Ω w przedziale czasu [ ],t. Rys.5. Punkty materialne X Ω przechodzące przez miejsce zdefiniowane w punkcie przestrzennym x= [ r ] T R w przedziale czasu [ ],t. Rys.6. Wektor prędkości punktu materialnego X= r R (lewy rysunek) oraz wektor prędkości szpulki w miejscu zdefiniowanym przez punkt przestrzenny x r = R (prawy rysunek) w przedziale czasu [,t ].