Programowanie i metody numeryczne - cz. II


Zajęcia nieobowiązkowe dla chętnych z II roku studiów I stopnia na kierunku Astronomia, rok akademicki 2021/2022, semestr letni

Piszemy bardziej zaawansowane programy, w "czystym języku C". W planie mamy 6 programów na zaliczenie, w tym jeden indywidualny projekt.

Reguły wymagania obecności: maksymalnie 2 nieusprawiedliwione, punktualność!!!

Cel tych zajęć: myśleć i rozumieć. Nic na pamięć, dowolne notatki lub podręczniki, również na kartkówkach i kolokwiach i w trakcie zaliczania zadań.

Reguły oceniania: obowiązuje zaliczenie co najmniej 5 zadań w tym własnego projektu (ale na bdb wszystkie 6 zadań), aktywność, możliwe kolokwium zaliczeniowe z dopytaniem

Dziennik Lekcyjny happy smiley


Zadania

Opis metody

  1. Program rozwiązywania układu równań liniowych metodą Gaussa z częściowym wyborem elementu głównego: czytanie danych macierzowych z pliku, sortowanie, kontrola poprawności danych wejściowych, operacje na macierzach, wielokrotnie zagnieżdżone pętle, parametryzacja algorytmu. Dla ambitnych studentów, propozycja dodatkowa: wymyślić i zastosować sposób kodowania w plikach danych współczynników w postaci ułamków, tak jak to jest w zestawach 1 i 4. Zestawy danych. test do zest.2

Opis biblioteki PGPLOT

  1. Elementy programowania grafiki z użyciem biblioteki PGPLOT: używanie dodatkowych bibliotek, techniki rysowania, tworzenie wykresów, histogramów itp. Tegoroczny (wiosna 2022) temat:"Tygrys w klatce.".
Obrazek 1
W roku 2008 tematem
przewodnim były
Słoneczniki Van Gogha.
Jeden ze studentów solidnie
się napracował jak widać!
[Wersja postscriptowa]

O równaniu Keplera

  1. Program rozwiązywania równania przestępnego pięcioma metodami na przykładzie eliptycznego równania Keplera: wstępna analiza równania, graficzne szacowanie rozwiązania jako przykład otrzymywania danych startowych dla iteracji, przeliczenia danych kątowych, metoda iteracji prostej, metoda Newtona, metoda siecznych, metoda bisekcji, metoda "Regula falsi", graficzne porównanie dokładności i efektywności pięciu metod dla różnych mimośrodów i losowanych anomalii średnich. Na wykresie ma być na osi poziomej parametr dokładności a na osi pionowej czas obliczeń każdej z metod. Wszystkie metody mają być napisane jako osobne, własne funkcje. Dane testowe     Czas obliczeń mierzymy funkcją clock().
  2. Praca z wielkim plikiem danych na przykładzie katalogu Tycho-2: wskaźniki w języku C, wyszukiwanie, sortowanie, wybieranie podzbiorów, histogramy rozkładów różnych parametrów z użyciem PGPLOT-a. Szczegółowy opis tego zadania. Na pracowni, w katalogu /home/COMMON/dydaktyka/PAD_programowanie jest mój program testowy do porównania.      Kilka słów o wskaźnikach w C
  3. Zadanie polega na propagacji położenia ciała o zaniedbywalnej masie po orbicie niezaburzonej (keplerowskiej). Zadanie ma dwa warianty:

Pierwszy wariant jest łatwiejszy, ale mniej "rozwojowy", bo dotyczyć może jedynie ruchu nieperturbowanego. Drugi wariant jest bardziej rozwojowy, bo stanowi pierwszy krok w nauce całkowania numerycznego równań ruchu, które stosujemy również w przypadku ruchu rzeczywistego, perturbowanego. Oba zadania mają sporo wspólnego bo wymagają oprogramowania ruchu keplerowskiego klasycznymi wzorami, które stosujemy do kontroli wyników w obu wariantach.

  1. Indywidualny projekt programistyczny studenta (własny lub wybrany z listy propozycji).


Przypomnienie: o generatorze liczb losowych

Uzupełnienie: kilka słów o strukturach w C

Uzupełnienie 2: Środowisko programistyczne - wprowadzenie (patrz projekt Geany).    Tips & Tricks


Lista proponowanych zadań indywidualnych

(w nawiasie szacowana trudność w skali od 1 do 15)

Tematy astronomiczne:


  1. Mapy gwiazdozbiorów (10-15), https://pbarbier.com/constellations/boundaries.html
  2. Wirtualny teleskop w oparciu o katalog gwiazd (12 - 15)
  3. Współrzędne prostokątne i sferyczne planet z elementów średnich (7)
  4. Program do konwersji starych oznaczeń komet na nowe, Dane (8)
  5. Wschody i zachody Słońca (10 - 15) Patrz na przykład tu i tu.
  6. Wschody i zachody Księżyca (10 - 15)Patrz na przykład tu i tu.
  7. Geocentryczna (10) lub topocentryczna(15) efemeryda planetki
  8. Geocentryczna efemeryda planet oparta na efemerydzie JPL DE440 (15).
  9. Miejsca widome gwiazd (8 - 15)
  10. Momenty faz Księżyca w danym roku (dzień, godzina, minuta) w czasie urzędowym w Polsce (8)
  11. Elementy -> pozycje -> elementy -> pozycje dla dowolnego mimośrodu (12)
  12. Elementy orbity z dwóch położeń (12)
  13. Analityczne i numeryczne pochodne położeń po elementach (8)
  14. Diagramy HR dla różnych podzbiorów katalogu Hipparcos lub nowszych, np. GCNS (12-14)
  15. Topocentryczna efemeryda gwiazdy w układzie horyzontalnym plus kąt godzinny (8-12)
  16. Rozwiązanie dowolnego trójkąta sferycznego (8-12)
  17. Przeliczanie miejsc średnich pomiędzy epokami czyli precesja i ruchy własne (12)
  18. Testowanie dopasowania prostej metodą najmniejszych kwadratów (10 - 14)

Tematy nieastronomiczne:


  1. Gra w kółko i krzyżyk do 5 na planszy 19x19 (10 - 15), https://gomokuonline.com/
  2. Wyliczenie pierwszych 200 cyfr liczby e lub π (12)
  3. Czterodziałaniowy kalkulator o dowolnej precyzji (15)
  4. Gra w numerki (8)
  5. Grafika - wypełnianie dowolnego wielokąta (12)
  6. Grafika - własna biblioteka graficzna (10-15)
  7. Gra LIFE (8 - 12)
  8. Korekta ortograficzna tekstu polskiego (10 - 15)
  9. Grafika - obroty trójwymiarowej bryły (12 - 15)
  10. Gra Mu-Torere http://www.lutanho.net/play/mutorereshisima.html, http://www.onlinesologames.com/mu-torere
  11. Gra w zapałki (8-12). Gra znana jako NIM, https://www.archimedes-lab.org/game_nim/play_nim_game.html, https://plus.maths.org/content/play-win-nim


Przykładowa literatura