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’’’

  1. Abstraction: Problem formulation;

  2. Automation: Solution expression;

  3. 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#

SageMath#

  • https://sagemath.org

    • 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\)

\[\frac{1+\sqrt{5}}{2}=1+\frac{1}{1+\frac{1}{1+\ldots}}\]

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));
_images/a62d2a841fa18de5e41411fcab411725929fc7a51892f506c0f00ceaa2db3757.png