Mathematica na Raspberry Pi jest za darmo. Jak wykorzystać ją w nauce matematyki?

Mathematica na Raspberry Pi jest za darmo. Jak wykorzystać ją w nauce matematyki?08.01.2016 23:22
Mathematica na Raspberry Pi jest za darmo. Jak wykorzystać ją w nauce matematyki?

Kupując Raspberry Pi 2, dostajemy więcej nie tylko jednopłytkowykomputerek do przeróżnych zastosowań. Emulacja starszego sprzętu,odtwarzanie multimediów, sterowanie sprzętem elektronicznym – tosprawy popularne, ale na dobrą sprawę można to też zrobić nainnych komputerkach tego typu. Malina oferuje jednak coś więcej.Dzięki umowie, jaką Fundacja Raspberry Pi podpisała z firmąWolfram Research, każdy użytkownik Maliny może za darmo korzystaćz programu Mathematica, który choć w dziedzinie obliczeńsymbolicznych i numerycznych nie ma konkurencji, jest zarazem wwersji na pecety bardzo drogi – najtańsza wersja licencji towydatek ponad tysiąca złotych. Oczywiście ze względu na niewielkąmoc obliczeniową Raspberry Pi 2 raczej nie ma co myśleć owykorzystaniu tej darmowej Mathematiki do celów zawodowych,inżynierskich i naukowych, ale świetnie posłuży ona do celówedukacyjnych. Pomoże nauczycielom, uczniom… i samoukom –wszystkim tym, którzy chcą zajrzeć głębiej w świat matematyki imatematycznych wizualizacji.

Możliwości stworzonego przez firmę Wolfram Research programu sąbardzo duże, radzi on sobie zarówno z algebrą liniową czyrachunkiem różniczkowym, jak i algebrą wyższą, logiką, teoriąliczb, teorią grafów, topologią algebraiczną, geometrią,probabilistyką, kombinatoryką, optymalizacją, znajduje teżzastosowanie w innych dziedzinach okołomatematycznych, pozwalającna analizę giełdową i finansową, przetwarzanie sygnałów czywykorzystanie technik maszynowego uczenia się. Dodatkowo zawierapotężny wysokopoziomowy język programowania WolframLanguage, cały zestaw narzędzi do wizualizacji grafiki 2D i 3Di bibliotekę filtrów importu i eksportu dla wszelkiego rodzajuformatów danych oraz interfejsy łączące z silnikamiobliczeniowymi w chmurze. Łatwo wśród tych wszystkich możliwościzaginąć – ale zaczynając od podstaw, poradzimy sobie zarówno zinterfejsem, jak i z najważniejszymi funkcjami matematycznymi,szczególnie tymi, które mają zastosowanie na poziomie szkołyśredniej czy studiów.

Instalacja na Raspberry Pi 2

Najprościej skorzystać z tego programu instalując na karciepamięci Maliny jego domyślny system Raspbian. Znalazł się onzarówno na oficjalnym obrazie systemowym, jak i w repozytoriachsystemu. Instalacja Raspbiana na karcie pamięci została opisana wpierwszejczęści naszego przewodnika po Raspberry Pi. Jeśli macie jużdziałającego Raspbiana, ale z jakiegoś powodu nie ma na nimMathematiki, zainstalować ją można poleceniem sudo apt-get update&& sudo apt-get install wolfram-engine. Polecamy też od razupodkręcić nasz komputerek, tu każdy dodatkowy megaherc zegara sięprzyda. Jak to zrobić, opisane zostało w drugiejczęści cyklu. Na potrzeby matematycznego programu warto teżzarezerwować 256 MB RAM na pamięć wideo, dopisując w pliku/boot/config.txt wiersz gpu_mem=256.

Uruchomienie Mathematiki jest proste. Interfejs graficzny, tzw.Notatnik (Notepad), przywołać można klikając charakterystycznąikonę programu (hiperboliczny dwunastościan foremny) umieszczonąna pasku zadań. Przez chwilę mignie nam przed oczami ekranpowitalny, a potem zobaczymy dwa okna. Pierwsze z nich to okno zeskrótami do dokumentacji i forum społeczności, drugie zaś jestnotatnikiem, w którym spędzimy większość czasu z programem.Warto tu podkreślić, że to pełna wersja Mathematiki, której wporównaniu do komercyjnej brakuje jedynie dokumentacji – tęjednak znajdziemy online.

350171192139081665

Mathematikę możemy uruchomić też w terminalu tekstowym,wydając polecenie wolfram. Dostaniemy w ten sposób jedynie tekstoweśrodowisko programistyczne, z uproszczonym interfejsem, bezinteraktywnych możliwości Notatnika. Może to mieć sens dlabardziej zaawansowanych użytkowników – choć korzystanie jesttrudniejsze, brakuje symboli matematycznych, greckich liter igrafiki, to interfejs tekstowy działa odczuwalnie szybciej naurządzeniu o tak przecież skromnej mocy obliczeniowej. Poleceniapotwierdzamy klawiszem Enter; Mathematica sama rozpozna, czywyrażenie zostało ukończone – jeśli nie, możemy przejść donastępnej linii, aż do momentu, gdy wszystkie nawiasy zostanądomknięte. Wyjście z wyrażenia odbywa się za pomocą kombinacjiklawiszy Ctrl-G, po historii wpisanych wyrażeń przechodzimy zapomocą strzałek kursorów, możemy wówczas ponownie je edytować. Z interfejsu tekstowego wychodzimy kombinacją klawiszy Ctrl-D. Możemy też bezpośrednio uruchamiać tak programy napisane wjęzyku Wolfram Language – pliki tekstowe z rozszerzeniem .wl,wykorzystując w tym celu przełącznik -script. Polecenie wyglądawówczas następująco: wolfram -script program.wl.

Wolfram Language

By pracować z Mathematiką, należy poznać podstawy składnijęzyka Wolfram Language. Nie są one skomplikowane, przypominająnieco język Lisp. Zacznijmy od tego, od czego zawsze się zaczyna. WNotatniku wpiszmy polecenie Print["Witaj świecie"].Kombinacją klawiszy Shift-Enter uruchamiamy polecenie, w rezultaciektórego pod poleceniem wyświetlony zostanie wynik: ciąg Witajświecie. W każdej chwili możemy wrócić do polecenia za pomocąklawiszy kursora czy kliknięcia myszą, przeedytować je i wykonaćponownie. Możemy też zapisać aktualny stan Notatnika, komendą zmenu File > Save As.

Na tym etapie możemy już śmiało korzystać z programu jako zpodręcznego kalkulatora. 1+1, potwierdzone przez Shift-Enter zwrócinam 2. Spróbujmy coś nieco trudniejszego, np. całkę nieoznaczonąIntegrate[1/x2+1),x]. Taką całkę powinniśmy jednak znać na pamięć,więc spróbujmy coś trudniejszego – np. Integrate[1/x3+1),x],edytując poprzedni wpis (oznaczony w Notatniku jako In[2]). Jakwidać, wynik tej skomplikowanej całki zostanie przedstawiony wstandardowej typografii matematycznej. [img=integrate]Równie prosto jestprzygotowywać w tym trybie grafikę, np. wykresy funkcji.

350171192139343809

Jak widać w In[8], polecenie zakończyliśmy średnikiem. Wynikzakończonego tak wyrażenia nie będzie wyprowadzany na ekran,zostaje ono tutaj przekazane jako argument funkcji Export, służącejdo zapisania wyniku do pliku. Z kolei w In[10] polecenie Runposłużyło do uruchomienia zewnętrznego programu (w tym wypadkuwyświetlarki obrazków gpicview, która pokaże zapisany tak wykresfunkcji.

Oczywiście możemy też skorzystać w interaktywnym trybie z rysowania wykresów bezpośrednio w Notatniku. Mathematica oferuje dziesiątki funkcji pozwalających kontrolować format wykresu. Stworzona w ten sposób grafika może być obracana, skalowana i modyfikowana na wiele sposobów.

350171192139540417

Podstawy składni języka

Wszystkie wyniki obliczeń można przechowywać w zmiennych. Przykładowo:

bok=5; pole=bok^2; Print[pole] zwróci nam 25.

Mathematica radzi sobie z wielomawartościami symbolicznymi, takimi jak e czy π. Możemy się o tymprzekonać, każąc wyliczyć wartość wzoru Eulera. Ich wpisanie zklawiatury wymaga znajomości specjalnych skrótów, wpisywanych ponaciśnięciu klawisza Esc, formuły i wyjścia z niej ponownymnaciśnięciem Esc. Na przykład podstawę logarytmu naturalnego euzyskamy za pomocą klawiszy Esc ee Esc, zaś liczbę π klawiszamiEsc pi Esc.

350171192139802561

Nie musimy jednak pamiętać tychwszystkich symboli – dla leniwych Mathematica oferuje wygodnegoasystenta, którego wywołamy z menu Palettes>Basic MathAssistant. Pozwala on na wybranie symboli i funkcji matematycznych zpalety, pomoże też przy wpisywaniu wartości w indeksach czymacierzy.

Symbole matematyczne możemy traktowaćoczywiście tak samo jak wcześniej zdefiniowane zmienne. Założmy,że chcemy wyliczyć 1000 kolejnych cyfr rozwinięcia liczby π.Wykorzystamy do tego funkcję N (zwracającą numeryczną wartośćwyrażenia z określoną dokładnością). N[π, 1000] – iMathematica zwróci nam wynik.

350171192139999169

W analogiczny sposób możemyprzechowywać kolekcje danych, jako listy, np. redakcja={"Ania","Adam", "Maciej", "Łukasz"} czyliczbypierwsze = {1, 2, 3, 5, 7, 11}.

Listy takie można wygenerowaćproceduralnie – służą do tego funkcje Range i Table. Np. ciągliczb od 1 do 10 wygenerujemy poleceniem Range[10], a ciąg liczb od3 do 11 poleceniem Range [3, 11]. By zaś wyliczyć kolejnesześciany liczb od 1 do 10, wykorzystamy funkcję Table[i^3,{i,10}].

350171192140195777

Funkcje matematyczne mogą działaćoczywiście jednocześnie na wszystkich elementach listy. Np.p=liczbypierwsze^2 wygeneruje listę kwadratów kolejnych liczbpierwszych. Możemy też zdefiniować własne funkcje o takichmożliwościach:

f[x_]:=x^3; liczbypierwsze={1,2,3,5,7,11}; wynik=liczbypierwsze//f; Print[wynik] podkreślnik przy x oznaczaargument funkcji, a podwójny ukośnik to wywołanie wcześniejzdefiniowanej funkcji.

Bardzo przydatna jest też pętla Do,która wykonana będzie albo określoną liczbę razy, albo powszystkich elementach listy. Przykładowo, by wydrukować kolejnesześciany liczb 1-10, posłużymy się wyrażeniem Do[Print[i^3],{i, 10}].

350171192140457921

Nieoceniona będzie też funkcja Solve, zapomocą której szybko znajdziemy rozwiązania równań. Przykładowopierwiastki równania kwadratowego x2+5x-3=0 wyliczymy poleceniemSolve[x2+5x-3==0,x].

Dokumentacja

Mnogość funkcji Wolfram Language nie powinna odstraszać. Jeślinasza Malina jest podpięta do Sieci, dla każdej z nich uzyskamy (poangielsku) dokładną dokumentację, poprzedzając jej nazwę znakiemzapytania, np. ?Integrate. Możemy też wyszukiwać funkcje ponazwie, wpisując * jako wieloznacznik, co powoduje zwróceniewszystkich funkcji, które zawierają dany ciąg.

350171192140654529

Kompletna dokumentacja języka znajduje się na stronach WolframResearch. Dobrym wprowadzeniem dla zainteresowanychprogramowaniem jest dostępnaonline książka An elementary introduction to the WolframLanguage, która omawia nie tylko struktury danych i przedstawiapopularne algorytmy, ale też pokazuje, jak wykorzystać Mathematikęw połączeniu z ogromnymi zbiorami danych przetworzonymi przezmaszynę obliczeniową dla wiedzy Wolfram Alpha, łączyć to wiedzązawartą w Wikipedii, czy nawet samemu tworzyć interaktywneaplikacje webowe.

Szczególnie przydatne dla początkujących będą częścipoświęcone ogólnemu ujęciujęzyka i jego składni,oraz przewodnikkrok po kroku po Wolfram Language. Wiele przydatnych porad związanychz Mathematiką na Raspberry Pi znajdziemy zaś na forumspołeczności.

Wydajność

Wiele osób może mieć wątpliwości co do sensu uruchamiania takwymagającego oprogramowania jak Mathematica na Raspberry Pi. I o ilefaktycznie w wypadku pierwszej generacji Malin te wątpliwości byłyuzasadnione, używanie programu graniczyło z niemożliwością(szczególnie przy interaktywnych operacjach na grafice), to wwypadku Raspberry Pi 2 jest już znacznie lepiej. To wciąż nie jestpoziom komputera osobistego, nawet starszej daty, ale pamiętajmy, żegdy program firmy Wolfram Research zadebiutował 28 lat temu narynku, najmocniejsze pecety wykorzystywały procesory Intel 80386.

Wyniki benchmarku WolframMark, źródło: Wolfram Research
Wyniki benchmarku WolframMark, źródło: Wolfram Research

Przedstawione przez producenta oprogramowania wyniki benchmarkówpokazują, że nie jest źle: Mathematica na podkręconym RaspberryPi 2 jest średnio pięciokrotnie szybsza niż na bazowym RaspberryPi model B – i tylko sześciokrotnie wolniejsza niż na laptopie zprocesorem Core 2 Duo. Użyteczność podkręcania pokazują teżtesty przeprowadzone przez społeczność serwisu stackexchange,gdzie efekt dodatkowych megaherców widać szczególnie w szybkościobliczania funkcji elementarnych.

Efekty podkręcania Raspberry Pi 2 na szybkość Mathematiki (źródło: stackexchange.com)
Efekty podkręcania Raspberry Pi 2 na szybkość Mathematiki (źródło: stackexchange.com)

Niestety najgorzej ta darmowa malinowa Mathematica będziesprawdzać się przy operacjach na macierzach. Z przeprowadzonychprzez nas testów na PC i Raspberry Pi widać, że różnice mogąsięgać nawet trzech rzędów wielkości. To efekt wykorzystania wprogramie bibliotek matematycznych wysoce zoptymalizowanych pod kątemprocesorów Intela. W zastosowaniach szkolnych, edukacyjnych, gdzieraczej nie będziemy rozwiązywać realnych problemów wiązańmolekularnych czy optyki geometrycznej, da się to znieść. Warto zato podkreślić, że w porównaniu do interpretera języka Python naRaspberry Pi, jest w numerycznych obliczeniach Mathematica wyraźnieszybsza.

Czas na naukę

Po oswojeniu się z podstawowymi możliwościami Mathematiki wartozastosować ją do rozwiązywania typowych zadań, jakie możemynapotkać w szkole czy na studiach. W kolejnej części naszego„malinowego” cyklu pokażemy, w jaki sposób to zrobić.

Zapewne wielu z Was zainteresowanych jest rozwiązaniami typu krokpo kroku – tu niestety mamy złą wiadomość. Sposoby, w jakieMathematica rozwiązuje dziś swoje problemy, niewiele mająwspólnego z tym, co znajdziecie w normalnych podręcznikachmatematyki. Stare wersje programu dysponowały funkcjami WalkD iRunD, pozwalającymi zobaczyć operacje różniczkowania i całkowaniakrok po kroku, ale dziś już ich nie ma. Pokażemy za to, jakwykorzystać do podobnych celów Wolframa Alpha z poziomuMathematiki.

Programy

Aktualizacje
Aktualizacje
Nowości
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Udostępnij:
Wybrane dla Ciebie
Komentarze (33)