====== Metody Numeryczne I ====== ===== Laboratorium ===== W semestrze zimowym 2020/2021 laboratorium odbywa zdalnie za pośrednictwem platformy [[https://moodle.umk.pl/WFAiIS|Moodle]] w poniedziałki w godz. 12-14 ====== Zaliczenie laboratorium ====== Warunkiem zaliczenia zajęć jest * rozwiązanie zadań z laboratoriów * zdanie 2 kolokwiów (zdalnie (?)) ===== Literatura ===== * [[http://wwwold.fizyka.umk.pl/~ig/DYDAKTYKA/metody_numeryczne_2019_20/|Materiały z wykładu (2019)]] * [[https://docs.python.org/3/contents.html|Python Documentation]] * [[http://people.bu.edu/andasari/courses/numericalpython/python.html|Numerical Methods Using Python]] lectures by Vivi Andasar ==== Plan ==== - Podstawy programowania - przypomnienie * narzędzia: Python, Jupyter, Google Colab - Różniczkowanie numeryczne * pochodne pierwszego i wyższych rzędów (zależność od h i błąd metody) - Równania nieliniowe * znajdowanie miejsc zerowych (metoda bisekcji, siecznych, Newtona) * porównanie zbieżności metod. * wykorzystanie różniczkowania numerycznego w metodzie Newtona - Interpolacja - Całkowanie numeryczne * Metody prostokątów, trapezów, Simpsona * porównanie metod * (?) Monte Carlo - Rozwiązywanie układów równań liniowych * Eliminacja Gaussa + pivoting * (?) metoda iteracji prostych * Obliczanie wyznacznika i macierzy odwrotnej - Równania różniczkowe - Układy równań nieliniowych * met. Newtona-Raphsona - Znajdowanie wektorów i wartości własnych ===== Notatniki ===== Ćwiczenia postaci notatników Jupyter dostępne są w repozytorium GitHub: [[https://github.com/IS-UMK/mn/]] {{page>.:sidebar&noheader&nofooter}} ===== Środowisko pracy ===== ==== Google Colab (zalecane) ==== * [[https://colab.research.google.com/|Google Colab]] * maszyna wirtualna w chmurze * wymagane konto Google * notatniki przechowywane na Dysku Google ==== Lokalnie na własnym sprzęcie ==== Notatniki z zajęć można uruchamiać lokalnie na własnych komputerach. Należy w tym celu skonfigurować środowisko Python i Jupyter Notebook lub JupyterLab Wygodnie w tym celu użyć gotowej dystrybucji [[https://www.anaconda.com/products/individual|Anaconda]], która zawiera Pythona, Jupyter oraz wiele przydatnych pakietów. * [[https://jupyter.readthedocs.io/en/latest/install/notebook-classic.html|Installing the classic Jupyter Notebook interface]] * [[https://jupyterlab.readthedocs.io/en/stable/|JupyterLab]] ==== Serwery wydziałowe ==== Notatniki można również uruchamiać korzystając z serwera ''polon7''. Dostęp z zewnątrz sieci LAN wymaga aktualnego klucza OpenVPN. Przy logowaniu na serwer via ''ssh'' należy przetunelować port na którym Jupyter hostuje notatnik (domyślnie ''8888''') tak aby możliwe było wyświetlenie wyników w przeglądarce internetowej. ssh -L 8888:localhost:8888 user@polon7.fizyka.umk.pl Po zalogowaniu przechodzimy do katalogu, w którym znajdują się notatniki. \\ Notatniki z laboratorium dostępne są w repozytorium GitHub. \\ Klonowanie repozytorium: git clone https://github.com/IS-UMK/mn/ Uruchamianie notatnika: jupyter-notebook --no-browser --port 8888 Domyślnie notatnik uruchamia się na porcie 8888. W przypadku, gdy port ten jest zajęty należy wybrać inny, pamiętając o odpowiedniej zmianie tunelowanego portu przy połączeniu (''-L port:localhost:8888'''). Następnie w przeglądarce (lokalnie) otwieramy adres [[http://localhost:8888]] ===== Kilka przydatnych odnośników ===== * [[https://www.python.org/|Python]] is a programming language that lets you work quickly and integrate systems more effectively * [[https://www.learnpython.org/pl/|www.learnpython.org]] * [[https://jupyter.org/|jupyter]] The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. * [[https://www.dataquest.io/blog/jupyter-notebook-tutorial/|Jupyter Notebook for Beginners: A Tutorial]] * [[https://numpy.org/|NumPy]] NumPy is the fundamental package for scientific computing with Python * [[https://numpy.org/devdocs/user/quickstart.html|NumPy tutorial]] * [[https://matplotlib.org/|matplotlib]] comprehensive library for creating static, animated, and interactive visualizations in Python. * [[https://github.com/rougier/matplotlib-tutorial|Matplotlib tutorial for beginner]] by Nicolas P. Rougier