SageMath w pigułce

Bogaty i szybki kalkulator naukowy.

Praktycznie, każda ważna funkcja, wzór matematyczny są już zaimplementowane w języku SageMath. Poniżej tylko niektóre instrukcje, które można wykorzystać w szkole średniej:

  • wartość bezwzględna – abs,

  • rozkład na czynniki pierwsze - factor,

  • silnia – factorial,

  • symbol Newtona – binomial,

  • rozwiąż równanie – solve,

  • narysuj wykres – plot,

  • następna liczba pierwsza – next_prime,

  • NWD – gcd, NWW – lcm,

  • pochodna – diff,

  • całka – integrate.

Pierwszy przykład pokazuje możliwości rachunkowe Sage’a. Można używać go do sprawdzania: przeprowadzonych rachunków, zadań domowych przez uczniów. Jeżeli nauczyciel pozna powyższy język programowania, to może stworzyć kod, który umożliwia rozwiązywanie zadań rachunkowych „krok po kroku”.

SageMath ma wbudowane różne systemy arytmetyczne i może np. przybliżać liczby niewymierne z dowolną precyzją. Te możliwości wykorzystaliśmy w naszym projekcie, przed wszystkim w szyfrowaniu RSA oraz w rozdziale dotyczących przybliżeń wyrażeń niewymiernych.

Działania na wyrażeniach logicznych.

SageMath a także sam język Python, umożliwia wykonanie działań na wyrazeniach logicznych. Może się do okazać przydatne w wielu dziedzinach. Dla przykładu rozważmy zagadkę:

Zagadka o kłamcach

Sa dwa rodzaje ludzi - jeden zawsze kłamie a jeden mówi zawsze prawdę. Ala i Bolek należą do jednej z tych kategorii. Ala powiedziała: ja i Bolek jesteśmy kłamcami. Kto jest kłamcą a kto mówi prawdę?

Stosując SageMath możemy przyjąć następującą interpretacje: niech \(a\) będzie prawdą jeśli Ala jest prawdomówna a \(b\) będzie prawdą jeśli Bolek jest prawdomówny. Wtedy możemy w Sage zapisać:

Od razu widać, że jedynym rozwiązaniem jest takie w którym Ala kłamie a Bolek mówi prawdę.

Działania na wyrażeniach algebraicznych.

Jedną z ważniejszych możliwości, którą można zastosować na lekcjach matematyki, fizyki oraz chemii jest przeprowadzanie rachunków nie tylko na liczbach, ale także na zmiennych. SageMath doskonale sobie radzi z obliczeniami symbolicznymi, czyli potrafi przeprowadzać obliczenia, przekształcenia na wyrażeniach algebraicznych. Przez co możemy modyfikować postać wzoru, obliczać jedną zmienną przy pomocy innych, wyprowadzać wzory – ogólne rozwiązania. Poniżej pokazane są proste przykłady dotyczące wzorów skróconego mnożenia oraz wyrażeń wymiernych.

Wzory skróconego mnożenia.

Zamiana postaci wyrażenia algebraicznego.

Zamiana postaci wyrażenia wymiernego.

Upraszczanie wyrażeń zawierających funkcje trygonometryczne wymaga użycia metod .trig_simplify. Na przykład aby wykorzystać jedynkę trygonometryczą należy wykonać:

Jeśli chcemy udowodnić tożsamość trygonometryczną lepiej użyć bool niż próbować uprościć jedną ze stron by przypominała drugą:

Rozwiązywanie równań i układów równań.

Największą ilość zadań z przedmiotów ścisłych jaką uczeń musi wykonać to rozwiązywanie równań i układów równań. Oczywiście żadne narzędzie nie zastąpi samodzielnego rozwiązywania zadań przez uczniów, ale może być bardzo przydatne do ćwiczeń, sprawdzania wyników, czy też rozwiązywania równań, które uczeń musi samodzielnie wyprowadzić na podstawie zadań tekstowych. Powyższy język umożliwia rozwiązywanie nawet trudnych równań i układów równań przy pomocy jednej instrukcji – solve.

Poniżej zamieszczamy przykłady, które demonstrują użycie instrukcji na podstawie równania kwadratowego oraz prostego układu równań z dwoma niewiadomymi. Dla nauczycieli prowadzących zajęcia dodatkowe z matematyki dla uczniów zdolnych nie bez znaczenia będzie fakt, ze Sage rozwiązuje równania w zbiorze liczb zespolonych oraz macierzowe.

Równanie kwadratowe.

Układ równań z dwoma niewiadomymi.

Wizualizacja.

Uczniowie dzięki stronom internetowym czy platformom społecznościowym odbierają świat „obrazkowo”, czyli wiążą krótkie informacje z odpowiednim obrazkiem, zdjęciem, wykresem. Dlatego też wizualizacja dla obecnego pokolenia młodzieży jest bardzo ważna. Sage umożliwia rysowanie wykresów funkcji w prosty sposób. Zatem możemy szybko przedstawiać rozwiązania na wykresie lub też rysować interesujące nas funkcje podczas lekcji. Uczniowie mogą modyfikować już istniejący kod programu i analizować otrzymane funkcje. Można to zastosować nie tylko na matematyce ale także na pozostałych przedmiotach ścisłych.

Poniższy program dotyczy miejsc zerowych funkcji kwadratowej. Obliczono w nim pierwiastki funkcji kwadratowej, punkt przecięcia funkcji z osią Y następnie narysowano wykres funkcji i zaznaczono wyróżnione punkty.

Dzięki instrukcji region_plot możemy na wykresie przedstawiać także rozwiązanie układów nierówności.

W systemie SageMath rysowaną funkcję możemy stworzyć również algorytmicznie. Wyobraźmy sobie, że chcemy zobaczyć jak wygląda wykres:

\[f(x) = \sum_{i=0}^{N}\sin(\omega_i x)\]

dla dużych wartosci N. W systemie Sage możemy zsumować wiele funkcji wykorzystując pętlę. Tworzenie takich złożonych funkcji ma zastosowanie na lekcjach fizyki podczas omawiania zjawisk falowych. Poniższy kod doda fale o zbliżonych częstościach:

Ciekawym przykładem wizualizacji jest graficzne przedstawianie pól wektorowych. Podczas lekcji fizyki, można wykorzystać możliwości SagaMath do rysowania pół wektorowych. Poniżej zamieszczony jest przykład pola pochodządzego od dipola magnetycznego. Pole jest trójwymiarowe, w przykładzie przedstawiony jest przekrój takiego pola przez płaszczyznę \(x=0\)

Interakcja

Duże walory edukacyjne mają programy komputerowe pozwalające wykonać animację lub dynamicznie zmieniać parametr i obserwować jak wpływa on na rozwiązanie. Tego typu elementy, najczęściej wykonane są w technologii Flash lub javascript są atrakcyjną cyfrową pomocą naukową. Zazwyczaj jednak uczeń ograniczony jest jedynie do interakcji z takim programem. System SageMath pozwala pojść jeden krok dalej - pozwala na bardzo łatwe tworzenie tych elementów. Korzystając z prostych funkcji uczeń może samodzielnie stworzyć interaktywną applikację, która może ilustrować badane zagadnienie.

Zilustrujemy na przykładzie następującego problemu:

Zadanie

Zbadaj ile ma rozwiązań równanie \(x^2=x-a\) w zależności od parametru \(a\in(0,\frac{1}{2})\)?

W SageMath możemy narysować wykresy zarówno prostej \(y=x-a\) jak i paraboli \(y=x^2\) i zaznaczyć na nich pierwiastki równania \(x^2=x-a\). Wystarczy taki stworzony kod programu opakować w funkcję i dodać tzw. dekorator @interact. SageMath wygeneruje nam interaktywną aplikację, w której będzie można zmieniać myszką wartość parametru i obserwować jak zmienia się wykres.

Sage = interdyscyplinarność.

Podsumowując SageMath umożliwia:

  1. Szybkie i dokładne obliczenia nawet dowolnie dużych liczb.

  2. Przeprowadzanie obliczeń na wyrażeniach algebraicznych. rozwiązywanie równań w zbiorze liczb zespolonych, rozwiązywanie układów równań i nierówności.

  3. Wizualizację rozwiązań na wykresach, rysowanie wykresów funkcji.

  4. Obliczanie pochodnych, całek i wielu innych działań matematycznych.

Podanto SageMath to bardzo dobre i bogate narzędzie programistyczne, dzięki któremu możemy łączyć przedmioty ścisłe: informatykę, programowanie, matematykę, fizykę, chemię. Czy istnieją ograniczenia dla Sage’a? Tak, ale pewnie wcześniej natrafimy na ograniczenia naszej wyobraźni.