Metody Numeryczne I

Laboratorium

W semestrze zimowym 2020/2021 laboratorium odbywa zdalnie za pośrednictwem platformy 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

Materiały z wykładu (2019)

Python Documentation

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/

MNI Strona główna

Lab 1. Język C - powtórka
Lab 2. Błedy numeryczne
Lab 3. Różniczkowanie
Lab 4. Rozwiązywanie równań nieliniowych
Lab 5. Rozwiązywanie równań nieliniowych 2
Lab 6. Całkowanie
Lab 7. Monte Carlo
Lab 8. Kolokwium
Lab 9. Interpolacja
Lab 10. Równania liniowe
Lab 11. Równania liniowe c.d.
Lab 12. Równania liniowe c.d.
Lab 13. Równania różniczkowe
Lab 14. Równania różniczkowe c.d.
Lab 15. Kolokwium

Środowisko pracy

Google Colab (zalecane)

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 Anaconda, która zawiera Pythona, Jupyter oraz wiele przydatnych pakietów.

Installing the classic Jupyter Notebook interface

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

Python is a programming language that lets you work quickly and integrate systems more effectively

www.learnpython.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.

Jupyter Notebook for Beginners: A Tutorial

NumPy NumPy is the fundamental package for scientific computing with Python

NumPy tutorial

matplotlib comprehensive library for creating static, animated, and interactive visualizations in Python.

Matplotlib tutorial for beginner by Nicolas P. Rougier