Rozdzia l Fizyka laboratorium.. Elementy analizy matematycznej Funkcje Zmienna y nazywa sie zmienna zależna albo funkcja zmiennej x, jeżeli przyjmuje ona określone wartości dla każdej wartości zmiennej x, w pewnym przedziale zmienności. Zmienna x nazywana jest zmienna niezależna albo argumentem funkcji y. Zwiazek miedzy zmienna zależna y a zmienna niezależna x zapisujemy symbolicznie w postaci: Pochodna funkcji y = fx) Niech dwóm wartościom x i x 2 zmiennej niezależnej odpowiadaja dwie wartości funkcji y oraz y 2. Oznaczmy: x = x 2 x y = y 2 y Przez pochodna funkcji y w punkcie x bedziemy rozumieli granice, do której daży stosunek y x, gdy x d aży do zera, co zapiszemy symbolicznie Szereg Maclaurina ẏ = dy dx = lim y x 0 x Nieskończony szereg pot egowy o n-tym wyrazie równym: a n = f n) 0) x n.)
.. Elementy analizy matematycznej gdzie f n) 0) wartość n-tej pochodnej pewnej funkcji fx) dla x = 0. Można wykazać, że jeśli funkcja fx) jest różniczkowalna nieskończenie wiele razy w pewnym otoczeniu x = 0 oraz: lim n gdzie c zawarte jest pomi edzy 0 a x, to: f n) c) x n = 0 fx) = f0) + a n.2) Twierdzenie. Jeżeli istnieje n-ta pochodna funkcji fx) w otoczeniu x = 0, istnieje dok ladnie jeden wielomian V x), stopnia n lub niższego spe lniajacy warunek: V 0) = f0), V 0) = f 0), V 0) = f 0),..., V n) 0) = f n) 0) n= Dowód. Niech V x) = a + bx + cx 2 +... + lx n Wtedy: V x) = b + 2cx +... + nlx n V x) = 2c + 6dx +... + nn )lx n 2... V n) = l Wtedy: V 0) = a V 0) = b V 0) = 2c... V n) 0) = l Wymagamy aby spe lniony by l warunek Czyli: V 0) = f0), V 0) = f 0), V 0) = f 0),..., V n) 0) = f n) 0) a = f0) b = f 0) 2c = f 0)... l = f n) 0) Jedyny wielomian stopnia n lub niższego spe lniajacy te warunki ma postać: f0) + xf 0)! + x2 f 0) 2! + x3f 0) +... + xn f n) 0) 3! 2
.2. Zadania tablicowe Szereg Maclaurina jest szczególnym przypadkiem szeregu Taylora: f n) x 0 ) fx) = x x 0 ) n.3) Ponieważ liczymy sume szeregu nieskończonego musimy w pewnym miejscu dokonać obciecia, pope lnimy wiec b l ad obliczeniowy, jeżeli dokonamy sumowania k elementów szeregu b l ad możemy oszacować w nastepuj acy sposób: k ) f n) x 0 fx) = x x 0 ) n + f k+) ε) k + )! x x 0) k+.4) prawa cześć wzoru.4) nazywamy reszta Lagrange a i oznaczamy R n R n = f k+) ε) k + )! x x 0) k+ Przybliżona wartość funkcji można znaleźć liczac kilka k pierwszych wartości. B l ad jest wtedy nie wiekszy niż: ) max x x 0 ) f k+) x 0 )ε x 0 ) k+ ε [x 0,x] k + )!.5).2. Zadania tablicowe. policz sinx) korzystajac z rozwiniecia 2. policz cosx) korzystajac z rozwiniecia 3. policz e x korzystajac z rozwiniecia 4. policz 0 korzystajac z rozwiniecia fx) sinx) cosx) f x) cosx) sinx).2.. Zadanie sinx) sinx) = sin0) + x cos0) x2 sin0) x3 cos0) + x4 sin0) + x5 cos0)... 2! 3! 4! 5! czyli po uproszczeniu korzystamy z faktu sin0) = 0 oraz cos0) = ): sinx) x x3 6 + x5 20 x7.6) 5040 B l ad tego przybliżenia uznajac, że 8-ma pochodna wynosi 0 możemy oszacować: max ε [0,π] π 0) ε 9 cosε) 9! ) = π π9 9! = π0 362880 0.2580 Oczywiście uwzgledniaj ac wieksz a liczbe pochodnych otrzymamy dok ladniejsze przybliżenie. 3
.2. Zadania tablicowe.2.2. Zadanie 2 cosx) cosx) = cos0) x sin0) x2 cos0) + x3 sin0) + x4 cos0) x5 sin0) x6 cos0) +... 2! 3! 4! 5! 6!.7) czyli po uproszczeniu korzystamy z faktu sin0) = 0 oraz cos0) = ): cosx) x2 2! + x4 4! x6 6! + x8 8!.8) B l ad tego przybliżenia uznajac, że 9-ma pochodna wynosi 0 możemy oszacować: ) max π 0) ε 0 cosε) ε [0,π] 0! = π π0 0! = π 3628800 0.080 Oczywiście uwzgledniaj ac wieksz a liczbe pochodnych otrzymamy dok ladniejsze przybliżenie..2.3. Zadanie 3 e x czyli e x = + e 0 x + e0 x 2 2! + e0 x 3 3! e x + x + x2 2! + x3 3! + x4 4! + x5 5! +....9).0).2.4. Zadanie 4. 0 Pare faktów: x n ) = nx n.) ) x = 2 x.2) Wzór.2) możemy otrzymać w nastepuj acy sposób: x = x 2.3) czyli: x ) 2 = 2 x 2 = 2 x 2 = 2 x.4) Znana jest wartość 9 = 3 Możemy wi ec skorzystać z rozwini ecia w szereg i zapisać: f n) 9)0 9) n 0 = = f n) 9) k f n) 9) 4
.3. Zadania programistyczne czyli liczac kolejne pochodne pierwiastka: ) ) x = 2 = x 2 x Czyli rozwini ecie możemy zapisać: x ) = 2 x ) 2 ) x = 4 x 3 = 4 x 2 = 4 x 3 2 = 4 x) 3 ) = 3 8 x 5 0 9 +! 2 9 2! 4 9) 3 + 3 3! 8 9) 5 = 3 + 6 26 + 3 3988 3.6229 b l ad jest nie wiekszy niż: ) max 0 9) 5 ε [9,0] 4! 6 9) 7.3. Zadania programistyczne = 5 839808 0.0000786. Napisać program liczacy funkcje sinx), cosx), e x z parametrem określajacym d lugość rozwiniecia szeregu. 2. Porównać wyniki otrzymane z obliczenia funkcji poprzez rozwiniecie w szereg z wynikami funkcji z biblioteki matematycznej c++ 3. Zapisać dane z poprzedniego punktu do pliku i sporzadzić wykresy funkcji oraz oszacowania b l edu..4. Środowisko programistyczne Programy w trakcie ćwiczeń pisane bed a w jezyku C++ z wykorzystaniem dostarczonych przez prowadzacych szkieletów, szkieletów realizujacych podstawowe zadania zwiazane z graficzna prezentacja danych. Zadaniem studenta bedzie dobranie odpowiednich równań zgodnie z prezentowanym zagadnieniem, rozwiazanie tych równań stosujac metody numeryczne, oraz uzupe lnienie dostarczonego kodu odpowiednimi instrukcjami. Instrukcjami. Istnieje możliwość wyboru innego jezyka programowania jednak w tym przypadku Student musi napisać ca lość we w lasnym zakresie. Do celów graficznej prezentacji stosowana bedzie biblioteka OpenGL, w zasadzie nie jest wymagana od studentów znajomość tej biblioteki podstawowe zagadnienia zwiazane z OpenGL zostana przedstawione w trakcie zajeć) Studenci PJWSTK maja dostep do kompilatora C++ firmy Microsoft Visual Studio 2005, można również skorzystać z darmowych środowisk programistycznych: MinGW Developer Studio 2.05 Dev-C++ 5
.4. Środowisko programistyczne Dostarczone kody wykorzystuja dodatkowa biblioteke o nazwie GLUT The OpenGL Utility Toolkit. Do poprawnej kompilacji potrzebny jest plik nag lówkowy glut.h, który należy umieścić najlepiej w folderze include/gl wybranego kompilatora, oraz w przypadku kompilatorów opartych na gcc biblioteka glutlib32.a do umieszczenia w folderze lib kompilatora, natomiast w przypadku środowiska Visual Studio biblioteka glut32.lib. Skompilowana wersja dla systemu windows jest do pobrania z nastepuj acego adresu: http://www.xmission.com/ nate/glut/glut-3.7.6-bin.zip W przypadku środowiska windows do poprawnego wykonania programu potrzebna jest biblioteka dynamiczna glut32.dll, która powinna być umieszczona w katalogu widocznym w zmiennej środowiskowej PATH lub bezpośrednio w miejscu gdzie znajduje sie skompilowany plik exe. Biblioteka GLUT jest do pobrania w postaci kodów źród lowych http://www.xmission.com/ nate/glut/glut-3.7.6-src.zip do samodzielnej kompilacji w przypadku innego systemu operacyjnego. Do poprawnej konsolidacji programu niezbedne jest do l aczenie nastepuj acych bibliotek: glut32, opengl32, glu32..4.. Korzystanie z biblioteki Proste środowisko, które umożliwi graficzna prezentacje wyników, animacje zostanie dostarczone w celu usprawnienia pisania kodu. Dla osoby piszacej program ważna jest klasa SceneObject z którj powinny być wyprowadzane wszystkie klasy na podstawie, których budowane bed a obiekty wizualne: class SceneObject{ public: SceneObject); virtual SceneObject) {}; virtual void draw)=0; virtual void drawshadow) shadow=; draw); shadow=0; virtual void dostep) {}; virtual void drawcontrolint id, int w, int h) {} virtual bool getcastsshadowsvoid) const { return false; } protected: int shadow; }; Klasa pochodna musi przedefiniować wirtualna metode draw) oraz dostep). Metoda draw) wywo lywana jest przez środowisko, kiedy zachodzi potrzeba namalowania obiektu, natomiast dostep) kiedy dokonywane sa obliczenia dla kolejnego kroku czasowego. Oczywiście w celu umieszczenia obiektów statycznych, które maja mieć tylko wizualna reprezentacje metoda dostep) może być pusta. Program wykorzystujacy biblioteke wyglada nastepuj aco: 6
.4. Środowisko programistyczne #include "soleng.h" int mainint argc, char *argv[]){ CWorld *world; world = CWorld::getWorldInstanceargc, argv); world->scenemanager->addsceneobjectnew Pendulum)); world->mainloop); return 0; } Dodatkowa przydana klasa jest DisplayControl realizujac okienko powiazane z obiektem sceny w momencie kiedy zachodzi konieczność namalowania okienka wysy la ono komunikat do swojego w laściciela drawcontrolint id, int w, int h). 7