Obliczenia matematyczne wspierane komputerowo#
Wstęp#
W niniejszym skrypcie zapoznamy się z podstawowymi funkcjonalnościami pakietu matematycznego SageMath. Przewodnik ten jest fragmentem kursu wykładanego na Wydziale Matematyki i Informatyki UAM. Przed przystąpieniem do czytania warto zaznajomić się z podstawami języka programowania Python. Mile widzana jest też pewna biegłość matematyczna w posługiwaniu się rachunkami z zakresu podstaw algebry, geometrii, analizy i teorii liczb.
Filozofia i metodyka pracy na zajęciach#
Metoda, na której opieram swoje zajęcia nazywana jest ‘’Computational thinking (CT)’’ i można ją scharakteryzować zasadą ‘’Triple A’’’
Abstraction: Problem formulation;
Automation: Solution expression;
Analysis: Solution execution and evaluation.
W szczególności staram się na zajęciach prowadzić dyskusję ze studentami, w czasie której przechodzimy od przykładów do definicji ogólnych pojęć, bawiąc się przy okazji prostymi przykładami. Następnie poprzez eksperymenty numeryczne dochodzimy do ogólnych twierdzeń, które w sposób wsparty rachunkiem symbolicznym na komputerze ilustrujemy i dowodzimy.
Narzędzia pracy#
Poniżej wylistowane są narzędzia pracy wykorzystywane podczas zajęć.
Cocalc:#
Platforma Cocalc: https://cocalc.com
bez instalacji
działa Python, SageMath oraz R
możliwosć tworzenia prezentacji
sporo przykładów
Jupyter#
-
ogólna strona projektu
informacje o innych instalacjach
możliwosc używania w Anaconda, niezależnie lub w celu dokumentacji plików
Na wydziale mamy postawiony serwer Jupyter pod adresem https://jupyter.wmi.amu.edu.pl
SageMath#
-
kompleksowy pakiet matematyczny (nadbudowa na Pythona)
szybkie tworzenie skomplikowanych dokumentów opartych o Pythona i obliczenia matematyczne
silnie wspiera obliczenia symboliczne (idealna platforma do obliczeń i eksploracji problemów)
Co to jest notatnik Jupyter?#
Notatniki Jupyter służą do mieszania kodu pisanego w języku programowania z obszernymi komentarzami.
Jest to wygodny sposób na prowadzenia swoistego ‘’dziennika naukowego’’ pracy i dokumentowanie wszystkich kroków swojego programu.
W łatwy sposób uzyskujemy dostęp do narzędzi, które dają nam możliwość przygotowania profesjonalnego raportu, prezentacji z obliczeń.
W efektywny sposób możemy utrwalić naszą pracę, a także wykonać eksport do wielu innych formatów, np. docx, pdf, tex.
#ewaluacja kodu
2+2+2
6
Out[1]: 4
uzyskamy wciskając w komórce powyżej Shift+Enter
W notatnikach można dodawać elementy stylistyczne i wyróżnienia
~~Pewne rzeczy możemy skreślać.~~
Tworzyć… [1]
Kod programu możemy również umieszczać w tekście
{
"firstName": "John",
"lastName": "Smith",
"age": 25
}
Możemy tworzyć listy zadań:
Wiemy już jak działa Jupyter Notebook.
Umiemy napisać program “Hello World!”
Potrafimy policzyć pierwszą cyfrę liczby \(2^{100}\)
Tworzenie tabel:
Składnia |
Opis |
---|---|
def |
Początek funkcji |
for |
Początek pętli |
while |
Pętla warunkowa |
if else |
Blok warunkowy |
Umieszczanie odnośników HTML:
Markdown - przewodnik po składni
Pliki Jupyter można eksportować do wielu formatów, m.in. HTML, pdf, tex, … Można też tworzyć z nich interaktywne prezentacje oraz umieszczać ilustracje.
W plikach możemy pisać formuły matematyczne stosując składnię języka \(\LaTeX\)
Ok, pora na pierwszy program w Pythonie!
print("Hello World!")
print("Hello World!")
Hello World!
No dobrze, pora na coś bardziej interesującego:
from sympy import plot_parametric
x=var('x')
plot_parametric(cos(x*11/13), sin(x), (x, -13*pi, 13*pi),size=(5,5));