Teaching

ONA 3 – wykresy i matplotlib

Dzisiaj zajmujemy się wykresami.

Slajdy są tu ONA3-wykresy

Zadania na dziś:

1. Narysuj wykres podobny do tego ze slajdu nr. 14  z wykładu. Uwzględnij opisy osi, zakresy wartości, kolory, znaczniki wartości, legendę i tytuły osi oraz wykresów.

2. Narysuj wykres 10*sin(x)+normal(0,1) dla 1000 punktów w zakresie 0,10. Przyda się funkcja normal().

3. Napisz program, który wykona 1000 prób rzutu 10 kostkami. Narysuj na jednym wykresie 3 przenikające się histogramy (alpha=0.25): suma oczek na kościach parzystych (0,2,4,6,8), suma oczek na kościach nieparzystych (1,3,5,7,9), suma oczek na wszystkich kościach. Może przydać się funkcja randint().

4. Przedstaw dane z wykresu 3. w postaci 3 wykresów pudełkowych (boxplot)

5. Narysuj powierzchnię 3d (x,y,z) in linspace(0,1,100) gdzie z=y*cos(x)+(1-y)*sin(x), Może być przydatny ten przykład

5. Narysuj mapę ciepła dla tej samej powierzchni. Użyj różnych map kolorów.

 

ONA 2 – Numpy

Slajdy do wykładu są tu: ONA2-Macierze

Ćwiczenia:

  1. Stwórz macierze A i B o wymiarach  1000×1000 zawierające wartości A[i,j]==i*3-j*5 i [i,j]==np.sqrt(A[i,j]) (Zauważ, że to wymaga wartości urojonych, a więc macierzy typu complex64 i wartość sqrt(-1) ->.j)
  2. Napisz funkcję poz(indeksy, shape), która dla zadanej krotki indeksów zwraca liniową pozycję elementu o zadanych indeksach w wielowymiarowaj macierzy o kształcie shape.
  3. Korzystając z broadcastingu i mnożenia macierzy zmień znak elementów w macierzy B, których suma indeksów jest nieparzysta
  4. korzystając z sortowania , posortuj macierz 3-wymiarową wg. drugiej współrzędnej i obejrzyj wynik.
  5. Korzystając z funkcji frompyfunc() napisz funkcje wektorowe, które liczą a) sumę kwadratów dwóch macierzy  (dwie macierze do jednej)
    b) iloraz i resztę z dzielenia całkowitoliczbowego przez 17 (jedna macierz wejściowa i dwie macierze wyjściowe)
  6. Korzystając z modułu time, porównaj prędkość funkcji liczących N potęg dwójki – na liście i w wektorze. Dla jakich wartości N warto używać macierzy?

Obliczenia naukowe 1 – Arytmetyka komputerów

Dzisiaj zajmujemy się arytmetyką komputerów.  Slajdy z naszego wykładu są tutaj (pdf).

Pracujemy w narzędziu ipython3 (nie w octave) i wykonujemy zadania z labu 3 metod numerycznych. Nieco więcej technicznych szczegółów jest też dostępne w materiałach do wykładu z metod numerycznych.

W szczególności:

Zastanów się nad zadaniem z szeregami zbieżnymi (lub rozbieżnymi) numerycznie. Zaimplementuj liczenie sum S(n) w pythonie, dla dowolnego n i dla kilku szeregów podanych w rozwiązaniu. Które z nich można dokładnie policzyć pry użyciu modułu Fractions?

Policz wartości e(x) wg rozwinięcia wzoru Taylora dla zadanego maksymalnego stopnia. Porównaj różnicę wyniku jaki otrzymujesz dla x=-90 i x=2.

Policz sumy częściowe szeregu harmonicznego przy użyciu liczb zmiennoprzecinkowych i przy użyciu modułu Fractions. Porównaj wyniki.

Policz epsilon maszynowy (zarówno jako wartość dziesiętną ale też liczbe bitów cechy binarnej przy pomocy sprawdzania dla jakich n 1.0+2.0**(-n) >1.0

Napisz funkcję znajdującą miejsca zerowe dla dowolnej funkcji w przedziale [a,b] ( def zero(f,a,b):) metodą bisekcji.  Sprawdź jak ona działa dla różnych równań typu 1/x-c.

 

 

Zadanie Bonusowe WDI

Jak co roku, proponujemy Państwu rozwiązanie zadania dodatkowego, za które można zdobyć dodatkowe 5 punktów.

Treść zadania znajdą Państwo w systemie davinci. Tam też można potestować, czy Państwa rozwiązanie jest prawidłowe.

Aby uzyskać dodatkowe punkty trzeba wysłać swoje rozwiązanie w formie pliku bonus.py zawierającego funkcję prefiksy2(nazwa_pliku), która rozwiązuje to zadanie dla dowolnego pliku wejściowego zawierającego sekwencje DNA.

Plik powinien zawierać komentarze czytelnie opisujące co program robi i dlaczego.

Rozwiązania należy wysyłać na adres e-mail wykładowcy do piątku 12. II włącznie.

Odpiszę potem Państwu, z propozycją liczby punktów od 0 do 5. Proszę brać pod uwagę możliwą konieczność spotkania się ze mną w celu wyjaśnienia wątpliwości przed ew. przyznaniem punktów.

powodzenia!

Wyniki WDI

Udało się sprawdzić prace egzaminacyjne. Wyniki egzaminu są całkeim niezłe, większość zdających zaliczyłą przedmiot już w pierwszym terminie. Wyniki szczegółowe w USOS (punkty w sprawdzianach, oceny w protokole). Progi punktowe:

  • 85+ -> BDB
  • 80+ -> DB+
  • 73+ -> DB
  • 66+ -> DST+
  • 60+ -> DST

Jutro (10. lutego) w godz 14-16 można będzie oglądać prace (pok. 5830) i zgłaszać ew. reklamacje ocen (pok. 5770). Jutro też pojawi się zadanie “bonusowe” za 5 pktów, dla osób, które będą czuły, że zasługują na lepszą ocenę.

Jako termin egzaminu proponuję 21 22. lutego o 10-14.

 

 

WDI – zajęcia 14

1. (9p.) Dany jest plik pracownicy.txt o następującym formacie:

Anna,Abacka,mazowieckie,4500,6,informatyk

Bernard,Babacki,lodzkie,4300,3,ksiegowy

Czesław,Cabacki,pomorskie,5000,16,prawnik

w którym każdy wiersz zawiera następujące informacje o pracowniku:
imię,nazwisko,województwo,wynagrodzenie,stażPracy,zawód
Napisz następujące skrypty korzystające z pliku pracownicy.txt
(co najmniej jeden z nich powinien być napisany w BASH-u):

  • srN[.sh|.py], parametry: liczba naturalna N.

    Skrypt ma wypisać średnie wynagrodzenie wśród pierwszych N osób o najwyższym wynagrodzeniu.

  • ktoNZ[.sh|.py], parametry: liczba naturalna N, zawod Z.

    Skrypt ma wypisać imię, nazwisko oraz staż pracy osoby, która ma N-te co do wysokości wynagrodzenie wśród wszystkich pracowników posiadających zawód Z.

  • wynWZ[.sh|.py], parametry: wojewodztwo W, zawod Z.

    Skrypt wypisze imię, nazwisko oraz całkowity dotychczasowy dochód (wynagrodzenie × stazPracy) wszystkich pracowników mających zawód Z, pracujących w województwie W.

Continue reading “WDI – zajęcia 14”