Matematyka w Pythonie
Algebra,
statystyka, analiza matematyczna i inne dziedziny
Mało
kto lubi matematykę, zwłaszcza algebrę czy analizę matematyczną. Wydaje
się trudna i niezrozumiała. Bardzo łatwo popełnić błędy podczas
rozwiązywania równań różniczkowych czy całek.
Jeśli jednak powierzysz najtrudniejszą i najżmudniejszą część obliczeń
komputerowi, szybko się przekonasz, że to fascynująca dziedzina wiedzy.
Docenisz też jej przydatność w różnych dziedzinach!
Programy, które ułatwią Ci rozwiązywanie
problemów matematycznych, łatwo napiszesz samodzielnie, w
Pythonie. To język, który do tych celów nadaje
się idealnie - sprawdź, jak satysfakcjonujące i zabawne jest
rozwiązywanie zadań matematycznych z Pythonem!
Dzięki tej książce
nauczysz się używać Pythona do rozwiązywania problemów
matematycznych z takich dziedzin jak statystyka, geometria, rachunek
prawdopodobieństwa czy analiza matematyczna.
Zaczniesz od prostych zadań, jak wyznaczanie dzielników
liczb całkowitych i rozwiązywanie równań kwadratowych, aby
stopniowo przejść do złożonych zagadnień. Napiszesz program do
rozwiązywania nierówności, rysowania wykresu toru lotu
pocisku, tasowania talii kart, obliczania pola powierzchni koła,
badania ciągu Fibonacciego, złotego podziału - i wiele innych.
Odkryjesz nowe sposoby poznawania matematyki i zdobędziesz cenne
umiejętności programistyczne, z których będziesz
mógł korzystać nie tylko podczas nauki!
W książce między innymi:
- opisywanie i wizualizacja
danych z wykorzystaniem statystyki oraz różnych
wykresów
- teoria zbiorów i
rachunku prawdopodobieństwa
- problemy algebraiczne i
obliczenia symboliczne
- rysowanie
kształtów geometrycznych i badanie fraktali
- pisanie programów
do rachunku różniczkowego i całkowego
Podziękowania
Wprowadzenie
Kto powinien sięgnąć po tę książkę?
Zawartość książki
Kody źródłowe, rozwiązania i porady
1
Operacje na liczbach
Podstawowe operacje matematyczne
Etykiety: przypisywanie nazw liczbom
Różne rodzaje liczb
Operacje na ułamkach
Liczby zespolone
Pobieranie danych wejściowych od użytkownika
Obsługa wyjątków i nieprawidłowych danych wejściowych
Wpisywanie ułamków i liczb zespolonych
Pisanie programów wykonujących obliczenia matematyczne
Obliczanie dzielników liczb całkowitych
Generowanie tabliczki mnożenia
Konwersja jednostek miar
Obliczanie pierwiastków równań kwadratowych
Czego nauczyłeś się w tym rozdziale
Wyzwania programistyczne
Nr 1. Automat parzysty nieparzysty
Nr 2. Ulepszony generator tabliczki mnożenia
Nr 3. Ulepszony konwerter jednostek
Nr 4. Kalkulator ułamków
Nr 5. Zapewnij użytkownikowi możliwość wyjścia
2
Wizualizacja
danych przy użyciu wykresów
Wyjaśnienie układu współrzędnych kartezjańskich
Operowanie na listach i krotkach
Przeglądanie zawartości list i krotek
Tworzenie wykresów przy użyciu pakietu Matplotlib
Zaznaczanie punktów na wykresie
Wykres średnich rocznych temperatur w Nowym Jorku
Porównywanie trendów rocznych temperatur w Nowym
Jorku
Dostosowywanie wyglądu wykresów
Dodawanie tytułu oraz etykiet osi
Dostosowywanie postaci osi
Rysowanie z wykorzystaniem modułu pyplot
Zapisywanie wykresów
Rysowanie wykresów na podstawie wzorów
Prawo powszechnego ciążenia Newtona
Trajektoria lotu rzuconego obiektu
Generowanie równomiernie rozmieszczonych liczb
zmiennoprzecinkowych
Rysowanie trajektorii rzutu
Porównanie trajektorii rzutów z
różnymi prędkościami początkowymi
Czego nauczyłeś się w tym rozdziale
Wyzwania programistyczne
Nr 1. Jak zmienia się temperatura w ciągu dnia?
Nr 2. Wizualizacja przebiegu funkcji kwadratowej
Nr 3. Rozbudowany program porównywania trajektorii
Nr 4. Wizualizacja wydatków
Nr 5. Badanie zależności pomiędzy ciągiem Fibonacciego i złotym
podziałem
3
Opisywanie
danych przy użyciu statystyki
Obliczanie średniej
Obliczanie mediany
Znajdowanie rozstępu i tworzenie tabeli częstotliwości
Znajdowanie najczęściej występującego elementu
Wyznaczanie rozstępu
Tworzenie tabeli częstości
Pomiary zmienności
Określanie rozstępu zbioru liczb
Obliczanie wariancji i odchylenia standardowego
Obliczanie korelacji pomiędzy dwoma zbiorami danych
Obliczanie współczynnika korelacji
Oceny ze szkoły średniej a wyniki egzaminu wstępnego na studia
Wykresy punktowe
Odczyt danych z plików
Wczytywanie danych z pliku tekstowego
Wczytywanie danych z pliku CSV
Czego nauczyłeś się w tym rozdziale
Wyzwania programistyczne
Nr 1. Ulepszony program do wyliczania współczynnika korelacji
Nr 2. Kalkulator statystyczny
Nr 3. Eksperymenty z innymi danymi w formacie CSV
Nr 4. Znajdowanie percentyli
Nr 5. Tworzenie grupowanej tabeli częstości
4
Algebra
i obliczenia symboliczne z użyciem SymPy
Definiowanie symboli i operacji symbolicznych
Operacje na wyrażeniach
Rozkład na czynniki i rozwijanie wyrażeń
Wyświetlanie wyrażeń w atrakcyjnej postaci
Wyświetlanie szeregu
Podstawianie wartości
Obliczanie wartości szeregu
Konwersja łańcuchów na wyrażenia matematyczne
Program mnożący wyrażenia
Rozwiązywanie równań
Rozwiązywanie równań kwadratowych
Wyznaczanie jednej zmiennej względem innych
Rozwiązywanie układów równań liniowych
Rysowanie wykresów z użyciem SymPy
Rysowanie wyrażeń wpisanych przez użytkownika
Rysowanie wielu funkcji na jednym wykresie
Czego nauczyłeś się w tym rozdziale
Wyzwania programistyczne
Nr 1. Wyznaczanie czynników
Nr 2. Program do graficznego rozwiązywania równań
Nr 3. Obliczanie sumy szeregu
Nr 4. Rozwiązywanie nierówności z jedną niewiadomą
Wskazówki: przydatne funkcje
5
Zabawy
ze zbiorami i prawdopodobieństwem
Czym są zbiory?
Tworzenie zbiorów
Sprawdzenie, czy element występuje w zbiorze
Tworzenie zbioru pustego
Tworzenie zbiorów na podstawie list lub krotek
Powtarzanie elementów i sortowanie zbiorów
Podzbiory, nadzbiory i zbiory potęgowe
Operacje na zbiorach
Suma i przecięcie zbiorów
Iloczyn kartezjański
Obliczanie wzoru dla wielu zbiorów zmiennych
Różna siła ciężkości, różne wyniki
Prawdopodobieństwo
Prawdopodobieństwo zdarzeń A lub B
Prawdopodobieństwo zdarzeń A i B
Generowanie liczb losowych
Symulacja rzutu kostką
Czy uda się nam wyrzucić taki wynik?
Czy uzyskanie docelowego wyniku jest możliwe?
Liczby losowe o rozkładzie niejednostajnym
Czego nauczyłeś się w tym rozdziale
Wyzwania programistyczne
Nr 1. Użycie diagramów Venna do wizualizacji zależności
pomiędzy zbiorami
Nr 2. Prawo wielkich liczb
Nr 3. Ile rzutów wykonasz, zanim skończą Ci się pieniądze?
Nr 4. Tasowanie talii kart
Nr 5. Szacowanie pola koła
Szacowanie wartości liczby
6
Rysowanie
kształtów geometrycznych i fraktali
Rysowanie kształtów geometrycznych przy użyciu
obiektów Patch biblioteki Matplotlib
Rysowanie koła
Tworzenie animowanych kształtów
Animowanie obiektu po trajektorii rzutu
Rysowanie fraktali
Przekształcenia punktów na płaszczyźnie
Rysowanie liścia Barnsleya
Czego nauczyłeś się w tym rozdziale
Wyzwania programistyczne
Nr 1. Wpisywanie kół w kwadrat
Nr 2. Rysowanie trójkąta Sierpińskiego
Nr 3. Badanie funkcji Hénona
Nr 4. Rysowanie zbioru Mandelbrota
Funkcja imshow()
Tworzenie listy list
Rysowanie zbioru Mandelbrota
7
Rozwiązywanie
problemów analizy matematycznej
Czym są funkcje?
Dziedzina i zakres funkcji
Przegląd najczęściej używanych funkcji matematycznych
Założenia w bibliotece SymPy
Znajdowanie granicy funkcji
Ciągły procent składany
Chwilowa szybkość zmian
Wyznaczanie pochodnych funkcji
Kalkulator pochodnych
Obliczanie pochodnych cząstkowych
Pochodne wyższych rzędów i znajdowanie maksimów i
minimów funkcji
Znajdowanie maksimum globalnego przy użyciu metody gradientu prostego
Ogólny program korzystający z metody gradientu prostego
Słowo ostrzeżenia odnośnie do wartości początkowej
Rola wielkości kroku oraz wartości epsilon
Wyznaczanie całek funkcji
Funkcje gęstości prawdopodobieństwa
Czego nauczyłeś się w tym rozdziale
Wyzwania programistyczne
Nr 1. Sprawdzanie ciągłości funkcji w punkcie
Nr 2. Znajdowanie minimum metodą gradientu prostego
Nr 3. Obszar pomiędzy dwiema krzywymi
Nr 4. Znajdowanie długości krzywej
8
Podsumowanie
Rzeczy do zbadania
Projekt Euler
Dokumentacja Pythona
Książki
Szukanie pomocy
Zakończenie
A Instalacja oprogramowania
Microsoft Windows
Aktualizacja pakietu SymPy
Aktualizacja pakietu matplotlib-venn
Uruchamianie programu Python Shell
Linux
Aktualizacja pakietu SymPy
Instalacja pakietu matplotlib-venn
Uruchamianie powłoki Pythona
Mac OS X
Aktualizacja pakietu SymPy
Instalacja pakietu matplotlib-venn
Uruchamianie powłoki Pythona
B Przegląd zagadnień związanych z programowaniem w Pythonie
if __name__ == __main__'
Wyrażenia listowe
Słowniki
Zwracanie wielu wartości
Obsługa wyjątków
Stosowanie więcej niż jednego typu błędów
Klauzula else
Odczyt plików w Pythonie
Odczyt wszystkich wierszy za jednym razem
Pobieranie nazwy pliku jako danych wejściowych
Obsługa błędów podczas odczytywania zawartości
plików
Wielokrotne stosowanie kodu
C
Rozwiązania
wyzwań programistycznych
Rozwiązania wyzwań z rozdziału 1.
Nr 1. Automat parzysty nieparzysty
Nr 2. Ulepszony generator tabliczki mnożenia
Nr 3. Ulepszony konwerter jednostek
Nr 4. Kalkulator ułamków
Nr 5. Zapewnienie możliwości wyjścia z programu
Rozwiązania wyzwań z rozdziału 2.
Nr 1. Jak zmienia się temperatura w ciągu dnia?
Nr 2. Wizualizacja przebiegu funkcji kwadratowej
Nr 3. Rozbudowany program do porównywania trajektorii
Nr 4. Wizualizacja wydatków
Nr 5. Badanie zależności pomiędzy ciągiem Fibonacciego i złotym
podziałem
Rozwiązania wyzwań z rozdziału 3.
Nr 1. Ulepszony program do wyliczania współczynnika korelacji
Nr 2. Kalkulator statystyczny
Nr 3. Eksperymenty z innymi danymi w formacie CSV
Nr 4. Znajdowanie percentyli
Nr 5. Tworzenie grupowanej tablicy częstotliwości
Rozwiązania wyzwań z rozdziału 4.
Nr 1. Wyznaczanie czynników
Nr 2. Program do graficznego rozwiązywania równań
Nr 3. Obliczanie sumy szeregu
Nr 4. Rozwiązywanie nierówności
Rozwiązania wyzwań z rozdziału 5.
Nr 1. Użycie diagramów Venna do wizualizacji zależności
pomiędzy zbiorami
Nr 2. Prawo wielkich liczb
Nr 3. Ile rzutów wykonasz, zanim skończą Ci się pieniądze?
Nr 4. Tasowanie talii kart
Nr 5. Szacowanie pola koła
Rozwiązania wyzwań z rozdziału 6.
Nr 1. Wpisywanie kół w kwadrat
Nr 2. Rysowanie trójkąta Sierpińskiego
Nr 3. Badanie funkcji Hénona
Nr 4. Rysowanie zbioru Mandelbrota
Rozwiązania wyzwań z rozdziału 7.
Nr 1. Sprawdzanie ciągłości funkcji w punkcie
Nr 2. Znajdowanie minimum metodą gradientu prostego
Nr 3. Obszar między dwiema krzywymi
Nr 4. Znajdowanie długości krzywej
320
stron, Format: 17.0x23.0cm, oprawa miękka