Sage, świetne narzędzie matematyczne dla systemu Linux
Jeśli chodzi o rozwiązywanie równań matematycznych w systemie Linux, omawialiśmy wcześniej GeoGebra, oprogramowanie do geometrii i wykresów 2D. Jeśli jednak szukasz potężniejszych narzędzi, powinieneś wypróbować Sage. Wszyscy słyszeliśmy o Matlabie lub Magmie, ale Sage oferuje alternatywę typu open source dla tych dwóch i, moim zdaniem, jest prostszy w użyciu.
Instalacja
Sage jest zawsze w fazie intensywnego rozwoju, co oznacza, że bardzo często dodawane są nowe ulepszenia. Aby zainstalować go ze źródła:
Najpierw musisz spełnić kilka zależności.
sudo apt-get install build-essential m4 gfortran libssl-dev dpkg-devNastępnie możesz pobrać źródła z oficjalnej strony. Wyodrębnij je i z terminala uruchom skrypt
./makeUwaga: do prawidłowego działania Sage będziesz potrzebować około 3 GB wolnego miejsca. Pamiętaj, aby je mieć przed uruchomieniem kompilacji (co zajmie trochę czasu).
Jeśli wolisz wersję binarną, dostępna jest również wersja PPA dla Ubuntu:
sudo apt-add-repository -y ppa:aims/sagemath
sudo apt-get update
sudo apt-get install sagemath-upstream-binaryMożesz także zainstalować wszystkie opcjonalne pakiety:
sudo apt-get install texlive evince xpdf xdvi tk8.5-devStosowanie
Aby uruchomić Sage, możesz to zrobić za pomocą polecenia
./sagez pobranego katalogu.
Jeśli chcesz uruchomić Sage z dowolnego miejsca, możesz utworzyć dowiązanie symboliczne za pomocą
ln -s [path to the sage launcher] /usr/local/bin/sagelub nawet utwórz alias w pliku ~/.bashrc, tak jak ja:
alias sage=/home/adrien/sage-5.2/sageSage jest domyślnie narzędziem niegraficznym. Na starcie powinieneś otrzymać coś takiego
Masz wtedy wybór: kontynuuj korzystanie z konsoli lub przejdź do interfejsu GUI opartego na przeglądarce, wpisując
notebook()Obydwa są w zasadzie równoważne pod względem funkcjonalności. GUI jest bardziej intuicyjne, szczególnie w przypadku wykresów i wykresów, ale terminal również działa całkiem dobrze. Korzystając z GUI, wypróbuj polecenie
circle((0,0), 1, rgbcolor=(1,1,0))
Pod nim pojawi się żółte kółko.
Jeśli zrobisz to samo w konsoli, otworzy się domyślna przeglądarka zdjęć i wyświetli ten sam okrąg.
Uwaga: zarówno interfejs GUI, jak i konsola posiadają funkcję automatycznego uzupełniania.
Teraz, gdy wybrałeś już interfejs Sage, możemy zacząć mówić o samych funkcjach. Sage jest absolutnie ogromna i mam to na myśli. Po prostu nie ma możliwości omówienia wszystkich aspektów tej kwestii w jednym artykule. Zamiast tego pokażę Ci kilka popularnych aplikacji, które możesz wypróbować.
1. Kalkulator
Tak, Sage potrafi wykonywać podstawowe obliczenia matematyczne. Dodawanie, mnożenie itp. Ponieważ jest napisany głównie w Pythonie, możesz także użyć składni Pythona do wykonywania takich czynności jak dzielenie liczb całkowitych.
2. Pierwiastki wielomianowe
Dość często zdarza się, że otrzymuje się wielomian i pyta się o jego pierwiastki. W Sage najpierw tworzysz pierścień wielomianowy za pomocą
P.<x> = PolynomialRing(RR)</x>gdzie x będzie generatorem, a RR oznacza liczby rzeczywiste. Jeśli chcesz, aby Twój pierścień znajdował się na przykład nad liczbami wymiernymi, zamień RR na QQ. Następnie kopiujesz swój wielomian:
t = x^2 - 25A potem prosisz o korzenie
t.roots()
Uwaga: spowoduje to zwrócenie pierwiastków w pierścieniu podstawowym wielomianu i ich krotności. Jeśli chcesz, aby pierwiastki pochodziły z innego pierścienia bazowego, umieść go jako argument funkcji root().
3. Odwrotność macierzy
Jeśli interesujesz się handlem lub ekonomią, być może w pewnym momencie swojego życia widziałeś macierze. Ogólnie rzecz biorąc, istnieje cały proces znajdowania odwrotności tych macierzy. Cóż, Sage zrobi to za Ciebie w bardzo prosty sposób. Utwórz matrycę na wybranym pierścieniu podstawowym.
m = matrix(QQ, [[1, 2], [3, 4]])I szukać jego odwrotności:
m.inverse()4. Wykresy
Sage ma również pewne możliwości graficzne. Wcześniej rysujemy okrąg za pomocą
circle((0,0), 1, rgbcolor=(1,1,0))Jestem pewien, że zrozumiałeś, że pierwszym parametrem był środek okręgu, drugim promień, a ostatnim kolor okręgu w standardzie RGB. Cóż, możesz także wykreślić podstawowe funkcje, najpierw deklarując zmienną:
x = var('x')A następnie użyj funkcji plot():
plot(x^3, (-10,10))Pierwszy argument to równanie funkcji, drugi to rozpiętość. Więc tutaj prosiłem o funkcję sześcienną pokazaną od -10 do 10 na wykresie x.
Uwaga: jeśli masz zainstalowany Jmol, możesz nawet tworzyć wykresy 3D, deklarując dwie zmienne
x, y = var('x,y')A następnie użyj funkcji plot3d():
plot3d(x^2 + y^2, (x,-2,2), (y,-2,2))5. Rozwiązywanie równań
Czasami chcemy rozwiązania równania, ale kalkulator podaje nam jedynie przybliżenie. Jeszcze gorzej jest, jeśli w tym równaniu występują inne zmienne i chcemy, aby rozwiązanie było wyrażone w funkcji ich. Przez lata w szkole średniej musiałem to robić ręcznie. Jakie to głupie! Sage robi to doskonale. Zadeklaruj wszystkie swoje zmienne
x, a, b, c = var('x a b c')Następnie użyj funkcji rozwiązywania(), z równaniami jako pierwszym argumentem i zmiennymi, po których chcesz się wyrazić:
solve([x - 3*a == 6, x + b*c == 10], x, b)Szkoda, że nie wiedziałem tego jeszcze w szkole średniej...
6. Różnicowanie i integracja
Oto najlepsze zastosowanie, gdy jesteś naprawdę leniwy. Możesz użyć tego programu do różnicowania i integrowania funkcji. Jak zwykle zadeklaruj swoje zmienne
x = var('x')Następnie użyj funkcji diff() lub integr().
diff(x^3 + 4*x + 16, x)do różnicowania i
integral(x^3 + 4*x + 16, x)do integracji.
Wniosek
Sage to naprawdę niesamowite narzędzie. Składnia jest łatwa do nauczenia i pozostaje dość standardowa. Wadą jest to, że dokumentacja jest czymś, co powinieneś przeczytać, aby zrozumieć, co naprawdę możesz zrobić. Aplikacji jest tak dużo, że łatwo się zgubić. Równania różniczkowe można wykonywać razem z kryptografią. Sprawa staje się tak specyficzna, że w tej chwili trwają prace nad funkcją wyznaczającą pole podziału wielomianów na ciele skończonym (tak, ja też nie mam pojęcia, co to znaczy).
Czy masz jakiś inny przykład do zaproponowania? Pytanie o Sage? Daj nam znać w komentarzach.
Źródło obrazu: Maths by Big Stock Photo.








