Semestr letni 2005/06

dziś jest


Konsultacje:

poza okresami zajęć dydaktycznych - należy wcześniej umówić się np. e-mailem lmarcin at mimuw.edu.pl, pok.1020 (na parterze koło biblioteki - niedługo zmiana). Należy też sprawdzić: Plan.
Wyniki egzaminu z Obliczen Naukowych w II terminie z propozycja oceny:

Kiedys tu byly... (plik pdf)

Egzamin zakonczony - oceny proponowane sa ostateczne!!!


Ćwiczenia/Lab:


Obliczenia naukowe

(wyklad czw 1215-1345 - sala i ćwiczenia - 1 grupa)

Treści zadań z egzaminów w I i II terminie

  1. czerwiec (obie grupy; plik pdf )
  2. wrzesień (plik pdf)

Egzamin przy komputerze II termin we wrzesniu

wtorek; 5 września - 13-16 Lab 2. USOS: plan sesji wrzesień 2006
Egzamin ma taki sam charakter jak w I terminie. czyli m.in nie wolno korzystać z notatek - wolno ze swoich plików i stron www  ale żadnych narzędzi komunikowania się typu poczta elektr. itp

Proszę sprawdzić wcześniej czy wszystko na Państwa kontach działa i być z 10-15min wcześniej aby sprawdzić komputer przy którym Państwo usiądziecie w czasie egzaminu.

Wyniki egzaminu z propozycja oceny:
Link do listy - byl...(plik pdf)

Egzamin zakonczony - oceny proponowane sa ostateczne!!!


Program wykladu

(kolejność i zakres punktów; może ulec znaczącej zmianie)

Kilka przykładowych skryptów, m-plików (plików funkcyjnych ) octave'a, źródeł prostych pogramów w C, źródłowych funkcji z blasów czy LAPACKa

Skrypty m-pliki octave'a

matbasic.m - kilka podstawowych komend octave'a; tworzenie macierzy; wycinanie podmacierzy; zapisywanie/wczyttywanei danych z sesji na dysk itp
sesja3.m - zastosowanie do znalezienia wiel. interpolacyjnego
sesja4.m - całkowanie, operatory logiczne; rozwiazywanie (porstych) równań nieliniowych skalarnych
approx.m  - zastosowanie znaleznienie wiel. najlepszej aproksymacji w normie L2(0,1) (całkowej); min przykład jak definiować funkcje w funkcji (szczegóły ->wykład). Zadanie: zmodyfikować przykład dla L2(a,b) czy dla innej miary np z wagą Gaussowską exp(-x^2/2) - odrobinę trudniejsze
sesja5.m - całkowanie równań różniczkowych zwyczajnych w octavie (2 proste przykłady)
zagbrzeg.m - jak można rozwiązać zagadnienie brzegowe w octavie
kol06.m - rozwiązanie zadań z kolokwium (gr 1) (skrypt; polecenia rysujące sa wykomentowane) - a tu mamy: treść zadań

Funkcje z blasów (w Fortranie)

dnrm2.f -oblicza normę euklidesową wektora (to przykład z wykładu)
dscal.f - skaluje wektor
dgemv.f - oblicza y=alpha*A*x+beta*y lub y=alpha*A'*x+beta*y dla alpha,beta skalary, x,y - wektorów i A macierzy (przykład z wykładu)

Funkcje z LAPACKa (w Fortranie)

dgesv.f  - funkcja typu driver  służąca do  rozwiązywaniu układu równań liniowych z pełną macierzą (dowolną nieosobliwą).  
dptsv.f  - funkcja typu driver  służąca do  rozwiązywaniu układu równań liniowych z symetryczną macierzą trójdiagonalną (macierz podajemy jako 2 wektory - diagonale i poddiagonale)

Pomiar czasu w C

(biblioteka libtimer.a zawierająca min funkcje tic() i toc() działające jak w Octavie).
timer.h - plik nagłówkowy do biblioteki libtimer.a
libtimer.a - biblioteka z min funkcjami  tic i toc - timer dla kawałków programów w C 
test-timer.c - przykład pliku wykorzystującego funkcje tic i toc czyli timer
Kompilujemy kod źródłowy z plikiem nagł. timer.h - a potem linkujemy z  "-L. -ltimer"  na końcu lini kompilacji o ile libtimer.a jest w lokalnym katalogu  np.  gcc  testtimer.c  -L. -ltimer

Narzędzia potrzebne do pomiaru czasu (jak ktoś chce więcej się dowiedzieć)
 times()  funkcja opisana w pliku nagłówkowym sys/times.h  - zwraca w struct tms - czas użytkownika w taktach (czy milionach taktów) zegaru
sysconf(_SC_CLK_TCK)  - zwraca ilośc taktów zegara na sekundę (czy raczej  1000 czy milionów taktów wbrew opisom funkcji ale ważne że zgodnie z tym co zwraca funkcja times().
unistd.h.   - pliku nagłówkowy do funkcji sysconf

Make

Makefile-simple - przykładowy prosty makefile
Makefile - makefile bardziej skomplikowany
make.tar.gz  -  kilka plików potrzebnych aby przetestować oba makefile  w tym inna procedura mierząca czas
manual do GNU make   - dla osób bardziej zainteresowanych  (link OK w dniu zajęć)

Wyklad - Srodowko programisty gdzie mozna znalezc materialy o jezyku C jak i Makefile'ach

Zaliczenie:

Kolokwium na ćwiczeniach - przy komputerze + ewentualnei projekt komputerowy;  egzamin przy komputerze (ewent. z kilkoma prostym pytaniami teoretycznymi) ->propozycja oceny +  ustny (dla  tych z pozytywną propozycją oceny opcjonalny).

Kolokwium


Ćwiczenia/Lab

środa 830-10 sala i lab. Większość zajęć (90%) w labie.
Kolokwium z octave'a - środa 26 kwietnia 2005 : 830-10 (w czasie ćwiczeń)
Wyniki kolokwium (zal od 5 pktów) plik pdf - byl tu..

Kolokwium poprawkowe

dla wszystkich którzy nie zaliczyli poprzedniego - czwartek 25 maja 2006 - godz 16-17 Lab 2

Program labu/ćwiczeń

  1. (sala)zapoznanie się z środowiskiem i komendami unixa i octave'a typu kopiowanie, usuwanie, przenoszenie, szukanie plików, tworzenie katalogów. (22/02/2006)
  2. wstępne zajęcia z octave'a w labie - octave jako kalkulator, operacje macierzowe (np tworzenie wektorów i macierzy, f. tworzące macierze, jak z macierzy odzyskać podmacierz?, mnożenie macierzy itd, funkcje od macierzy itp),  zapisywanie i odczytywanie danych, jak korzystać z helpa, tworzenie wektorów - operator ":" itp. Skrypty - czyli pliki tekstowe z komendami octave'a - przykładowy skrypt matbasic.m  wywoluje sie linii komend octave'a: matbasic. (1/03/2006)
  3. Kontynuacja.  Zadanie 1: korzystając z funkcji vander() (tworzy macierz Vandermonde'a) oraz polyval() - oblicza wartość wielomianu - rozwiązać zadanie regresji liniowej tzn dla danych x_k,y_k znaleźć a,b takie że \sum_k |ax_k+b -y_k|^2 osiąga minimum. Porównać z wynikami funkcji polyfit(). Zad2: znaleźć wiel. interpolacyjny dla węzłów rółnoodległych na odcinku [-5,5] dla funkcji f(x)=1(1+x*x) - zbadać duskretną normę max tej funkcji i wiel interpolacyjnego (testować dla 5,10,20 i 30 węzłów). Pliki z funkcjami itp (8 marca 2006 - Święto kobiet!)
  4. Kontynuacja. Tworzenie skryptów i własnych funkcji. Funkcje linspace, plot (proste wykresy),  Numeryczna klasyka w Octavie: algebra liniowa - układy r. liniowych, rozkłady LU, QR, obliczanie macierzy odwrotnej, liniowe zadania najmniejszych kwadratów, uwarunkowanie macierzy, interpolacja wielomianowa, znajdowanie wiel. pasującego do zadanych punktów: funkcja  polyfit.  Zadanie: korzystając z funkcji vander() (tworzy macierz Vandermonde'a), rozwiązywania układ równań w Octavie,  oraz polyval() - oblicza wartość wielomianu napisać funkcję z parametrami która zwraca  współczynniki wiel. interpolacyjnego P(x) st N=5,10,20,40 na węzłach równoodległych i węzłach Czebyszewa [dla odcinka [a,b] n+1 w. Czebyszewa jest zdefiniowanych jako (a+b)/2  + 0.5(b-a)*cos(0.5*Pi*(1+2k)/(n+1)) ] dla przykładu Rungego tzn na odcinku [-5,5] dla funkcji F(x)=1./(1+x.*x),  narysować wykresy funkcją plot F i P w obu przypadkach. Zrobić to samo wykorzystując funkcję polyfit. Porównać wyniki. Dlaczego dla dużych N - polyfit nie działa (zbadać uwarunkowanie macierzy Vandermonde'a dla dużych N). Przykładowy skrypt: sesja3.m
  5. Całkowanie numeryczne (funkcja quad),  całki z osobliwościami, Instrukcja warunkowe if else, switch,  pętle while, do until, operatory logiczne (&& and, || - or, !-not, != - nie rowna sie,  == - rownosc itp), zad 1: zaimplementować wektorowo funkcję daszek (f(x)=f(-x);f(x)=0 poza [-1,1], f(x) =1-x na [0,1]);  zmienne globalne - moga w pewnych sytuacjach sluzyc do przekazania parametru (global). Jak napisac funkcje ktorej jedynym parametrem jest nazwa funkcji postaci y=f(x) liczącej całkową normę L2? (było na wykładzie). Zad2: Zaimplementować tą funkcję i napisać wersję zmodyfikowaną liczącą normę L^p (p-drugi parametr).  Zad3: (dodomu zapewne) napisać funkcję liczącą całkę postaci \int_0^1f(x)x^kdx  dla funkcji postaci y=f(x)  a potem korzystając z tego i macierzy Hilberta   wielomian najlepszej aproksymacji w L2(0,1) .   sesja4.m  16/03/05
  6. Rozwiązywanie równań nieliniowych (funkcja fsolve).  Zad 1: rozwiązać kilka prostych r. nieliniowych np cos(x)=1, x*x-4=0; z różnymi przyblżeniami startowymi; Zad 2: przetestować fsolve na trudniejszych przykładach: x*(1+0.5sin(x)=0; (x-1)^2=0; z i bez podawania pochodnej itp Zad 3: zadanie nieliniowe np x1+x2=0; x1^2+x2^2-1=0; Zad 4: przy pomocu fsolve narysować wykres funkcji podanej w sposób uwikłany: np wykres y(x) dla y^2+x^2=1 z y(0)=1 albo y(0)=-1; Zad 5: narysować wykres funkcji odwrotenj do danej formułą - na prostych przykłądach np sin(x) (porównać z arcsin(x)) itp 
  7. Rozwiązywanie RRzw w octave'ie funkcja lsode.   lsode - przypadki wielowymiarowe; parametry lsode (wybór schematów itp) Zad 1 Narysować wykres funkcji F(s)=y(1,s) zdefiniowanej jako F(s)=y(1,s) gdzie y(t,s) rozwiązanie równania y'=f(y,t) z y(0)=s dla s w [0,1], [-1,1] dla f=y,10y,-10y 0.1*y*y itp Zad 2 przy pomocy lsode i fsolve znaleźć s0 takie że rozwiązanie rółnania y'=y*(1-y)*sin(y*y+x)  z war pocz. y(0)=s0  spełnia  y(1,s0)=0.5. Narysować wykres  F(s)=y(1,s) - potok fazowy dla t=1 i y(t,s0) dla t w [0,1]. Zad 3: przy pomocy lsode i fsolve znaleźć rozwiązanie zadania brzegowego: u''+u*u=f(t) u(0)=u(1)=0 dla różnych f np f=0; f=exp(t) itd Narysować wykres rozwiązania, znaleźć min i max rozwiązania. Przy okazji wykresy funkcji w skali logarytmicznej(loglog) i semilogarytmicznej (semilogy, semilogx), opisy wykresów (3 parametr plot) itp
  8. Schematy rozwiązywania równań zwyczajnych. Rozwiązać w octavie (lsode) sztywny układ - schematem adamsa i bdf - porównać czas (lsode_options) np dla układu: x'=998*x+1998*y;y'=-999*x-1999*y z war. pocz. x(0)=y(0)=1 na odcinku [0,10], [0,100] itp   Wykresy funkcji 2-wymiarowych (mesh,surf,contour), eksport rysunkow na drukarke czy do pliku w różnych formatach np ps czy eps (funkcja print - octave-forge). Zad: narysować wykres funkcji sin(x*x+y*y) na [-2,2]x[-1,3] i poziomnice tego wykresu, poziomnice wyeksportować do pliku eps (kolorowego) cont.eps; wyświetlić plik eps przy pomocy ghostview. Chaos: przy pomocy lsode rozwiązać układ zaproponowany przez E.N. Lorentza dx/dt = x - y - x^3; dy/dt = x - x*x*y dla różnych war. początkowych Podsumowanie Octave'a . Z wykorzystaniem funkcji lsode  rozwiązać równanie przewodnictwa cieplnego paraboliczne d/dtu=d^2/dx^2u, u(-1,t)=u(1,t)=0, u(x,0)=u0(x) zadane. Dyskretyzujemy po x  u_xx ~ h^{-2}(u_{n-1} -2u_n +u_{n+1})  otrzymujemy układ r. zwyczajnych  du/dt=h^{-2}Au dla A macierzy 3-diagonalnej z -2 na głównej diagonali i 1 na poddiagonalach. - rozwiązujemy lsode dla różnych  u0 np sin(\pi*x)  czy  funkcją z pikiem u0(x)=0  dla x poza  [-eps, eps]  i u0(x) =(1/eps)((1-x/eps)(1+x/eps))^3 dla eps=0.5,0.1,0.01,0.001. narysować wykres rozwiązanian na [0,1]x[0,3]. (12 kwietnia 2006)
  9. Kolokwium z octave'a.!!!  treść zadań  (przykładowe rozwiązania  kol06.m  (skrypt; polecenia rysujące są wykomentowane) (26 kwietnia 2006)
  10. Proste programy w języku C. Zastosowanie wszystkich podstawowych struktur: pętle  while, do while, for, instrukcje warunkowe if, switch,  pliki wsadowe,  wczytywanie danych z klawiatury czy pliku, zapisywanie do pliku czy na ekran (scanf, fscanf,printf, fprintf).  Wskaźniki, wektory, macierze, kompilowanie, argumenty programu (czyli funkcji main()).  Zadanie zsumować wyrazy szeregu harmonicznego 1/x^p dla różnych p.  (10/05/2006)
  11. Kontynuacje i funkcje fortranowskie w C. Stworzyć  typ strukturalny z 2 polami  - wymiar  i pola wektora. Dynamiczna alokacja pamięci (malloc i free) Zad 1:  napisać 2 funkcje tworzące wektor i go wymazujące (tzn alokoujące odp. pamięc i potem usuwające zaalokowaną pamięć) . Zad 2: użyć funkcji z biblioteki fortranowskiej w C na przykładzie możliwie prostej funkcji z blasów dnrm2.f -obliczającej normę euklidesową wektora (to przykład z wykładu) i dscal.f  -mnoży wektor przez skalar  - napisać swój plik wsadowy (w kodzie programu : #include "mojblas.h") zawierający nagłówki obu funkcji (17/05/2006)
  12. Macierze w C które mogą służyć jako parametry funkcji w Fortranie tzn trzymane w tablicy kolumnami: Zad 1: napisać makro obliczające pozycje elementu (i,j) macierzy trzymanej w wektorze kolumnami. Zad 2: macierze w blasach (czy ogólniej w Fortranie - zastosować funkcję dgemv.f   do wymnożenia wektora np [1 1]' przez macierz [-2 2;  3 3]. Lapack:   dgesv.f  - funkcja typu driver  służąca do  rozwiązywaniu układu równań liniowych z pełną macierzą (dowolną nieosobliwą).   Zadanie 2 -zastosować makro z zad 1 do definicji macierzy i zastosowąc dgesv.f    do jakiś małych układów (nawet 2x2)  Zadanie 3 - zastosować funkcje dptsv.f  rozwiązującą układy równań liniowych z symetrycznymi trójdiag. macierzami dodatnio określonymi do układu równań powstałego z dyskretyzacji r. Laplaca met . różnic skończonych z zerowymi warunkami brzegowymi ( macier trójdiaonalna 2 na diagonali, -1 na pod- i nad diagonali).  Porównać czas obliczeń z analogicznym uzyskanym w Octavie czyli musimy wiedzić jak zmierzyć czas w C! Zadanie domowe znaleźć funkcję w BLASach level 3 mnożącą przez siebie 2 macierze - zastosować do jakiegoś prostego przykładu np A=[0 2; 3 0] i B= [1 -1; 1 2] policzyć C=A*B za pomocą tej funkcji. (24/05/2006)
  13. Make makefile czyli  wygodny sposób na kompilacje- mozliwie prosty makefile:makefile-simple  i bardziej skomplikowany makefile. (a tu mamy kilka plików potrzebnych aby przetestować oba makefile  make.tar.gz).  Dla osób bardziej zainteresowanych manual do GNU make  (link OK w dniu zajęć) Pomiar czasu w C.  - jak zmierzyć czas procesora w C? - funkcja times()  i struktura struct tms (opisana w pliku nagłówkowym sys/times.h  Ponieważ funkcja times zwraca ilość taktów zegara potrzebujemy sysconf(_SC_CLK_TCK)  - zwraca ilośc taktów zegara na sekundę no i pliku nagłówkowego do tej funckji unistd.hZad 1: napisać funkcje tic i toc jak w Octavie z wykorzystaniem funkcji times() - warto obejrzeć plik CPUtimer.c - w make.tar.gzZad 2:  Zmierzyć czas rozwiązywania układu równań z poprzednich ćwiczeń - porównać z Octave'm.   Jak stworzyć swoją biblioteke (statyczną) a potem jak ją używać. Zad 3: stworzyć bibliotekę zawierającą Państwa funkcje np. tic toc czy funkcje dotyczące wektorów/macierzy (31/05/2005)
  14.   Implementacja wielowymiarowej metody Newtona w octave'ie i w C z wykorzystaniem lapacka. Zad 1: Napisać w lapacku funkcję rozwiązująą układ nieliniowy przy pomocy met. Newtona - pierwszy argument to tablica 2 elementowa z nazwami funkcji obliczającymi dla danego wektora x wektor F(x) i Jakobian  DF(x) odpowiednio.  Zad 2: Rozszerzyć procedurę na przypadek gdy tablica jest 1 wymiarowa tzn podajemy tylko nazwę funkcji obliczającą F - DF obliczyć przy pomocy różnic dzielonych. Porównać czas działania dla prostego ukłądu np F(x)=[x(1)+x(2)-1; x(1)*x(1)+x(2)*x(2)-1]  oraz F(x,a)=[A*x -a*x; x'*x-1]  (rozwiązanie to para [x,a] spełniająca Ax=ax i ||x||2=1. (7/05/2006)

Równania różniczkowe zwyczajna z labem

czwartek ćwiczenia 1415-1545, lab 16-1730 (lab co 2 tygodnie). Uwaga! Pierwszy lab 2 marca 2006 (drugi tydzień semestru letniego)

Zadania domowe będą zadawane z ćwiczeń na następne ćwiczenia - nie ma możliwości oddawania po terminie; dla osób którym będzie brakowało punktów na zaliczenie (i tylko zaliczenie a nie np. poprawienie oceny) przewiduję zadania dodatkowe.

Kolokwium w terminie wykładu tj czwartek 1215-1345 - 27 kwietnia 2006 (wynik liczy się nie tylko do zaliczenia; ćwiczeń do oceny końcowej na prawach egzaminu połówkowego) - 40%

Projekty komputerowe - 30%

Laboratorium

Literatura

  1. W. I. Arnold, Równania różniczkowe zwyczajne. Państwowe Wydawnictwo Naukowe, (PWN) Warszawa 1975. Tłumaczenie z rosyjskiego. Książka wyłącznie o teorii równań różniczkowych zwyczajnych.
  2. A. F. Filippow Sbornik zadaczi po difieriencjalnym urawnieniam. Nauka, Moskwa, 1979, zbiór zadań, po rosyjsku.
  3. N. M. Matwiejew Metody całkowania  równań różniczkowych zwyczajnych. Państwowe Wydawnictwo Naukowe, (PWN) , Warszawa 1986. Klasyczny podręcznik, głównie metody rozwiązywania równań.
  4. N. M. Matwiejew Zadania z równań różniczkowych zwyczajnych. Państwowe Wydawnictwo Naukowe, (PWN), Warszawa 1976. Zbiór zadań.
  5. Jerzy Ombach Wykłady z równań różniczkowych wspomagane komputerowo-Maple. Wydawnictwo Uniwersytetu Jagielońskiego, Krakow 1999. Tylko teoria  rrz, bez schematów numerycznych ale za to sporo o Maple.
  6. Andrzej Palczewski Równania Różniczkowe zwyczajne   Teoria i metody numeryczne z wykorzystaniem komputerowego systemu obliczeń symbolicznych. Wydawnictwo Naukowo-Techniczne (WNT) ,Warszawa 1999. Teoria równań różniczkowych i schematów, trochę o maple'u.
  7. Lloyd N. Trefethen, Finite Difference and Spectral Methods for Ordinary and Partial Differential Equations, unpublished text, 1996, available at http://web.comlab.ox.ac.uk/oucl/work/nick.trefethen/pdetext.htmlM.in. schematy dla równań zwyczajnych.
Inne pozycje - kilka dodatkowych pozycji dotyczących schematów rozwiązywania RRzw.

Warunki zaliczenia:

50% ilości pktów możliwych do zdobycia = 40% kolokwium, 30% zadania domowe, 30% projekt(y) zaliczeniowe z laboratorium. Kolokwium - na zasadzie egzaminu połówkowego.  Egzamin w II terminie będzie obejmował elementy zaliczenia ćwiczeń a konkretnie labu - o szczegółach zdecyduje wykładowca.



  Powrót do mojej strony domowej


Ostatnia aktualizacja: 5 września 2006