Dlaczego warto nauczac z komputerem?´ -...

164

Transcript of Dlaczego warto nauczac z komputerem?´ -...

Page 1: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii
Page 2: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii
Page 3: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

Dlaczego warto nauczac z komputerem?

Rewolucja technologiczna

Na naszych oczach obserwujemy rewolucje technologii informatycznych: tempo zmian jest tak niesły-

chanie szybkie jak nigdy w historii rozwoju cywilizacji. Od pojawienia sie komputerów osobistych,

nastepnie internetu i telefonii komórkowej, az do najnowszych osiagniec w postaci smartfonów czy

tabletów mija niewiele lat w sensie czasu historycznego.

A co ze szkołami?

Jak to tempo zmian rozwoju technologii przekłada sie na zmiany w metodach kształcenia przedmiotów

takich jak matematyka czy fizyka? Odpowiedz jest pesymistyczna: przedmioty te sa nauczane w wiek-

szosci szkół metodami tradycyjnymi "tablica-kreda". Ba, nawet jesli tablica jest interaktywna, to czesto

słuzy jedynie wyswietlaniu klasycznych tresci. Zastosowanie nowoczesnych technologii nierzadko kon-

czy sie na ich bardzo powierzchownych aspektach. Czesto komputer bywa po prostu lepsza maszyna do

pisania. Podobne obserwacje mozna odniesc do kształcenia w szkołach wyzszych.

Z naszej praktyki wynika, ze stosowanie metod numerycznych, w szczególnosci wspomaganych

wizualizacja niektórych zagadnien z matematyki i fizyki, pozwala studentom znacznie lepiej zrozumiec

analizowane problemy. Nalezy wyraznie podkreslic, ze nie negujemy tradycyjnych metod w odnie-

sieniu do nauczania fundamentalnych aspektów teorii matematycznych i fizycznych. Nalezy jednak

sobie odpowiedziec na pytanie, co moze komputer wniesc nowego dla poszerzenia mozliwosci po-

znania danego przedmiotu czy zagadnienia? W wielu przypadkach okazuje sie ze moze i to bardzo wiele.

Problemy z kadra?

Wykorzystywanie komputera do rozwiazywania problemów na lekcjach nalezy obecnie do rzadkosci z

oczywistych powodów nieprzygotowania kadry dydaktycznej do wyzwan i potrzeb obecnych czasów.

Mówiac wprost nie wiemy jak powinno sie korzystac z komputera by było to nie tylko z pozytkiem dla

uczniów, ale i adekwatnie do mozliwosci, które komputer daje. Popularnym skojarzeniem do słów: kom-

puter i edukacja jest magiczne słowo e-learning. Jednak e-learning jest usprawnieniem organizacyjnym

nauczania. My siegamy głebiej i ingerujemy w tresci i metody nauczania.

2

Page 4: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

Inicjatywa iCSE w Uniwersytecie Slaskim

Zdarza sie, ze przeprowadzanie obliczen przy pomocy przysłowiowego “ołówka i kartki papieru” czy

“kredy i tablicy” oznacza ogromna strate czasu na zmudne i czasochłonne przeliczenia i skutkuje

brakiem czasu na dyskusje istoty problemu. Jest to jedna z przyczyn, która wymusiła na nas realizacje

nowatorskiego programu dydaktycznego w Instytucie Fizyki Uniwersytetu Slaskiego. Program ten o

nazwie iCSE (nazwa pochodzi od pierwszych liter słów: innovation, Computer, Science,Education) był

inspirowany podobnym programem na uczelniach w Norwegii, gdzie z czasem stał sie czescia strategii

rozwoju szkolnictwa wyzszego. Innowacyjnosc iCSE polega na integracji metod komputerowych, w tym

wizualizacji, metod numerycznych, symulacji i analizy danych z kierunkowymi przedmiotami wybra-

nych nauk scisłych. Opracowalismy prawie 200 tematów, w których wykorzystujemy otwarto-zródłowy

(a co za tym idzie: bezpłatny i ogólnodostepny)program komputerowy o nazwie SAGE do analizy

i wizualizacji problemów z matematyki, fizyki, chemii i biofizyki. Podnosi to atrakcyjnosc zajec

dydaktycznych i wzrost umiejetnosci studentów. Uwazamy, ze podobny sposób nauczania moze byc

wdrazany wczesniej: w szkole sredniej. Ale to wymaga wysiłku zarówno kadry dydaktycznej jak i

uczniów. Cos za cos.

Lepsze kwalifikacje dla rynku pracy!

Bez solidnej edukacji komputerowej zintegrowanej z matematyka i przedmiotami scisłymi młodzi

ludzie juz obecnie staja sie mało atrakcyjni na rynku pracy. Tradycyjne metody nauczania oddalaja

uczniów i studentów od rzeczywistych problemów, z którymi przyjdzie im sie zetknac w pózniejszym

zyciu zawodowym. Współczesnie zarówno inzynier, projektant, analityk finansowy, aktuariusz jak i

pracownik naukowy korzystaja na co dzien z wyników obliczen numerycznych i symulacji komputero-

wych, przeprowadzanych w sposób mniej lub bardziej swiadomy, zaleznie od konkretnego przypadku i

rodzaju wykorzystywanego oprogramowania.

Nauka i technika XXI wieku, jakkolwiek zbudowana na misternej konstrukcji osiagniec poprzednich

pokolen, zawiera elementy jakosciowo odmienne. Oznacza to, ze mozna wskazac dziedziny nauki,

konieczne w strukturze współczesnych przedmiotów i studiów, których jednak niemozna skutecznie

nauczac bez uzycia komputera.

3

Page 5: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

O ksiazce słów kilka:

Wdrazajac projekt iCSE w Instytucie Fizyki, powstał pomysł stworzenia materiałów dla nauczycieli i

uczniów szkół. Na stronie projektu:http://icse.us.edu.pl, mozna znalezc wiele materiałów, których czesc

jest skierowana bezposrednio do uczniów. W ramach projektu do konca kwietnia 2013 roku prowadzone

były warsztaty w wybranych szkołach. Duze zainteresowanie ze strony nauczycieli za-skutkowało pro-

jektem przygotowania skryptu, który mógłby byc punktem wyjscia do efektywnego uzycia komputera w

szkołach. Skrypt obejmuje wybrane tematy z matematyki, które sa koncepcyjnie najprostsze do zreali-

zowania. Róznorodne zagadnienia z fizyki mozna znalezc na stronach internetowych projektu. Autorzy

sa otwarci na wszelkie sugestie i uwagi krytyczne zarówno kadry dydaktycznej jaki i uczniów szkół

kazdego szczebla oraz moga słuzyc pomoca przy wdrazaniu proponowanych metod oraz materiałów do

nauczania matematyki i przedmiotów scisłych.

dr hab. Marcin Kostur, prof US

prof. dr hab. Jerzy Łuczka

4

Page 6: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

Spis tresci

1 Podstawowe informacje o Sage 9

1.1 Instalacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.1.1 Instalacja w systemie Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.1.2 Instalacja w systemie Windows . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.2 Rozpoczynamy prace z programem Sage . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.3 Obliczenia arytmetyczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.3.1 Podstawowe operatory arytmetyczne . . . . . . . . . . . . . . . . . . . . . . . . 22

1.3.2 Dokładnosc wykonywanych obliczen . . . . . . . . . . . . . . . . . . . . . . . 25

1.3.3 Operatory porównania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1.3.4 Stałe matematyczne i zmienne . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

1.3.5 Zero na poczatku liczby całkowitej . . . . . . . . . . . . . . . . . . . . . . . . 29

1.3.6 Upraszczanie wyrazen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

1.3.7 Liczby całkowite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

1.3.8 Zapisywanie skomplikowanych wyrazen . . . . . . . . . . . . . . . . . . . . . 32

1.3.9 Zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

1.4 Wyrazenia algebraiczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

1.4.1 Deklaracja zmiennych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

1.4.2 Podstawienia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

1.4.3 Wyrazenia wymierne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

1.4.4 Zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

1.5 Równania, nierównosci i ich układy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

1.5.1 Rozwiazywanie równan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

1.5.2 Rozwiazywanie nierównosci . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

1.5.3 Rozwiazywanie układów równan . . . . . . . . . . . . . . . . . . . . . . . . . 47

1.5.4 Rozwiazywanie układów nierównosci . . . . . . . . . . . . . . . . . . . . . . . 49

1.5.5 Zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5

Page 7: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

SPIS TRESCI

2 Funkcje 55

2.1 Podstawowe wiadomosci o funkcjach . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

2.1.1 Definicja funkcji, dziedzina, przeciwdziedzina i zbiór wartosci . . . . . . . . . . 57

2.1.2 Wykres funkcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

2.1.3 Okreslanie dziedziny funkcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

2.2 Najczesciej zadawane pytania dotyczace funkcji . . . . . . . . . . . . . . . . . . . . . . 63

2.2.1 Zbiór wartosci funkcji kwadratowej . . . . . . . . . . . . . . . . . . . . . . . . 71

2.2.2 Porównywanie ze soba dwóch funkcji. . . . . . . . . . . . . . . . . . . . . . . . 73

2.3 Funkcje poznane w szkole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

2.3.1 Funkcja liniowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

2.3.2 Funkcja kwadratowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

2.3.3 Funkcja wymierna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

2.3.4 Funkcja wykładnicza i logarytmiczna . . . . . . . . . . . . . . . . . . . . . . . 85

2.4 Zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

3 Rachunek prawdopodobienstwa i statystyka 95

3.1 Rachunek prawdopodobienstwa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

3.2 Statystyka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

3.2.1 Srednia arytmetyczna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

3.2.2 Odchylenie standardowe i wariancja . . . . . . . . . . . . . . . . . . . . . . . . 113

3.2.3 Srednia geometryczna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

3.2.4 Mediana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

3.2.5 Dominanta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

3.2.6 Grupowanie i prezentacja danych statystycznych . . . . . . . . . . . . . . . . . 117

3.3 Zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

4 Stereometria 129

4.1 Bryły platonskie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

4.2 Graniastosłupy i ostrosłupy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

4.3 Bryły obrotowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

4.4 Zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

5 Dodatek A 157

6

Page 8: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

Wstep

Na wstepie chciałbym zacytowac słowa znanego polskiego matematyka, profesora Hugo Dyonizego

Steinhausa (1887-1972):

1 Matematyka podobna jest do wiezy, której fundamenty połozono przed wiekami, a do której

dobudowuje sie coraz wyzsze pietra. Aby zobaczyc postep budowy, trzeba isc na pietro

najwyzsze, a schody sa strome i składaja sie z licznych stopni. Rzecza popularyzatora jest

zabrac słuchacza do windy, w której nie zobaczy ani posrednich pieter, ani praca wieków

ozdobionych komnat, ale przekona sie, ze gmach jest wysoki i wciaz rosnie.

Ksiazka ta chciałbym przede wszystkim zachecic czytelnika do nauki matematyki ale tez pokazac, ze jej

nauka moze byc łatwa i przyjemna. Dzis w dobie komputerów jest to mozliwe, gdyz wiele zagadnien

matematycznych mozna bardzo łatwo zilustrowac z pomoca odpowiednich programów komputerowych.

Z pewnoscia kazdy z czytelników korzystał kiedys z kalkulatora. Jest to najprostsze narzedzie potra-

fiace szybko wykonywac obliczenia arytmetyczne. Bardziej rozbudowane posiadaja dodatkowe funkcje

liczace na przykład potegi, logarytmy czy funkcje trygonometryczne. Jednakze dzisiejsze narzedzia ma-

tematyczne posiadaja duzo wieksze mozliwosci. Niestety wiekszosc z tych narzedzi jest płatna i sporo

kosztuje.

W ksiazce tej bede korzystał z programu matematycznego o nazwie Sage2, który jest całkowicie dar-

mowy, a mozliwosciami dorównuje, jesli nie przewyzsza, komercyjnym rozwiazaniom. Jest to cały pa-

kiet przeróznych narzedzi do wykonywania wszelkiego rodzaju obliczen. Mozemy wykonywac oblicze-

nia numeryczne – takie jak na kalkulatorze (nazywamy je arytmetycznymi), ale mozemy tez wykonywac

obliczenia symboliczne (na wyrazeniach algebraicznych, tzn. takich, które oprócz liczb i operatorów

zawieraja tez zmienne czy tez parametry). Dzieki temu, mozemy definiowac funkcje, równania, układy

równan, czy dowolne wyrazenia algebraiczne i na nich wykonywac obliczenia. Mamy tez do dyspozycji

1Jest to cyctat z artykułu pt. „Czem jest matematyka i na czem polega jej postep?”, który został wygłoszony przez profesoraHugo Dyonizego Steinhausa w trakcie serii popularnych odczytów matematycznych, wygłoszonych zima 1926-1927 roku przezprofesorów Uniwersytetu i Politechniki we Lwowie.

2http://www.sagemath.org/

7

Page 9: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

SPIS TRESCI

mnóstwo narzedzi graficznych do rysowania wykresów funkcji, figur geometrycznych na płaszczyznie

i w przestrzeni.

Podstawowe informacje na temat instalacji oraz sposobów korzystania z programu Sage zawarłem

w rozdziale pierwszym. Opisuje w nim równiez jak wykonywac obliczenia arytmetyczne, algebraiczne,

jak rozwiazywac równania, nierównosci czy ich układy.

W rozdziale drugim pokazuje jak z pomoca programu łatwo jest badac własnosci funkcji jednej zmien-

nej. Sage pozwala definiowac takie funkcje w ten sam naturalny sposób jak robicie to zwykle na lekcjach

matematyki, tzn. za pomoca wzoru f(x) = wyrazenie, gdzie wyrazenie moze byc dowolnym wyra-

zeniem algebraicznym zawierajacym pewna zmienna. Na przykład zapis f(x) = x + 5 wystarczy aby

narysowac wykres tej funkcji, znalezc jej miejsca zerowe, obliczac wartosci w dowolnym punkcie, itd.

Trzeci rozdział poswiecony jest rachunkowi prawdopodobienstwa i statystyce matematycznej. Jak

wiemy, podczas rozwiazywania zadan z rachunku prawdopodobienstwa czesto musimy wykonywac

wiele obliczen kombinatorycznych. Program Sage posiada cała game gotowych funkcji kombinatorycz-

nych, miedzy innymi do zliczania kombinacji czy wariacji. Poza tym mamy mozliwosc definiowania

zbiorów. Na podstawie zdefiniowanych zbiorów mozna definiowac rodziny ich podzbiorów. Podobnie

mozna tworzyc ciagi oraz zbiory podciagów o okreslonej długosci. To wszystko powoduje, ze mozna

w bardzo ciekawy i prosty sposób zilustrowac nawet dosc skomplikowane zadanie kombinatoryczne.

W rozdziale czwartym pokazuje, jak łatwo uczyc sie stereometrii majac takie narzedzie jak Sage. Ste-

reometria jest działem geometrii, która w szczególny sposób wymaga dobrej wyobrazni. Jak sie przeko-

nacie, mozna bardzo łatwo rysowac bryły w przestrzeni trójwymiarowej, w dodatku mamy mozliwosc

podgladania tych brył z róznych perspektyw, poprzez obracanie ich za pomoca myszy komputerowej.

Do ksiazki dołaczony został równiez interaktywny arkusz programu Sage, w którym zawarte sa miedzy

innymi gotowe do uzycia i przetestowania przykłady z ksiazki.

8

Page 10: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

Rozdział 1

Podstawowe informacje o Sage

Sage1 jest oprogramowaniem matematycznym składajacym sie z bardzo duzej liczby narzedzi przydat-

nych w wielu dziedzinach matematyki. Mozemy z jego pomoca wykonywac zarówno obliczenia nu-

meryczne jak i symboliczne. Z łatwoscia rozwiazemy wszelkiego rodzaju równania, nierównosci czy

układy równan. Szybko wykona za nas wszelkie obliczenia na liczbach, obliczenia kombinatoryczne

czy statystyczne. Pomysłodawca i liderem projektu Sage jest William Stein, matematyk z Uniwersy-

tetu Waszyngtonskiego. Wczesniej projekt nazywał sie SAGE, System for Algebra and Geometry

Experimentation2. Pierwsza wersja programu została opublikowana w lutym 2005 roku. Był i jest do

dzis rozpowszechniany jako darmowe oprogramowanie oparte na licencji GNU General Public License3. Mamy wiec wolny dostep nie tylko do samego programu ale tez do jego zródeł.

Sage oparty jest na jezyku programowania Python4, przy pomocy którego integruje ze soba wiele

znanych darmowych bibliotek matematycznych. Niektóre z nich przedstawia tabela:

Biblioteki Przeznaczenie

GAP, Maxima, Singular Algebra

Singular Geometria algebraiczna

MPIR, MPFR, MPFI, NTL, mpmath Obliczenia arytmetyczne dowolnej precyzji

Maxima, SymPy, GiNaC Rachunek rózniczkowy

Symmetrica, Sage-Combinat Kombinatoryka

GSL, SciPy, NumPy, ATLAS Obliczenia numeryczne

PARI/GP, FLINT, NTL Teoria liczb

R, SciPy Obliczenia statystyczne

1http://www.sagemath.org2Stein, William. SAGE: A Computer System for Algebra and Geometry Experimentation. Retrieved 30 March 2012.3http://pl.wikipedia.org/wiki/GNU_General_Public_License4http://pl.wikipedia.org/wiki/Python

9

Page 11: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

Poza tym zawiera wiele bibliotek własnych, zawierajacych narzedzia, których nie mozna znalezc w do-

stepnych darmowych bibliotekach badz tez okazało sie, ze mozna utworzyc ich odpowiedniki lepsze

i szybsze. Dzieki temu wszystkiemu jest on bardzo bogata alternatywa dla takich narzedzi komercyjnych

jak Maple, Mathematica, czy MATLAB.

1.1 Instalacja

Jesli ktos nie chce badz nie moze zainstalowac programu Sage na swoim komputerze, to moze skorzystac

z udostepnionego on-line notatnika Sage. Znajduje sie on na stronie http://www.sagenb.org. Aby

móc tworzyc własne arkusze, edytowac je i zapisywac, musimy utworzyc konto uzytkownika. Autorzy

strony nie umiescili typowego formularza rejestracyjnego nowych uzytkowników, w zamian mozemy

skorzystac z juz istniejacego konta, które posiadamy u innego usługodawcy, np. Google, Yahoo, OpenId,

itd. Ich liste zobaczymy po wejsciu na strone po prawej stronie w postaci odpowiednich ikon.

Po kliknieciu na wybrana ikone – ja osobiscie skorzystałem z konta Google – zobaczymy okno logowa-

nia.

10

Page 12: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.1. INSTALACJA

Po zalogowaniu mozemy juz w pełni korzystac z notatnika Sage.

Inna metoda korzystania z programu Sage, to instalacja na własnym komputerze. Mamy dwie wersje

instalacyjne do wyboru, jedna jest wersja gotowa do uzycia, tzw. prekompilowana, natomiast druga

wymaga samodzielnej kompilacji zródeł. Ja opisze tylko pierwsza wersje, gdyz jest prostsza. Jesli ktos

chciałby wypróbowac te druga, to pomocne informacje znajdzie na przykład pod adresem

http://www.sagemath.org/doc/installation/source.html.

Wszystkie potrzebne pliki pobierzemy ze strony

http://www.sagemath.org/download.html

Po wejsciu na nia, wybieramy serwer, z którego bedziemy pobierac pliki (najlepiej jak najblizszy naszej

lokalizacji), np.

11

Page 13: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

ftp://ftp.fu-berlin.de/unix/misc/sage/index.html

po czym musimy wybrac odpowiednia wersje, w zaleznosci od systemu, na którym pracujemy, np.

Windows, Linux, Mac OS X, itd. Po wybraniu rozpocznie sie pobieranie pliku.

1.1.1 Instalacja w systemie Linux

Jesli pracujemy w systemie linux, to po pobraniu odpowiedniego pliku, np.

sage-5.12-linux-64bit-ubuntu_12.04.3_lts-x86_64-Linux.tar.lzma

wystarczy go rozpakowac do dowolnego katalogu, do którego mamy prawa zapisu. W tym celu otwie-

ramy terminal, wchodzimy do katalogu gdzie zapisalismy pobrany plik i wydajemy polecenia:

tar --lzma -xvf

sage-5.12-linux-64bit-ubuntu_12.04.3_lts-x86_64-Linux.tar.lzma

mv sage-5.12-linux-64bit-ubuntu_12.04.3_lts-x86_64-Linux

/sciezka/do/katalogu/sage-5.12

Mozemy juz korzystac z programu wydajac polecenia:

cd /sciezka/do/katalogu/sage-5.12

./sage

Powinnismy zobaczyc interaktywny wiersz polecen Sage.

Własciwie to wystarczy, aby zaczac prace z programem. Jednak warto wykonac jeszcze pare kroków,

dzieki czemu bedzie mozna uruchamiac go z dowolnego miejsca na dysku. W tym celu nalezy skopiowac

plik / cieka /do/katalogu/sage-5.12/sage do katalogu, w którym zwykle instalowane sa

programy, np. /usr/local/bin/. Aby tego dokonac, wydajemy polecenie

cp /sciezka/do/katalogu/sage-5.12/sage /usr/local/bin/

Nastepnie otwieramy plik /usr/local/bin/sagew swoim ulubionym edytorze tekstu i zmieniamy

wartosc zmiennej SAGE_ROOT na sciezke do katalogu, gdzie rozpakowalismy program, tzn.

SAGE_ROOT=/sciezka/do/katalogu/sage-5.12

12

Page 14: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.1. INSTALACJA

Dzieki tym zabiegom, z dowolnego miejsca na dysku, mozemy wydac polecenie sage (bez kropki i

slasha) i mamy uruchomiony program. Mozemy juz korzystac z wszelkich dobrodziejstw, które nam

dostarcza Sage.

Zaraz po uruchomieniu interaktywnego wiersza polecen na ekranie pojawi nam sie kilka informacji, m.

in. wersja programu oraz podpowiedz, ze poleceniem notebook() uruchomimy interfejs notatnika.

Polecenia wpisujemy po napisie sage:.

Aby zobaczyc wynik polecenia, wciskamy klawisz Enter. Jak widzimy, polecenie notebook() uru-

chamia tzw. notatnik programu Sage. Mozna go tez uruchomic wydajac bezposrednio w terminalu sys-

temowym polecenie sage -n.

Z notatnika mozemy korzystac za pomoca dowolnej przegladarki internetowej. Po jej uruchomieniu

wystarczy w polu adresu wpisac adres http://localhost:8080

13

Page 15: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

Domyslnie mamy do dyspozycji konto uzytkownika admin z hasłem sage. Jesli próba zalogowania

sie nie powiedzie (np. podamy zły login lub hasło), to pod przyciskiem Sign in pojawi sie link

Sign up for a new Sage Notebook account. Po kliknieciu na niego otworzy sie formularz, przy pomocy

którego bedzie mozna utworzyc konto nowego uzytkownika.

Po zalogowaniu zobaczymy notatnik, identyczny jaki widzielismy po wejsciu na strone

http://sagenb.org.

14

Page 16: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.1. INSTALACJA

1.1.2 Instalacja w systemie Windows

Jesli pracujecie na systemie operacyjnym Microsoft Windows, przed instalacja programu Sage musicie

zainstalowac dodatkowy program, który stworzy odpowiednie srodowisko dla Sage-a. Twórcy programu

zalecaja VirtualBox, który mozemy pobrac ze strony . Wybieramy wersje dla Windows i instalujemy.

Nastepnie nalezy pobrac plik aplikacji. Jezeli nie bedziemy korzystac z opcji „multiuser server” powinna

wystarczyc nam wersja Small Sage Virtual Machine dostepna do pobrania bezposrednio na stronie

http://boxen.math.washington.edu/home/emil/doc/html/en/SAGE-DOWNLOAD.html

15

Page 17: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

Po zakonczeniu pobierania aplikacji uruchamiamy program VirtualBox, nastepnie wybieramy z menu

File opcje Import Appliance. Otwarte zostanie okno Appliance Import Wizard, na którym klikamy w przy-

cisk Choose i wskazujemy sciezke do pliku sage-lite-vm-a1.ova, który wczesniej pobralismy.

Akceptujemy wszystkie domyslne ustawienia i klikamy na Finish . Import odpowiednich danych moze

potrwac kilka minut.

Mozemy teraz uruchomic nasza wirtualna maszyne, zaznaczajac ja na liscie w lewym oknie i klikajac na

przycisk Start .

16

Page 18: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.1. INSTALACJA

W razie potrzeby cały proces instalacji został szczegółowo opisany na stronie

http://wiki.sagemath.org/SageApplianceInstallation.

Dla osób zainteresowanych uruchomieniem aplikacji Saga w systemie operacyjnym Windows bezpo-

srednio z bootowalnej płyty CD na stronie

http://boxen.math.washington.edu/home/emil/doc/html/en/SAGE-DOWNLOAD.html

znajdziemy obraz dysku „Live CD” w formacie iso obsługiwanym przez wiekszosc programów

słuzacych do wykonywania kopii płyt CD/DVD.

17

Page 19: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

1.2 Rozpoczynamy prace z programem Sage

Z opisu instalacji dowiedzieliscie sie juz jak uruchomic interaktywny wiersz polecen oraz notatnik

programu Sage. Mysle, ze najchetniej wybierana forma pracy z programem bedzie notatnik, dlatego na

nim sie teraz skupimy. Po kliknieciu na link New Worksheet otworzy sie okienko, w które wpisujemy

nazwe tworzonego arkusza. Po wpisaniu nazwy klikamy na przycisk Rename .

Arkusz składa sie z komórek, w które wpisujemy polecenia. Polecenia w notatniku i w interaktyw-

nym wierszu polecen sa takie same. Dodatkowo w notatniku mozemy wprowadzac kilka polecen w jed-

nej komórce. Aby wykonac obliczenia z danej komórki naciskamy przycisk Evaluate lub wciskamy

Shift+Enter. Pamietajmy, ze wyswietlany jest zawsze wynik ostatniego polecenia w komórce.

Jesli chcielibysmy zobaczyc wynik wczesniejszej instrukcji, to mozemy uzyc polecenia print.

18

Page 20: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.2. ROZPOCZYNAMY PRACE Z PROGRAMEM SAGE

Chciałbym jeszcze na samym poczatku powiedziec o kilku nawykach, które warto sobie wyrobic podczas

pracy z notatnikiem. Po pierwsze, mozemy wstawiac do komórek komentarze do naszych polecen.

Widzimy, ze komentarze poprzedzamy symbolem #. Warto je dodawac, gdyz okaza sie bardzo cenne,

kiedy bedziemy chcieli skorzystac z naszego arkusza po kilku miesiacach lub latach.

Mozemy tez dodawac do arkusza opisy miedzy komórkami. W tym celu przytrzymujemy klawisz Shift

i klikamy w miejsce na arkuszu, w które chcemy wstawic opis.

Otworzy sie okienko, troche przypominajace interfejs typowego programu do edycji tekstu. Jak widzimy,

mozna edytowac tekst w dowolny sposób, pogrubiac, zmieniac kolor czcionki, wstawiac listy, tabele, itd.

Po wprowadzeniu tekstu, dokonujemy zapisu przyciskiem Save changes .

Kolejna wazna rzecza, o której nalezy wiedziec, to uzyskiwanie pomocy na temat polecen. Czasami

zdarza sie, ze znamy nazwe polecenia, ale nie pamietamy jak dokładnie z niego skorzystac albo nie

pamietamy pewnych opcji, z których chcielibysmy skorzystac. Mysle, ze powodów moze byc wiele. Aby

uzyskac informacje na temat okreslonego polecenia, np. sqrt do wolnej komórki arkusza, wpisujemy

19

Page 21: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

Zatem wystarczy wpisac polecenie i po nim znak zapytania.

Jesli chcemy wstawic nowa komórke pomiedzy dwie juz istniejace, najezdzamy kursorem na puste pole

miedzy tymi komórkami az pojawi sie niebieski poziomy pasek i klikamy na niego.

Jesli chcemy zakonczyc prace z notatnikiem najlepiej jest kliknac na przycisk Save & quit dzieki czemu

dokument przed zamknieciem zostanie zapisany. Jesli ktos nie chce zapisywac zmian, to moze kliknac

w przycisk Discard & quit . Po ponownym uruchomieniu notatnika programu Sage i zalogowaniu sie na

stronie http://localhost:8080 zobaczymy liste wszystkich swoich arkuszy.

20

Page 22: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.2. ROZPOCZYNAMY PRACE Z PROGRAMEM SAGE

Aby otworzyc którys z nich wystarczy kliknac na jego nazwe. Jak widzimy mozemy w tym miejscu usu-

nac arkusz, zatrzymac jesli został wczesniej uruchomiony, czy zapisac na dysku po kliknieciu przycisku

Download .

Opisze teraz jak wykonywac róznego rodzaju obliczenia zarówno numeryczne jak i symboliczne, jak

rozwiazywac równania i nierównosci oraz wiele innych zagadnien. Przykłady polecen Sage bede po-

przedzał słowem sage: . Wyniki natomiast słowem wynik: , np.

sage: 2^123

wynik: 10633823966279326983230456482242756608

Wszystkie opisywane polecenia mozna wykonywac zarówno w notatniku jak i w interaktywnym wierszu

polecen.

21

Page 23: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

1.3 Obliczenia arytmetyczne

1.3.1 Podstawowe operatory arytmetyczne

Najprostsze wykorzystanie programu, to wykonywanie obliczen podobnych do tych, które znacie z kal-

kulatorów. Najczesciej wykonujemy na nich podstawowe operacje arytmetyczne +, -, ·, :. W Sage-u

wykonujemy je podobnie, pamietajac tylko, ze „*” oznacza znak mnozenia, a „/” znak dzielenia. Wy-

konajmy kilka obliczen.

sage: 7 + 5 - 4 * 2 / 5

wynik:52

5

Oprócz tych czterech operatorów, mamy do dyspozycji duza ilosc innych funkcji matematycznych

odpowiadajacych potegowaniu, pierwiastkowaniu, logarytmowaniu, funkcje trygonometryczne, itd.

sage: 3^4

wynik: 81

Widzimy, ze symbol „^” oznacza potege, tzn. 3^4 = 34. Sage potrafi pracowac na bardzo duzych

liczbach i do tego robi to bardzo szybko. Mówiac o bardzo duzych liczbach mam na mysli liczby

składajace sie z tysiecy a nawet milionów cyfr. Przyjrzyjmy sie uwaznie obrazkowi ponizej.

Widzimy tam, ze Sage wykonał potegowanie

1234567891234567

w całkowitym czasie 7.01 s, a wynik jest liczba składajaca sie z 9989518 cyfr, czyli prawie 10 mi-

lionów cyfr. Wynik ten uzyskałem na moim laptopie, który nie jest bardzo szybkim komputerem.

Aby obliczyc pierwiastek stopnia drugiego, mamy do dyspozycji funkcje sqrt.

sage: sqrt(121)

wynik: 11

Zatem sqrt(121) =√121 = 11.

22

Page 24: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.3. OBLICZENIA ARYTMETYCZNE

Nie ma zaimplementowanych funkcji obliczajacych pierwiastki innych stopni. Jednakze nie sa nam

potrzebne, gdyz mamy operator potegowania „^”. Wiemy przeciez, ze pierwiastek stopnia m, to potega1m

, tzn.m√a = a

1m .

Obliczmy na przykład wartosc nastepujacego wyrazenia:

5

√72 + 3

√12,

wystarczy napisac

sage: (7^2 + 3 * sqrt(12))^(1/5)

wynik:(6√3 + 49

) 15

Obliczmy teraz kilka logarytmów. Mamy do dyspozycji funkcje log.

sage: print log(16,2)

sage: print log(100)

wynik: 4 wynik: 4.605

Zatem log(16,2)= log2 16 = 4. Pierwszy parametr funkcji log, to liczba logarytmowana, a drugi to

podstawa logarytmu. Jesli nie podamy drugiego parametru, to zostanie obliczony logarytm naturalny

danej liczby.

Poza wymienionymi wyzej działaniami, mamy do dyspozycji jeszcze wiele innych. Na jeden z nich

chciałbym zwrócic szczególna uwage. Jest on zdefiniowany za pomoca symbolu procenta %. Zobaczmy

jak działa.

sage: 7 % 5

wynik: 2

sage: 7 == 5 * 1 + 2

wynik: True

sage: 12 % 3

wynik: 0

23

Page 25: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

sage: 12 == 3 * 4 + 0

wynik: True

Zatem a % b zwraca reszte z dzielenia a przez b, wg. wzoru

a% b = r oznacza, ze a = b · n+ r dla pewnej liczby całkowitej n

oraz 0 ≤ r < b.

Otrzymalismy tym samym operator, przy pomocy którego mozemy sprawdzic czy dana liczba całkowita

jest podzielna przez inna liczbe całkowita, np.

sage: (7237626 % 5543) == 0

wynik: False

Rozwiazmy nastepujace zadanie:

Przykład 1. Ile jest wszystkich liczb naturalnych trzycyfrowych podzielnych przez 73?

Utwórzmy liste wszystkich takich liczb.

sage: lista = []

sage: for n in range(100, 1000):

if n % 73 == 0:

lista = lista + [ n ]

sage: lista

wynik: [146, 219, 292, 365, 438, 511, 584, 657, 730, 803, 876, 949]

Przygotowalismy na poczatku pusta liste. Sage obejmuje elementy listy nawiasami kwadratowymi

[a1, a2, . . . , ak].

Poleceniem for n in range(100, 1000): przechodzimy zmienna n po wszystkich liczbach z

zakresu od 100 do 999 włacznie i wykonujemy instrukcje zapisane w kolejnych wierszach. Instrukcja

if n % 73 == 0: sprawdza czy liczba n jest podzielna przez 73. Jesli tak, to wykonywana jest

instrukcja w kolejnym wierszu, tzn. lista = lista + [ n ], która dodaje liczbe n do naszej

listy.

24

Page 26: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.3. OBLICZENIA ARYTMETYCZNE

Aby odpowiedziec na pytanie postawione w zadaniu, wystarczy policzyc elementy naszej listy albo

wydac polecenie:

sage: len(lista)

wynik: 12

1.3.2 Dokładnosc wykonywanych obliczen

Sage zwykle stara sie zwracac jak najdokładniejsza wartosc wyników obliczen. Spójrzmy na prosty

przykład.

sage: sqrt(53)

wynik:√53

Nie otrzymalismy wyniku w postaci ułamka dziesietnego, gdyz wiemy, ze kazdy taki ułamek bedzie

tylko zaokragleniem tej liczby do pewnej liczby miejsc po przecinku. Tak sie dzieje z kazda liczba

niewymierna. Jesli jednak zalezy nam na przyblizonym wyniku z dokładnoscia do okreslonej liczby

miejsc po przecinku, to mozemy skorzystac z metody N.

sage: N(sqrt(53))

wynik: 7.28010988928052

sage: N(sqrt(53), digits=3)

wynik: 7.28

sage: N(sqrt(53), digits=60)

wynik: 7.28010988928051827109730249152703279377766968257647743837818

Widzimy, ze mozemy z łatwoscia sterowac dokładnoscia zwracanych wyników za pomoca opcji

digits metody N. Ustala ona ilosc cyfr dla całej liczby, dlatego nalezy obchodzic sie ta opcja

ostroznie. Przyjrzyjmy sie przykładowi:

sage: N(sqrt(1323232323232), digits=5)

wynik: 1.1503× 106

sage: (1.1503 * 10^6)^2

25

Page 27: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

wynik: 1.3232× 1012

sage: N(sqrt(1323232323232))

wynik: 1.15031835733939× 106

Wynik pierwszego pierwiastkowania jest, jak widzimy, obarczony duzym błedem.

1323232323232 >(1.1503× 106

)2= 1.3232× 1012 = 1323200000000.

W drugim przypadku mamy juz duzo lepiej

(1.15031835733939× 106

)2= 1.32323232323200× 1012 = 1323232323232.

Jesli liczba jest mniejsza od jednosci, to metoda N liczbe cyfr zlicza od przecinka, tzn.

sage: (2/3).N(digits=3)

wynik: 0.667

Powiedziałem wyzej „przecinka”, jednak widzimy, ze czesc ułamkowa liczby rzeczywistej oddzielamy

kropka.

1.3.3 Operatory porównania

Mozemy z łatwoscia porównywac ze soba liczby za pomoca operatorów

==, >, <, >=, <=.

sage: 12 > 16

wynik: False

sage: 0.6 == 3/5

wynik: True

sage: 2^8 <= 8^2

wynik: False

Jezeli chcemy porównac wartosci liczbowe wyrazen zawierajacych, oprócz standardowych operatorów

dodawania, mnozenia, itd. równiez funkcje, np. sqrt czy log, to mozemy wtedy uzyc instrukcji N.

26

Page 28: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.3. OBLICZENIA ARYTMETYCZNE

sage: sqrt(3) == 3^(1/2)

wynik:√3 =

√3

sage: sqrt(3).N() == 3^(1/2).N()

wynik: True

Widzimy, ze w pierwszym przypadku wyswietlona została po prostu równosc, a dopiero po uzyciu

metody N, porównane zostały wartosci liczbowe wyrazen. Metoda N musi zostac dodana do obydwu

stron, gdyz w przeciwnym przypadku, gdybym dajmy na to uzył tylko do lewej strony

sage: sqrt(3).N() == 3^(1/2)

wynik: 1.73205080756888 =√3

wówczas widzimy, ze po lewej mamy wartosc liczbowa, która jest tylko pewnym przyblizeniem pier-

wiastka z trzech, a z prawej wartosc symboliczna, która jest dokładna.

1.3.4 Stałe matematyczne i zmienne

W obliczeniach mozemy wykorzystywac tez stałe matematyczne. Mamy na przykład zdefiniowana

liczbe π.

sage: pi

wynik: π

Otrzymalismy dokładny wynik. Jesli potrzebujemy wartosci numerycznej, to mozemy uzyc funkcji N.

sage: N(pi, digits=3)

wynik: 3.14

sage: N(pi, digits=60)

wynik: 3.14159265358979323846264338327950288419716939937510582097494

Obliczmy wartosc funkcji sinus, dla kata 600.

sage: sin(pi/3)

wynik:1

2

√3

27

Page 29: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

Mozemy definiowac własne zmienne i przypisywac im wartosci.

sage: x = 3/5

W powyzszym przykładzie zdefiniowałem zmienna x i przypisałem jej wartosc 35. Przypisania dokonu-

jemy operatorem „=”. Zauwazmy, ze w wyniku tego polecenia Sage nie wyswietlił zadnego wyniku. Aby

go zobaczyc nalezy wydac jeszcze jedno polecenie zawierajace tylko nazwe zmiennej lub uzyc funkcji

print, tzn.

sage: x

wynik:3

5

Funkcja print wyswietla zawsze wartosc zmiennej w postaci tzw. wierszowej, czyli takiej, jaka wpro-

wadzamy do komórki arkusza czy w wierszu polecen.

sage: print x

wynik: 3/5

sage: x.N(digits=2)

wynik: 0.60

Widzimy, ze instrukcja zawierajaca tylko nazwe zmiennej wyswietla wynik w postaci odpowiednio

sformatowanej (w tym przypadku w postaci ułamka zwykłego). Na zdefiniowanych zmiennych mozemy

wykonywac obliczenia tak, jak na liczbach.

sage: x = 5; y = 5/2; z = pi/6

sage: wyn = x / y * cos(z)

sage: wyn

wynik:√3

Jak widzimy mozna w jednym wierszu wydac wiele instrukcji, ale kazda musi byc oddzielona sredni-

kiem. Mozna tez nadpisywac wartosci zmiennych (wczesniej jak pamietamy x było równe 35) czy tez

przypisywac im wyniki innych obliczen.

28

Page 30: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.3. OBLICZENIA ARYTMETYCZNE

1.3.5 Zero na poczatku liczby całkowitej

Wiemy, ze w systemie dziesietnym liczby 12 i 012 sa równe. Jednak Sage takie liczby traktuje zupełnie

inaczej.

sage: 12

wynik: 12

sage: 012

wynik: 10

Otóz, jesli na poczatku liczby całkowitej składajacej sie z cyfr ze zbioru 0, 1, 2, 3, 4, 5, 6, 7 stoi zero,

to Sage traktuje ja jako liczbe zapisana w systemie ósemkowym, tzn. systemie pozycyjnym o podstawie

8. Zatem liczba 012 to 2 · 80 + 1 · 81 = 10.

sage: 0123

wynik: 83

3 · 80 + 2 · 81 + 1 · 82 = 3 + 16 + 64 = 83.

Jesli w zapisie liczby pojawi sie kropka, to Sage potraktuje te liczbe jako dziesietna.

sage: 01.23

wynik: 1.23000000000000

Jesli wpisalibysmy przez przypadek

sage: 029

to dostaniemy komunikat o błedzie,

gdyz liczby w systemie ósemkowym moga sie składac tylko z wymienionych wyzej cyfr od 0 do 7.

29

Page 31: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

1.3.6 Upraszczanie wyrazen

Rozpatrzmy teraz nastepujacy przykład:

sage: x = (log(8,sqrt(2))+log(4,1/2))/log(sqrt(8),2)

sage: x

wynik:

(log(4)

log( 12)

+ log(8)

log(√2)

)log (2)

log(2√2)

Mozemy wyrazenie to uproscic za pomoca metody simplify.

sage: x.simplify()

wynik:4 log (8)

3 log (2)− 2 log (4)

3 log (2)

Pewnie zauwazyliscie teraz, ze to wyrazenie mozna jeszcze bardziej uproscic. Uzyjmy wiec innej metody

o nazwie simplify_radical.

sage: x.simplify_radical()

wynik:8

3

Tym razem widzimy, ze otrzymalismy satysfakcjonujacy wynik. Oczywiscie moglismy uzyc poznanej

juz metody N, aby uzyskac wartosc numeryczna tego wyrazenia, jednakze nie byłaby to wartosc do-

kładna.

sage: x.N()

wynik: 2.66666666666666

Do wyrazen zawierajacych funkcje trygonometryczne warto stosowac polecenie simplify_trig().

sage: w = (sin(pi/7))^2+(cos(pi/7))^2)

sage: w.simplify_trig()

wynik: 1

30

Page 32: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.3. OBLICZENIA ARYTMETYCZNE

1.3.7 Liczby całkowite

Sage posiada tez wiele funkcji przydatnych w teorii liczb, czyli w dziale matematyki zajmujacym sie

badaniem liczb całkowitych. Wiecie zapewne, co to sa liczby pierwsze czy złozone. Mozemy na przykład

łatwo sprawdzic, czy liczba 12324241 jest pierwsza. Wystarczy wydac polecenie:

sage: is_prime(12324241)

wynik: False

Otrzymalismy w wyniku informacje False, czyli „Fałsz”, zatem jest to liczba złozona. Znajdzmy wiec

liczbe pierwsza wystepujaca zaraz po niej.

sage: next_prime(12324241)

wynik: 12324253

sage: 12324253 in Primes()

wynik: True

Wyswietlmy teraz 20 poczatkowych kolejnych liczb pierwszych.

sage: primes_first_n(20)

wynik: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71]

Albo zobaczmy wszystkie liczby pierwsze od 1 do 100.

sage: list(primes(1, 100))

wynik: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

Wyswietlmy dwunasta oraz dwudziesta pierwsza liczbe pierwsza.

sage: nth_prime(12)

wynik: 37

sage: nth_prime(21)

wynik: 73

W wielu zadaniach dotyczacych liczb całkowitych musimy rozkładac dana liczbe na czynniki pierwsze,

np. podczas wyłaczania całosci przed pierwiastek. Do tego celu słuzy funkcja factor.

31

Page 33: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

sage: factor(30030)

wynik: 2 · 3 · 5 · 7 · 11 · 13

Rozwiazmy nastepujace zadanie.

Przykład 2. Wyłacz czesc całkowita z pierwiastka:√343035.

Wiemy, ze do rozwiazania tego zadania dobrze jest znac rozkład liczby spod pierwiastka na czynniki

pierwsze. Zobaczmy jak on wyglada.

sage: factor(343035)

wynik: 34 · 5 · 7 · 112

Zatem√343035 =

√34 · 5 · 7 · 112 =

√34 ·

√5 · 7 ·

√112 = 99

√35.

Sage domyslnie wyłacza czesci całkowite spod pierwiastka, tzn.

sage: sqrt(343035)

wynik: 99√35

1.3.8 Zapisywanie skomplikowanych wyrazen

Wyrazenia składajace sie z niewielkiej ilosci działan zwykle zapisujemy jako jedna instrukcje. Aby

rozwiazac nastepujace proste zadanie:

Przykład 3. Zapisz wyrazenie arytmetyczne w jak najprostszej postaci.

12 +√18

33 − 7

wystarczy wydac polecenie:

sage: w1 = (12 + sqrt(18)) / (3^3 - 7); w1

wynik:3

20

√2 +

3

5

Mysle, ze otrzymana postac jest wystarczajaco prosta.

32

Page 34: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.3. OBLICZENIA ARYTMETYCZNE

Wezmy teraz troche bardziej skomplikowane wyrazenie.

Przykład 4. Doprowadz wyrazenie do najprostszej postaci.

4 ·

12 +√18

33 − 7

2

3

100

(√2 + 4

)3Zauwazmy, iz w liczniku w nawiasie, znajduje sie wyrazenie z poprzedniego przykładu, które w progra-

mie Sage nazwalismy w1. Mozemy wiec wykorzystac go w definicji nowego wyrazenia co z pewnoscia

uprosci nam zapis.

sage: w2 = 4*w1^2 / (3/100 * (sqrt(2) + 4)^3); w2

wynik:3√2 + 4

Usunmy jeszcze niewymiernosc z mianownika.

sage: w2 = (w2 / (sqrt(2)-4)).simplify_radical(); w2

wynik: − 3

14

Pomnozyłem mianownik wyrazenia w2 przez√2− 4 i uprosciłem poleceniem simplify_radical.

sage: w2 = w2 * (sqrt(2)-4)

wynik: − 3

14

√2 +

6

7

Ostatecznie, całosc pomnozyłem przez√2− 4. Wykonalismy nastepujace operacje:

3√2 + 4

·√2− 4√2− 4

=3√2− 12

2− 16= − 3

14

√2 +

6

7.

Przykład 5. Oblicz wartosc wyrazenia:

sin2(π6

)+ cos

(π4

)sin2

(π3

)+ 1

33

Page 35: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

sage: w3 = ((sin(pi/6))^2 + cos(pi/4)) / \

((sin(pi/3))^2 + 1)

wynik:2

7

√2 +

1

7

Tym razem widzimy, ze Sage zwrócił nam bardzo ładny wynik, którego z pewnoscia nie musimy

bardziej upraszczac. Zauwazmy, ze przy definiowaniu powyzszego wyrazenia, mianownik przeniosłem

do nowego wiersza. Jesli instrukcja jest bardzo długa, to mozemy ja podzielic znakiem „\” ustawionym

na koncu dzielonej linii. Ewentualnie, gdy wyrazenie jest bardzo skomplikowane, to mozemy podobnie

jak w poprzednim przykładzie, podzielic go na kilka wyrazen przypisanych do róznych zmiennych i

zapisac całosc za ich pomoca. Zbudujmy tym sposobem powyzsze wyrazenie.

sage: w3_licznik = (sin(pi/6))^2 + cos(pi/4)

sage: w3_mianownik = (sin(pi/3))^2 + 1

sage: w3 = w3_licznik / w3_mianownik; w3

wynik:2

7

√2 +

1

7

1.3.9 Zadania

1. Oblicz wartosci podanych wyrazen:

(a) 231 · 7878− 1212,

(b)54 + 732

3245− 123,

(c) 31 · 23212,

(d)√151293,

(e) 3

√687 + 211

39304,

(f) log12(288

√3),

(g)4√6561

log√53√25

,

(h)sin(π3

)+ cos

(2π3

)sin2

(π4

)+ cos2(π)

.

2. Wyłacz całosc przed znak pierwiastka.

(a)√20164824181593, (b) 3

√7535933164375, (c) 4

√35113033753497567.

3. Czy wsród siedemdziesieciu pieciu kolejnych liczbach naturalnych wiekszych od 100 jest 14 liczb

pierwszych?

4. Wykaz, ze liczba 327 + 329 jest podzielna przez 30.

34

Page 36: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.3. OBLICZENIA ARYTMETYCZNE

ODPOWIEDZI

1. (a) 1818606 (b) 3931561

(c) 753732969663574511399999635456 (d) 1860867

(e) 117

· 3

√4494

(f) 52

(g) 274

(h) −√39(√3− 3).

2. (a) 271779√273 (b) 1037575

√7 (c) 2081667

√8103.

3. Tak.

35

Page 37: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

1.4 Wyrazenia algebraiczne

W poprzednim podrozdziale dowiedzieliscie sie jak wykonywac obliczenia na liczbach. Sage do-

skonale sobie radzi równiez z obliczeniami symbolicznymi, tzn. potrafi wykonywac obliczenia

czy przekształcenia na wyrazeniach algebraicznych. Wiemy, ze wyrazenie algebraiczne podob-

nie jak arytmetyczne składa sie z działan oraz liczb ale wystepuja w nim dodatkowo zmienne.

Zmienne oznaczamy zwykle literami, np. a, b, x, y, itd., ale moga to byc tez wyrazy, np.

wynik, licznik, Pole_kwadratu. Nie mozemy uzywac nazw, które sa poleceniami Sage-a,

np. print, sqrt, simplify, itd.

1.4.1 Deklaracja zmiennych

Przed uzyciem zmiennych nalezy je wczesniej zadeklarowac poleceniem var.

sage: var(’x’, ’a’)

Przypominacie sobie zapewne, ze zmiennych uzywalismy juz wczesniej. Przypisywalismy im wartosci

liczbowe badz wartosci wyrazen arytmetycznych. Jezeli chcemy wykonywac obliczenia symboliczne na

zmiennych, to musimy wczesniej je zadeklarowac.

sage: (z^2+3*z)/z

Natomiast po zadeklarowaniu

sage: var(’z’)

sage: (z^2+3*z)/z

wynik:z2 + 3 z

z

Mozemy to wyrazenie przypisac do innej zmiennej czy tez uproscic, podobnie jak to robilismy z

wyrazeniami arytmetycznymi.

sage: wyr1 = ((z^2+3*z)/z)

sage: wyr1.simplify_radical()

wynik: z + 3

36

Page 38: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.4. WYRAZENIA ALGEBRAICZNE

Zwrócmy uwage, ze zmiennej wyr1 nie deklarowałem i program nie protestował. Otóz w momencie,

gdy nowo utworzonej zmiennej przypiszemy wyrazenie algebraiczne, tzn. zawierajace inna zmienna juz

zadeklarowana, to ta zmienna staje sie równiez zadeklarowana. Sprawdzimy to za pomoca polecen:

sage: type(z)

wynik: <type ’sage.symbolic.expression.Expression’>

sage: type(wyr1)

wynik: <type ’sage.symbolic.expression.Expression’>

Widzimy, ze zarówno z jak i wyr1 sa wyrazeniami symbolicznymi.

1.4.2 Podstawienia

Do wyrazen algebraicznych mozemy dokonywac podstawien. Słuzy do tego celu polecenie

substitute.

sage: var(’x’)

sage: wyr2 = (x^2+2*x-1)/(x+1)

sage: wyr2.substitute(x = 4)

sage: wyr2

wynik:23

5

Czyli w wyniku otrzymalismy wartosc wyrazenia dla x = 4. Mozemy tez dokonywac podstawien innych

wyrazen algebraicznych.

sage: wyr3 = wyr2.subs(x = y^2-3)

wynik:(y2 − 3)

2+ 2 y2 − 7

y2 − 2

Czyli kazdy x wystepujacy w poprzednim wyrazeniu został zastapiony przez y2 − 3.

Zobaczmy jak wygladaja nasze wyrazenia po uproszczeniu. W powyzszym przykładzie uzyłem krótszej

nazwy subs polecenia substitute.

sage: wyr2.simplify_radical()

wynik:x2 + 2x− 1

x+ 1

37

Page 39: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

sage: wyr3.simplify_radical()

wynik:y4 − 4 y2 + 2

y2 − 2

1.4.3 Wyrazenia wymierne

Wyrazenia z ostatnich przykładów okreslamy mianem wymiernych, tzn. sa ułamkami oraz w liczniku i

w mianowniku zawieraja pewne wielomiany. Sage posiada funkcje specjalnie przeznaczone do tego typu

wyrazen. Mozemy przykładowo wyrazenie wymierne rozłozyc na sume ułamków

sage: wyr3.expand_rational()

wynik:y4

y2 − 2− 4 y2

y2 − 2+

2

y2 − 2

albo jeszcze lepiej

sage: wyr3.partial_fraction()

wynik: y2 − 2

y2 − 2− 2

Mamy tez funkcje zwracajace licznik (numerator) albo mianownik (denominator) wyrazenia.

sage: licznik = wyr3.numerator()

wynik: y4 − 4 y2 + 2

sage: mianownik = wyr3.denominator()

wynik: y2 − 2

Rozwiazmy nastepujace zadanie.

Przykład 6. Wykaz, ze róznica kwadratów dwóch kolejnych liczb całkowitych jest liczba

nieparzysta.

Z pomoca Sage-a mozemy powyzsza teze wykazac bardzo szybko poleceniem:

sage: var(’n’)

sage: roznica = (n+1)^2 - n^2; w

wynik: (n+ 1)2 − n2

38

Page 40: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.4. WYRAZENIA ALGEBRAICZNE

sage: roznica.simplify_radical()

wynik: 2n+ 1

Kazda liczba postaci 2n+1, gdzie n jest całkowita, jest oczywiscie liczba nieparzysta. Wyswietlmy kilka

takich róznic dla n z zakresu od -2 do 6 włacznie.

sage: for x in range(-2, 7):

print( roznica.subs(n=x) )

wynik: −3, −1, 1, 3, 5, 7, 9, 11, 13.

Jak widzimy, sa to liczby nieparzyste.

1.4.4 Zadania

1. Wykaz, ze dla dowolnej liczby naturalnej n, wyrazenie n5 − n jest podzielne przez 30.

2. Oblicz wartosci wyrazen

(a) 2x3 − 3x2 + 5, (b)x− 3x3 + 2

x2 + 1, (c) 5

√37x3 + 5x,

dla x ∈ 1, 2, . . . , 20.

3. Doprowadz podane wyrazenia do najprostszej postaci.

(a)x5 + x3 − 3

√x7

3√x2

, (b)log2 a

3 + log2 a5

4 log2 a− log4 a6, (c)

sin2 α+ tan2 α

1− cos2 α.

4. Dla których liczb naturalnych n ≤ 100 wyrazenien4 − 4n3 + 4n2 + 16n

384jest liczba całkowita?

39

Page 41: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

ODPOWIEDZI

1. Wsk.: Uzyc polecenia (n^5-n).factor().

2.

3. (a) − 5√x3 + 3

√x(x4 + x2), (b) 8, (c) cos2 α+1

cos2 α.

4. n ∈ 12, 24, 36, 48, 60, 72, 84, 96.

40

Page 42: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.5. RÓWNANIA, NIERÓWNOSCI I ICH UKŁADY

1.5 Równania, nierównosci i ich układy

1.5.1 Rozwiazywanie równan

Rozwiazmy na poczatek bardzo proste równanie liniowe:

2x+ 6 = 0.

W szkole wszystkich uczono, ze wiadome przenosimy na jedna strone, niewiadome na druga albo

mówiono, ze nalezy odjac 6 od obydwu stron równania, czyli

2x = −6.

No i na koniec dzielimy obie strony przez liczbe stojaca przy niewiadomej. Otrzymujemy tym samym

wynik

x = −3.

Opisane kroki mozemy powtórzyc w Sage-u. Najpierw zdefiniujmy sobie równanie.

sage: rownanie = 2*x + 6 == 0

wynik: 2x+ 6 = 0

Odejmijmy 6 od obydwu stron równania.

sage: rownanie.subtract_from_both_sides(6)

wynik: 2x = (−6)

No i na koniec dzielimy obustronnie przez 2.

sage: rownanie.divide_both_sides(2)

wynik: x = (−3)

Jak sie zapewne domyslacie, nie jest to jedyna metoda rozwiazywania tego typu równan przy pomocy

Sage-a. Jednakze chciałem pokazac, ze mozna z pomoca programu wykonywac te same operacje, które

wykonujecie podczas rozwiazywania równan. Najczesciej jednak do rozwiazywania równan stosuje sie

polecenie solve, które poznaliscie juz w poprzednich rozdziałach.

sage: solve(rownanie, x)

41

Page 43: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

wynik: [x = (−3)]

Aby sprawdzic czy otrzymane rozwiazanie jest poprawne, mozemy podstawic go do naszego równania.

sage: rownanie.substitute(x=-3)

wynik: (−3) = (−3)

czy sprawdzic wartosc logiczna całego wyrazenia:

sage: bool( rownanie.substitute(x=-3) )

wynik: True

Polecenie solve potrafi tez rozwiazywac równania zawierajace parametry. Na przykład zobaczmy jak

wyglada ogólny wzór rozwiazan równania liniowego

ax+ b = 0.

sage: var(’a,b’)

sage: r_lin = a*x + b == 0

sage: solve(r_lin, x)

wynik:

[x = − b

a

]Teraz mozemy rozwiazac dowolne równanie liniowe. Wystarczy podstawic w miejsce parametrów kon-

kretne liczby. Dla równania

3x+ 12 = 0

piszemy:

sage: solve(r_lin.subs(a=3, b=12), x)

wynik: [x = (−4)]

42

Page 44: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.5. RÓWNANIA, NIERÓWNOSCI I ICH UKŁADY

Rozwiazmy teraz troszeczke bardziej skomplikowane równanie

−3x5 + 14x4 + 33x3 − 144x2 − 28x+ 240 = 0.

sage: solve(-3*x^5 + 14*x^4 + 33*x^3 - 144*x^2 - 28*x + 240, x)

wynik:

[x = (−3) , x = 5, x =

(−4

3

), x = 2

]Zauwazmy, ze nie przyrównałem wyrazenia do zera. W takiej sytuacji polecenie solve domyslnie

przyjmuje zero. Zdajemy sobie sprawe, ze tym razem mielibysmy sporo wiecej pracy przy szukaniu

rozwiazan tego równania. Zapewne uczono was, ze najpierw powinnismy lewa strone takiego równania

(wielomian), w miare mozliwosci, rozłozyc na czynniki liniowe. Znamy rózne sposoby, aby tego doko-

nac, np. przez grupowanie wyrazów i wyłaczanie wspólnych czynników badz odgadywanie pierwiastka

i dzielenie przez odpowiedni dwumian, itd. W Sage-u mozemy to zrobic za pomoca polecenia factor.

sage: f = -3*x^5 + 14*x^4 + 33*x^3 - 144*x^2 - 28*x + 240

sage: f.factor()

wynik: −(3x+ 4)(x+ 3)(x− 2)2(x− 5)

Narysujmy teraz wykres tego wielomianu i zaznaczmy wszystkie jego pierwiastki punktami w kolorze

czerwonym.

-4 -2 2 4 6x

-300

-200

-100

100

200

300

400

y

43

Page 45: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

Rysunek ten uzyskamy za pomoca nastepujacych instrukcji:

sage: pkt = [(-3,0), (-4/3,0), (2,0), (5,0)]

sage: plot(f, x, -4, 6) + \

points( pkt,size=15,color=’red’)

Obie funkcje plot oraz points sa opisane dokładnie w rozdziale o funkcjach.

Mozemy operowac na lewej i prawej stronie równania z osobna.

sage: r_nie = sqrt(x+2*x^2) == (sin(x)+2*x^3)

sage: r_nie

wynik:√2x2 + x = 2x3 + sin (x)

sage: r_nie.left()

wynik:√2x2 + x

sage: r_nie.right()

wynik: 2x3 + sin (x)

sage: r_nie/r_nie.right()

wynik:

√2x2 + x

2x3 + sin (x)= 1

Równania mozna tworzyc ze zdefiniowanych wczesniej wyrazen algebraicznych. Jesli mamy np. trzy

wyrazenia

sage: wyr1 = sqrt(2*x+4)

sage: wyr2 = x^2-4; wyr3 = x^3-8

to mozemy utworzyc nastepujace równania:

sage: r_nie1 = wyr1 == wyr2

wynik:√2x+ 4 = x2 − 4

sage: r_nie2 = wyr1 / wyr2 == wyr3

44

Page 46: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.5. RÓWNANIA, NIERÓWNOSCI I ICH UKŁADY

wynik:

√2x+ 4

x2 − 4= x3 − 8

itd...

Mozemy tez wyodrebnic tylko jedna strone równania. Zobaczmy jak wyglada prawa strona równania

r_nie1 oraz lewa strona równania r_nie2.

sage: r_nie1.right()

wynik: x2 − 4

sage: r_nie2.left()

wynik:

√2x+ 4

x2 − 4

Widzimy, ze równanie drugie jest wymierne i w liczniku posiada pierwiastek kwadratowy. Oznacza to,

ze powinnismy zbadac jego dziedzine. Przyrównajmy wiec jego mianownik do zera i rozwiazmy to

równanie.

sage: mianownik = r_nie2.left().denominator()

wynik: x2 − 4

sage: solve(mianownik == 0, x)

wynik: [x = (−2) , x = 2]

Dodatkowo wyrazenie pod pierwiastkiem kwadratowym nie moze byc ujemne. Zatem musimy rozwiazac

nierównosc

2x+ 4 ≥ 0.

Sposoby rozwiazywania nierównosci opisze w kolejnym podrozdziale.

1.5.2 Rozwiazywanie nierównosci

Do rozwiazywania nierównosci mozemy uzyc takze polecenia solve. Zatem aby rozwiazac nierównosc

z poprzedniego przykładu wystarczy wydac polecenie:

sage: solve(2*x+4 >= 0, x)

wynik: [[x ≥ (−2)]]

45

Page 47: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

Otrzymujemy wiec, ze dziedzina wyrazenia√2x+ 4

x2 − 4jest zbiór

〈−2,∞) ∩ R \ −2, 2 = (−2,∞) \ 2.

Rozwiazmy teraz nastepujaca nierównosc:

2x2 + 7x− 11 ≤ −x2 − 2x+ 19.

Piszemy wiec polecenia:

sage: nierownosc = 2*x^2 + 7*x - 11 <= -x^2 - 2*x + 19

sage: solve(nierownosc, x)

wynik: [[x ≥ (−5) , x ≤ 2]]

Otrzymalismy rozwiazanie: x ∈ 〈−5, 2〉. Zilustrujmy je na wykresie.

sage: f1 = plot(2*x^2 + 7*x - 11, x, -7, 4, color=’red’)

sage: f1 = plot(-x^2 - 2*x + 19, x, -7, 4, color=’blue’)

sage: show(f1+f2)

-7 -6 -5 -4 -3 -2 -1 1 2 3 4x

-10

10

20

y

Widzimy, ze na przedziale 〈−5, 2〉, czerwona krzywa odpowiadajaca lewej stronie nierównosci lezy

ponizej niebieskiej.

46

Page 48: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.5. RÓWNANIA, NIERÓWNOSCI I ICH UKŁADY

1.5.3 Rozwiazywanie układów równan

Funkcja solve mozemy tez rozwiazywac układy równan. Wezmy nastepujacy układ:

3x− 2y = 1,

2x− 5y = −3

Aby znalezc rozwiazanie wystarczy wydac polecenia:

sage: var(’x,y’)

sage: solve([3*x-2*y==1, 2*x-5*y==-3], x,y)

wynik: [[x = 1, y = 1]]

Przekazujemy funkcji solve liste równan (objeta nawiasami kwadratowymi), tworzaca dany układ.

Zilustrujmy to rozwiazanie na wykresie. Moglibysmy z kazdego z równan tego układu wyznaczyc

zmienna y i narysowac wykresy powstałych funkcji przy pomocy uzytej wczesniej funkcji plot.

Jednakze nie musimy tego robic, poniewaz Sage posiada specjalna funkcje do ilustrowania równan.

Funkcja ta nazywa sie implicit_plot. Zobaczmy jak sie jej uzywa.

sage: implicit_plot(3*x-2*y==1,(x,-2,2),(y,-2,2),color="red")\

+ implicit_plot(2*x-5*y==-3,(x-2,2),(y,-2,2),color="blue")\

+ points([(1,1)], size=15,color=’green’, figsize=4)

-2 -1 0 1 2-2

-1

0

1

2

Jako pierwszy parametr przekazujemy funkcji implicit_plot równanie, które chcemy wykreslic,

nastepnie podajemy przedziały dla zmiennych x i y.

47

Page 49: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

Dowiedzielismy sie wczesniej, ze rozwiazaniem układu jest para (1, 1), wiec wziałem takie przedziały

aby zawierały jedynke. Dodatkowo uzyłem funkcji points aby podkreslic, ze otrzymane rozwiazanie

istotnie lezy w punkcie przeciecia sie tych prostych.

Rozwiazmy inny przykład, troche bardziej złozony.

y −√3x = 2

√3,

x2 + y2 = 4.

sage: var(’x,y’)

sage: solve([y-sqrt(3)*x==2*sqrt(3), x^2+y^2==4], x,y)

wynik:[[x = (−1) , y =

√3], [x = (−2) , y = 0]

]Zwrócmy uwage, ze w tym przypadku nie udałoby sie zilustrowac drugiego równania funkcja plot,

poniewaz nie mozna w sposób jednoznaczny wyznaczyc z tego równania zmiennej y. Widzimy, ze

y =√4− x2, lub y = −

√4− x2.

Funkcja implicit_plot wykona ten wykres bez przeszkód.

sage: implicit_plot(y-sqrt(3)*x==2*sqrt(3),(x,-3,3),(y,-3,3))\

+ implicit_plot(x^2+y^2==4,(x-3,3),(y,-3,3),color="blue")\

+ points([(1,1)], size=15,color=’green’, figsize=4)

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

48

Page 50: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.5. RÓWNANIA, NIERÓWNOSCI I ICH UKŁADY

1.5.4 Rozwiazywanie układów nierównosci

Jak widzimy funkcja solve radzi sobie z równaniami, nierównosciami oraz układami równan. Okazuje

sie, ze mozemy tez przy jej pomocy rozwiazywac układy nierównosci. Rozwiazmy nastepujacy układ

równan.

y < x2,

y > x.

sage: solve([y<x^2, y>x],x,y)

wynik:[[x < y, x2 − y > 0

]]Widzimy, ze dostalismy praktycznie nasze nierównosci nieznacznie przekształcone. Dzieje sie tak,

poniewaz rozwiazaniami układów nierównosci sa zwykle pewne nieskonczone zbiory, które opisuje sie

własnie nierównosciami. Mysle, ze duzo wiecej zobaczymy, gdy ten układ przedstawimy graficznie.

sage: rp = region_plot([y<x^2,y>x],(x,-2,2),(y,-2,2),\

bordercol=’blue’, incol=’lightgray’)

sage: show(f1 + f2 + rp)

-2 -1 1 2x

-2

-1

1

2

y

Jak widzimy, do narysowania zbioru rozwiazan układu nierównosci uzyłem funkcji region_plot.

Jako pierwszy parametr podajemy liste nierównosci, nastepnie przedziały w jakich maja byc wyszukane

rozwiazania. Dodatkowo opcjami bordercol oraz incol mozna sterowac kolorami obramowania

oraz wypełnienia otrzymanego obszaru.

49

Page 51: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

W przypadku układu nierównosci z jedna niewiadoma, wynik funkcji solve jest zupełnie wystarcza-

jacy. Rozwiazmy np. taki układ: (x− 1)2 < x2 + 3,

3− 2x

5>= 6− 4x− 2

3.

sage: solve([(x-1)^2<x^2+3, (3-2*x)/5<6-(4*x-2)/3], x)

wynik:

[[(−1) < x, x <

(13

2

)]]Rozwiazmy teraz nastepujace zadanie:

Przykład 7. Podaj wszystkie liczby całkowite, które spełniaja układ nierównosci:2(5x− 2) < 3(4x− 3) + 14,

4(x+ 2) < 3x+ 21.

Znajdzmy najpierw rozwiazanie tego układu w zbiorze liczb rzeczywistych.

sage: solve([ 2*(5*x-2) < 3*(4*x-3)+14, \

4*(x+2) < 3*x+21], x)

wynik:

[[(−9

2

)< x, x < 13

]]Teraz mozemy wyswietlic wszystkie liczby całkowite spełniajace otrzymane nierównosci.

sage: min_x = ceil(-9/2)

sage: for x in range(min_x, 13):

print(x)

wynik: −4,−3,−2,−1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12

Uzyłem funkcji ceil do znalezienia liczby całkowitej nie wiekszej od −9

2= −4.5 czyli min_x = -4.

50

Page 52: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.5. RÓWNANIA, NIERÓWNOSCI I ICH UKŁADY

1.5.5 Zadania

1. Rozwiaz równania:

(a) x+ 2 = 3x− 5,

(b) x2 + 3x− 1 = 0,

(c) 3√2x2 − 4x− 4 = 0,

(d) log3(x+ 1) = 27,

(e) logx 125 = 5,

(f) 3x(x2 − 4) = 0,

(g)x+ 2

x− 1=

3

2x− 5,

(h) (2x− 1)(x+ 2) = (x− 1)2.

2. Rozwiaz nierównosci:

(a) 3x2 − 5x− 1 ≥ 0,

(b) x− 2 ≤ (x+ 3)(x− 1),

(c) 3√4x+ 6 < 2x+ 8,

(d) x5 + (x− 4)3 + x2 > 2x4 + 3x,

(e)x2 − 3x− 4

x+ 1> 0,

(f)4x− 5

2x− 1≤ 3x+ 2

2x− 5.

3. Rozwiaz układy równan i zilustruj rozwiazanie na wykresie.

(a)

5x+ 2y = 4

x− 4y = −2,

(b)

x− 2y + 3z = 6

−2x− 4y − 3z = 0

x+ y − z = 3,

(c)

x2 + y = 5

√x+ 4y = 0,

(d)

x2 + 2x+ y2 − 4x = 20

2x− y = 0.

4. Rozwiaz układy nierównosci graficznie.

(a)

x+ 2y ≤ 2

x+ 3y ≥ −2,

(b)

3x2 − y < 6

−2x− y ≥ 0

(c)

2x2 − y ≥ 6

, 0.5x− y > −6,

(d)

√x− y > 0,

y > x2.

51

Page 53: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

5. Rozwiaz analitycznie układy nierównosci.

(a)

x+ 2

3x− 1> 0

x+ 3 ≥ −2,

(b)

x2 − 4x ≥ 0

x− 1

2 + x< 3.

ODPOWIEDZI

1. (a)[x =

(72

)](b)[x = − 1

2

√13− 3

2, x = 1

2

√13− 3

2

](c)[x = −

√3 + 1, x =

√3 + 1

](d) [x = 7625597484986] (e)

[x = e(

15 log(125))

](f) [x = (−2) , x = 2]

(g)[x = − 3

2

√2 + 1, x = 3

2

√2 + 1

](h)[x = − 1

2

√37− 5

2, x = 1

2

√37− 5

2

]

2. (a)[[x ≤ − 1

6

√37 + 5

6

],[x ≥ 1

6

√37 + 5

6

]](b)[[x ≤ − 1

2

√5− 1

2

],[x ≥ 1

2

√5− 1

2

]](c)[[x > (−2) , x <

(− 7

8

)]](d) [[x > 2.26322664925]] (e) [[x > 4]]

(f)[[x >

(12

), x ≤ − 1

4

√745 + 31

4

],[x >

(52

), x ≤ 1

4

√745 + 31

4

]]

3. (a)[[x =

(611

), y =

(711

)]](b)[[x =

(9623

), y =

(− 39

23

), z =

(− 12

23

)]](c) [[x = 2.31964624131, y = (−0.380759651308)]]

(d)[[x = − 1

5

√101 + 1

5, y = −2

5

√101 + 2

5

],[x = 1

5

√101 + 1

5, y = 2

5

√101 + 2

5

]]

-2 -1 0 1 2-2

-1

0

1

2

(a)

52

Page 54: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

1.5. RÓWNANIA, NIERÓWNOSCI I ICH UKŁADY

-4 -3 -2 -1 0 1 2 3 4

-4

-2

0

2

4

6

(c)

-4 -2 0 2 4 6

-4

-2

0

2

4

6

(d)

4.

-2 2 4 6 8 10

-4

-3

-2

-1

1

2 (a)-2 -1 1 2

-6

-4

-2

2

(b)

-15 -10 -5 5 10

-5

5

10

(c)

0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1 (d)

5. (a)[[(−5) < x, x < (−2)] ,

[(13

)< x

], [x = (−5)]

](b)[[(−2) < x, x < 0] , [4 < x] ,

[x <

(− 7

2

)], [x = 0] , [x = 4]

].

53

Page 55: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SAGE

54

Page 56: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

Rozdział 2

Funkcje

2.1 Podstawowe wiadomosci o funkcjach

W rozdziale tym chciałbym omówic pewne zagadnienia zwiazane z pojeciem funkcji. Funkcja jest jed-

nym z wazniejszych pojec współczesnej matematyki. Po raz pierwszy tego terminu uzył G. W.Leibniz

(1646-1716) 1, jednak nie podał on dokładnej definicji. Zrobił to w 1718 roku J. Bernoulli (1667-1748).

Oczywiscie nie znaczy to, ze matematycy dopiero w XVII wieku zaczeli stosowac funkcje, tzn. do-

strzegac zaleznosci miedzy róznymi wielkosciami i je badac. Przeciez bez znajomosci pojecia funkcji

jestesmy w stanie stwierdzic, ze pole koła zalezy od długosci jego promienia, ze przebyta droga przez

dany obiekt zalezy od czasu poruszania sie tego obiektu czy tez wykonujac jakiekolwiek obliczenia na

liczbach wiemy, ze wynik bedzie zalezał od tych liczb. Do tych wszystkich stwierdzen nie potrzebujemy

definicji funkcji. Jednakze kiedy badamy wielkosci powiazane ze soba pewna relacja, to scisła definicja

tej relacji w znaczny sposób ułatwia badanie tego zwiazku. Definicja tych zwiazków jest zwykle pewna

funkcja.

Przyjrzyjmy sie nastepujacemu zadaniu.

Przykład 8. Wykaz, ze róznica miedzy szescianem dowolnej liczby naturalnej i ta liczba jest

podzielna przez 6.

Mowa jest tu o pewnym zwiazku miedzy liczbami, a dokładniej liczbami naturalnymi i pewna grupa liczb

naturalnych podzielnych przez 6. Jesli wykazemy, ze własnosc te posiada piec, dziesiec czy moze nawet

tysiac poczatkowych liczb naturalnych, to i tak nie bedzie to dowodem tezy postawionej w zadaniu.

Zwykle jednak rozwiazujac zadania zwiazane z liczbami naturalnymi czy całkowitymi przeprowadzamy

test dla kilku przykładowych liczb, co moze dac nam pewne wskazówki do rozwiazania badz upewnic,

1G. W. Leibniz, Methodus tangentium inversa, seu de functionibus, 1673.

55

Page 57: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

ze zadanie rzeczywiscie jest dobrze sformułowane. Zobaczmy wiec jak wyglada dziesiec poczatkowych

róznic. Pomoge sobie programem Sage.

sage: var(’n’)

sage: liczby_naturalne = range(1,11)

sage: for n in liczby_naturalne:

sage: print n^3-n, "= 6 *", (n^3-n)/6

W wyniku tych polecen zobaczymy liste wartosci wyrazenia n3−n dla n ∈ 〈1, 11〉∩N oraz ich rozkład

na iloczyn liczby 6 i pewnej liczby całkowitej.

Poleceniem var(’n’) utworzylismy zmienna o na-

zwie n. Nastepnie zdefiniowalismy liste liczb natu-

ralnych z zakresu od 1 do 10 włacznie poleceniem

range(1,11). Widzimy wiec, ze druga z liczb po-

winna byc o jeden wieksza od wymaganego zakresu. Na

koniec instrukcja for n in liczby_naturalne

przechodzimy zmienna n po wczesniej zdefiniowanej

liscie liczb i wyswietlamy dla kazdej z nich wyrazenie

n^3-n, "= 6 *", (n^3-n)/6. Wiecej na temat

definiowania wyrazen arytmetycznych i geometrycznych

dowiecie sie w rozdziale 4.

Aby wykazac, ze własnosc te posiadaja wszystkie liczby naturalne, mozemy posłuzyc sie ogólnym

wzorem tejze róznicy, tzn. n3 − n gdzie n oznacza pewna liczbe naturalna. Zauwazmy wtedy, ze mozna

ja przedstawic w postaci iloczynu trzech kolejnych liczb naturalnych,

n3 − n = n(n2 − 1) = n(n+ 1)(n− 1) = (n− 1)n(n+ 1).

Oznacza to, ze wsród tych liczb przynajmniej jedna jest parzysta oraz jedna podzielna przez 3. Jest to

wystarczajacy dowód na to, ze liczba n3 − n jest podzielna przez 6.

Powyzsze uzasadnienie jest wystarczajace, poniewaz zdefiniowalismy relacje wiazaca kazda liczbe na-

turalna n z dokładnie jedna liczba postaci n3 − n.

56

Page 58: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.1. PODSTAWOWE WIADOMOSCI O FUNKCJACH

2.1.1 Definicja funkcji, dziedzina, przeciwdziedzina i zbiór wartosci

Relacje zdefiniowane na elementach dwóch zbiorów nazywamy funkcjami. Precyzyjniej, jesli mamy

dwa zbiory X i Y , to relacje, która kazdemu elementowi zbioru X przyporzadkowuje dokładnie jeden

element zbioru Y nazywamy funkcja. Zbiór X nazywamy zbiorem argumentów lub dziedzina,

a zbiór Y przeciwdziedzina.

Wygodnie jest funkcjom nadawac nazwy, np. f, g, h, itp. Zapis f : X → Y oznacza funkcje o nazwie

f okreslona na zbiorze X o wartosciach w zbiorze Y . Upraszcza on wiele sformułowan, np. zamiast

mówic, ze funkcja f dla argumentu x przyjmuje wartosc y, mozemy zapisac krótko: f(x) = y.

Poza dziedzina i przeciwdziedzina jest jeszcze jeden zbiór scisle zwiazany z dana funkcja f , który

nazywamy zbiorem wartosci funkcji. Zbiór ten zwykle oznaczamy symbolem Wf i definiujemy go

nastepujaco:

Wf =f(x) : dla wszystkich x ∈ X

.

Mozemy powiedziec, ze jest to podzbiór przeciwdziedziny funkcji składajacy sie tylko z tych wartosci,

które zostały przypisane pewnym argumentom. Definicja funkcji nie wymaga, aby kazdemu elementowi

przeciwdziedziny cos przyporzadkowac.

Funkcje z naszego przykładu moglibysmy zdefiniowac nastepujaco:

f(n) = n3 − n,

gdzie n jest dowolna liczba naturalna. Z okreslenia tej funkcji wynika, ze jej dziedzina jest zbiór

liczb naturalnych, tj. Df = N, natomiast przeciwdziedzina mógłby byc zbiór liczb naturalnych lub

wymiernych czy tez zbiór liczb rzeczywistych. Wynika to z faktu, ze wartosci tej funkcji zawsze

sa liczbami naturalnymi czyli naleza do wszystkich wymienionych zbiorów. Aby wyznaczyc zbiór

wartosci funkcji musimy znalezc zbiór optymalny w takim sensie, ze kazdej liczbie z tego zbioru bedzie

odpowiadac pewien argument (w naszym przypadku pewna liczba naturalna). Mozemy go zdefiniowac

nastepujaco:

Wf =n3 − n : dla wszystkich n ∈ N

= 0, 6, 24, 60, 120, 210, . . ..

57

Page 59: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

2.1.2 Wykres funkcji

Jak wiemy, funkcje liczbowe daja sie ilustrowac za pomoca wykresu. Z wykresu mozemy łatwo odczytac

wiele interesujacych nas własnosci funkcji. Gdy mamy funkcje dana wzorem y = f(x), wtedy jej wykres

jest zbiorem punktów na płaszczyznie, postaci

(x, f(x)

).

Mozna tez powiedziec, ze wykres funkcji jest zbiorem punktów, które sa rozwiazaniami równania

y = f(x).

Na przykład funkcje liniowa f(x) = 23x + 1 mozemy traktowac jako równanie dwóch zmiennych x i y

postaci y = 23x+ 1. Zbiorem rozwiazan tego równania sa punkty lezace na nastepujacej prostej:

-4 -2 2 4x

-2

-1

1

2

3

4

y

Powyzszy wykres uzyskałem przy pomocy polecen:

sage: var(’x’)

sage: f(x) = (2/3)*x+1

sage: plot(f, x, -5, 5)

Jak widzimy, program Sage pozwala w bardzo

podobny sposób definiowac funkcje jak to robimy

w matematyce. Najpierw zdefiniowałem nazwe

zmiennej poleceniem var(’x’) (nazwa moze

byc dowolna litera), a nastepnie okresliłem funk-

cje wzorem: f(x)= (2/3)* x + 1.

We wzorze funkcji mozemy wykorzystywac wszystkie znane operatory arytmetyczne, np.

+, -, *, / gdzie symbol "*" oznacza mnozenie oraz "/" dzielenie. Mamy do dyspozycji tez

wiele innych znanych operatorów, np. potegowanie, logarytmy, itd. Na koniec wydałem polecenie

plot(f, x, -5, 5), dzieki któremu program narysował wykres funkcji f dla x ∈ 〈−5, 5〉.

58

Page 60: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.1. PODSTAWOWE WIADOMOSCI O FUNKCJACH

Zwrócmy uwage, ze nie kazde równanie, w którym wystepuja dwie zmienne x i y opisuje pewna funkcje.

Przykładowo zbiór punktów spełniajacych równanie

x3 − y2 + xy = 0,

tworzy nastepujaca krzywa:

-0.2 -0.1 0.1 0.2

-0.1

0.1

0.2

Widzimy, ze ta krzywa nie jest wykresem zadnej funkcji jednej zmiennej, gdyz w przeciwnym przypadku

jednemu argumentowi przyporzadkowane byłyby dwie wartosci. Jesli byłby to wykres funkcji, to kazda

pionowa prosta mogłaby go przeciac w co najwyzej jednym punkcie.

Wykresy krzywych, które nie sa funkcjami mozemy uzyskac za pomoca funkcji parametric_plot.

Uzywamy jej podobnie jak funkcji plot, jednakze rysowana krzywa musi byc zdefiniowana parame-

trycznie.

sage: var(’x’)

sage: parametric_plot( (t^2-t, t^3-t^2), (t, 0, 1.2))

Kazdy punkt (x, y) spełniajacy równanie x3 − y2 + xy = 0 jest postaci(t2 − t, t3 − t2

). Oznacza to, zex = t2 − t

y = t3 − t2 ⇒ y = t · (t2 − t) = t · x.

Wstawiajac t = yx

do pierwszego równania otrzymujemy

x =y2

x2− y

x⇒ x3 = y2 − xy.

59

Page 61: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

Po przeniesieniu wszystkiego na lewa strone otrzymujemy wyjsciowe równanie

x3 − y2 + xy = 0.

Wrócmy na chwile do naszego poprzedniego przykładu. Powiedzielismy, ze dziedzina funkcji f(n) =

n3 − n jest zbiór liczb naturalnych. Zatem wykres tej funkcji składa sie z pewnych punktów na płasz-

czyznie. Kilka poczatkowych punktów wykresu tej funkcji wyglada nastepujaco:

2 4 6 8 100

200

400

600

800

1000

Powyzszy wykres punktowy wykonałem w programie Sage poleceniem point.

sage: point([(n, n^3-n) for n in range(1, 11)])

Funkcja point przyjmuje jako argument liste punktów. Listy w programie Sage definiujemy zapisujac

ich elementy w nawiasach kwadratowych, kazdy oddzielajac przecinkiem, np. [1,2,3,4,5]. W

naszym przykładzie została utworzona lista z nastepujaca zawartoscia

[(1,0), (2,6),... , (10, 10^3-10)]

Utworzylismy ja bardzo łatwo poleceniem [(n, n^3-n)for n in range(1, 11)], które

tworzy pary (n, n^3-n) dla kolejnych liczb naturalnych z zakresu od 1 do 10 włacznie i dodaje je

do listy.

60

Page 62: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.1. PODSTAWOWE WIADOMOSCI O FUNKCJACH

2.1.3 Okreslanie dziedziny funkcji

Bardzo czesto autorzy definicji funkcji podaja tylko wzór postaci y = f(x). Wtedy musimy sami okreslic

dziedzine. Zwykle przyjmujemy najwiekszy zbiór na którym funkcja moze byc okreslona.

Gdyby powyzsza funkcja była zdefiniowana wzorem

f(x) = x3 − x

bez zadnych dodatkowych załozen, to za dziedzine przyjelibysmy cały zbiór liczb rzeczywistych, tzn.

Df = R. Mozemy to zrobic, bowiem kazda liczbe rzeczywista mozna podniesc do szescianu, czy tez

kazde dwie liczby rzeczywiste mozemy od siebie odjac. Spójrzmy jak wygladałby wykres naszej funkcji

w przedziale (−5, 5).

-4 -2 2 4x

-100

-50

50

100

y

Rysujac wykresy funkcji w programie Sage mamy do dyspozycji wiele ciekawych opcji. Mozemy

sterowac wartosciami najmniejszymi ymin oraz najwiekszymi ymax, opcja gridlines=True po-

kazemy siatke, czy tez opcja axes_labels=[’x’,’y’] dopisze do osi odpowiednie etykiety. Mo-

zemy zmienic kolor, np. color=’red’ lub grubosc linii thickness=2. Mamy jeszcze wiele in-

nych opcji do dyspozycji. Wydajac polecenie plot? zobaczycie opis ich wszystkich.

Zastosujmy kilka z wymienionych wyzej opcji instrukcji plot do poprzedniej funkcji.

sage: f(x) = x^3-x

sage: plot(f, x, -5,5,ymin=-20,ymax=20,gridlines=True,\

axes_labels=[’x’,’y’],color=’red’,thickness=2,\

legend_label=r’$f(x) = x^3-x$’,fontsize=11)

61

Page 63: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

-4 -2 2 4x

-20

-10

10

20

y

f(x) =x3 −x

Przy okreslaniu dziedziny funkcji zwykle musimy rozwiazac pewne równanie czy nierównosc. Okreslmy

dziedzine nastepujacej funkcji

f(x) =

√3x2 + x

x2 + 3x− 4.

Wiemy, ze pod pierwiastkiem kwadratowym nie moze byc liczb ujemnych, wiec:

sage: var(’x’)

sage: solve(3*x^2+x>=0, x)

wynik:

[[x ≤

(−1

3

)], [x ≥ 0]

]Dodatkowo mianownik musi byc rózny od zera, zatem:

sage: solve(x^2+3*x-4==0, x)

wynik: [x = 1, x = (−4)]

Otrzymujemy wiec, ze dziedzina funkcji jest zbiór

Df =

(−∞,

1

3

⟩∪ 〈0,∞) \ −4, 1.

62

Page 64: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.2. NAJCZESCIEJ ZADAWANE PYTANIA DOTYCZACE FUNKCJI

2.2 Najczesciej zadawane pytania dotyczace funkcji

Rozpatrzmy funkcje zdefiniowana wzorem

f(x) =−4x2 − 4x+ 11

x2 + 2x− 3.

Jak widzimy, jest to funkcja wymierna, gdyz mamy ułamek oraz w liczniku i mianowniku znajduje sie

pewien wielomian. Najwiekszy zbiór na którym mozemy ja okreslic jest postaci

Df = R \ −3, 1.

Nie mozemy dołaczyc liczb −3 i 1, gdyz wtedy mianownik byłby równy zero, a wiemy przeciez, ze

dzielenie przez zero jest niewykonalne. Punkty, w których mianownik sie zeruje znajdziemy poleceniem

sage: solve(x^2+2*x-3, x)

wynik: [x = (−3) , x = 1]

Jesli szkicujemy wykres funkcji w przedziale zawierajacym punkty wykluczone z dziedziny, to powin-

nismy poinformowac o tych punktach instrukcje plot. Słuzy do tego opcja exclude.

sage: f(x) = (-4*x^2-4*x+11)/(x^2+2*x-3)

sage: plot(f, x, -7,4,exclude=[-3,1],ymin=-20,ymax=10)

-6 -4 -2 2 4x

-10

-5

5

10

y

63

Page 65: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

Opcja exclude=[-3,1] pominelismy argumenty, dla których mianownik sie zeruje. Mozemy do-

datkowo uzyc opcji detect_poles="show", która dorysuje w pominietych punktach asymptoty

pionowe czyli proste, do których wykres funkcji zbliza sie dowolnie blisko lecz nigdy ich nie przecina.

-6 -4 -2 2 4x

-20

-15

-10

-5

5

10

15

y

Z wykresu funkcji mozemy odczytac wiekszosc jej istotnych własnosci. Z powyzszego wykresu, gdyby-

smy nawet nie znali wzoru funkcji, potrafilibysmy odpowiedziec na nastepujace pytania:

1. Jaka jest dziedzina funkcji?

Powyzszy rysunek przedstawia wykres danej funkcji na stosunkowo małym przedziale (−7, 4).

Mozemy jednak przyjac, ze Df = R \ −3, 1, gdyz szkicujac wykres funkcji zawsze staramy sie

pokazac jej najwazniejsze własnosci, a takimi z pewnoscia sa punkty, w których funkcja nie jest

okreslona. Mozemy wiec przyjac, ze poza tym przedziałem funkcja zachowuje sie juz „stabilnie”,

tzn. nie zmienia swoich istotnych własnosci. Zakładamy wiec, ze jest okreslona w kazdym punkcie

zbioru (−∞,−7〉 ∪ 〈4,∞).

2. Jaki jest zbiór wartosci funkcji?

Tu mysle, ze kazdy z czytelników odpowie natychmiast, ze Wf = R.

3. Zbadaj róznowartosciowosc funkcji.

Funkcja przedstawiona na wykresie nie moze byc róznowartosciowa,2 poniewaz dowolna linia

pozioma moze przeciac wykres funkcji róznowartosciowej w co najwyzej jednym punkcie.

2Funkcja jest róznowartosciowa, jesli dla kazdych dwóch róznych argumentów przyjmuje dwie rózne wartosci.

64

Page 66: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.2. NAJCZESCIEJ ZADAWANE PYTANIA DOTYCZACE FUNKCJI

4. Zbadaj monotonicznosc funkcji.

Funkcja jest malejaca w przedziałach

(−∞,−3), (−3,−1) oraz , (1,∞).

Zwrócmy uwage, ze błedne byłoby stwierdzenie: funkcja jest malejaca na zbiorze

(−∞,−3) ∪ (−3,−1) ∪ (1,∞) = R \ −3, 1.

Gdybysmy wzieli np. x1 = −4 < x2 = 2, to wtedy

f(x1) = f(−4) = −7.4 < f(x2) = f(2) = −2.6.

Czyli dla tych dwóch argumentów x1 < x2 wartosci funkcji wzrastaja, tzn. spełniaja nierównosc

f(x1) < f(x2). Ale taka własnosc (wraz ze wzrostem argumentów wzrastaja wartosci) posiadaja

tylko funkcje rosnace.3

Aby odpowiadac na pytania bardziej szczegółowe, zwykle musimy znac wzór funkcji. Czasami na

podstawie wykresu jestesmy w stanie go znalezc. W przypadku gdy wiemy jakiego rodzaju jest ta

funkcja, np. liniowa, kwadratowa, wykładnicza, itd., zadanie jest dosc łatwe. W bardziej ogólnych

sytuacjach posługujemy sie specjalnymi algorytmami do poszukiwania wzorów funkcji. Jesli kogos

interesuje to zagadnienie, to zachecam do poczytania sobie aproksymacji badz interpolacji. Program

Sage ma kilka takich algorytmów zaimplementowanych. W dalszej czesci tego rozdziału bedziecie mieli

okazje poznac jedna z nich.

Dodajmy wiec do listy powyzszych pytan jeszcze kilka, ale takich gdzie musimy skorzystac ze wzoru

naszej funkcji, tzn.

f(x) =−4x2 − 4x+ 11

x2 + 2x− 3.

5. Wyznacz miejsca zerowe funkcji.

Wiecie zapewne, ze miejsca zerowe leza w punktach przeciecia wykresu funkcji z osia Ox. Mozna

byłoby próbowac okreslic ich pozycje z wykresu. Przygladajac sie jeszcze raz wykresowi tej

funkcji moge stwierdzic, ze miejsca zerowe znajduja sie w poblizu punktów −2 18

oraz 58. Jeszcze

raz podkreslam, ze w poblizu a nie dokładnie. Aby miec pewnosc jakie to sa punkty musimy

3Funkcja f jest rosnaca, jesli dla x1, x2 ∈ Df , takich ze x1 < x2 zachodzi nierównosc f(x1) < f(x2), natomiastfunkcja f jest malejaca, jesli dla x1, x2 ∈ Df , takich ze x1 < x2 zachodzi nierównosc f(x1) > f(x2).

65

Page 67: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

rozwiazac równanie f(x) = 0, tzn.

−4x2 − 4x+ 11

x2 + 2x− 3= 0.

W programie Sage mozemy je rozwiazac poznanym juz poleceniem solve.

sage: solve(f, x)

wynik:

[x = −

√3− 1

2, x =

√3− 1

2

]Widzimy wiec, ze nasza wczesniejsza próba odgadniecia miejsc zerowych była obarczona błedem.

Gdybysmy chcieli to równanie rozwiazac recznie, to przyrównalibysmy licznik do zera (wiadomo,

ze mianownik nigdy nie moze byc zerem). Czyli rozwiazalibysmy nastepujace równanie kwadra-

towe:

−4x2 − 4x+ 11 = 0.

Znajac wzory na wyróznik trójmianu kwadratowego (potocznie zwany ”delta”) oraz wzory na jego

pierwiastki obliczymy miejsca zerowe. Skorzystajmy ponownie z programu Sage i wykonajmy te

obliczenia. Mozemy nawet zdefiniowac ogólny wzór na trójmian kwadratowy.

sage: var(’a,b,c’)

sage: trojmian = a*x^2 + b*x + c == 0

sage: solve( trojmian, x )

wynik:

[x = −b+

√b2 − 4 ac

2 a, x = −b−

√b2 − 4 ac

2 a

]Otrzymalismy tym sposobem znane wzory na pierwiastki trójmianu kwadratowego. Podstawiajac

teraz w miejsce parametrów odpowiednie liczby otrzymamy wynik.

sage: solve(trojmian.subs(a=-4,b=-4,c=11), x)

wynik:

[x = −

√3− 1

2, x =

√3− 1

2

]Oczywiscie w obydwu przypadkach otrzymalismy to samo. Zachecam do samodzielnego spraw-

dzenia tych wyników.

Uzylismy funkcji subs aby podstawic w równaniu trojmian w miejsca odpowiednich parametrów

liczby.

66

Page 68: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.2. NAJCZESCIEJ ZADAWANE PYTANIA DOTYCZACE FUNKCJI

6. Jaka wartosc posiada funkcja dla argumentu x = −2?

Obliczanie wartosci funkcji dla danego argumentu jest chyba najbardziej naturalna operacja wy-

konywana podczas pracy z funkcjami. Aby udzielic odpowiedzi na to pytanie, wystarczy obliczyc

f(−2) =−4 · (−2)2 − 4 · (−2) + 11

(−2 + 3)(−2− 1)= −1.

Program Sage poda nam ten wynik po wykonaniu polecenia

sage: f(-2)

wynik: −1

7. Dla jakich argumentów funkcja przyjmuje wartosc y = 5?

Bardzo łatwo jest obliczyc wartosc funkcji dla danego argumentu, jak to widzielismy w poprzed-

nim punkcie. W tym zadaniu odwracamy sytuacje, majac wartosc funkcji, pytamy dla jakich argu-

mentów funkcja ja przyjmuje. Musimy wiec rozwiazac równanie

−4x2 − 4x+ 11

x2 + 2x− 3= 5.

Mozemy takie równania rozwiazywac geometrycznie, pytajac w jakich punktach prosta o równa-

niu y = 5 przetnie wykres naszej funkcji. Przyjrzyjmy sie ich wykresom.

-6 -4 -2 2 4x

-10

-5

5

10

y

67

Page 69: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

sage: plot(f, x, -7, 4, exclude=[-3,1],\

detect_poles="show", ymin=-10, ymax=10)\

+ plot(5, x, -7, 4, color=’red’)

Narysowałem tym razem wykresy dwóch funkcji w jednym układzie współrzednych. Aby tego dokonac

wystarczy dodac do siebie dwa wykresy operatorem +.

Widzimy, ze istnieja dwa argumenty, w których funkcja przyjmuje wartosc 5, jednak trudno jest z

wykresu okreslic ich dokładne połozenie. Znajdzmy je rozwiazujac równanie w tradycyjny sposób.

W pierwszym kroku mozna pozbyc sie kreski ułamkowej mnozac obustronnie równanie przez cały

mianownik, otrzymujac

−4x2 − 4x+ 11 = 5(x+ 3)(x− 1).

Wymnazajac prawa strone i przenoszac wszystko na lewa otrzymamy do rozwiazania równanie

kwadratowe

9x2 + 14x− 26 = 0.

Obliczamy wiec delte ∆ = 1132,√∆ = 2

√283 oraz pierwiastki

x1 =−14− 2

√283

18=

−7−√283

9, x2 =

−7 +√283

9.

Chciałbym zwrócic uwage jeszcze na powyzszy pierwiastek z delty. Pamietamy jak uczono nas,

ze zawsze o ile to mozliwe wyłaczamy całosci przed znak pierwiastka. Aby to zrobic najlepiej

dobrze jest znac rozkład kanoniczny liczby spod pierwiastka.

Operacje te mozemy wykonac w Sage’u poleceniem factor.

sage: delta = 14^2-4*9*(-26)

sage: factor(delta)

wynik: 22 · 283

Stad otrzymujemy√∆ =

√1132 = 2

√283

Zadanie z tego podpunktu mozemy uzyskac natychmiast poleceniem solve.

sage: solve(f(x)==5, x)

wynik:

[x = −1

9

√283− 7

9, x =

1

9

√283− 7

9

]

68

Page 70: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.2. NAJCZESCIEJ ZADAWANE PYTANIA DOTYCZACE FUNKCJI

8. Dla jakich argumentów funkcja przyjmuje wartosci niedodatnie?

Pytanie to jest równowazne nastepujacemu: rozwiazac nierównosc f(x) ≤ 0, tzn.

−4x2 − 4x+ 11

(x+ 3)(x− 1)≤ 0.

Zapisałem mianownik w postaci iloczynowej4, gdyz znam jego miejsca zerowe −3, 1.

Rozwiazujac nierównosci wymierne zwykle zastepujemy kreske ułamkowa iloczynem, gdyz

licznik

mianownik≤ 0 tylko wtedy, gdy licznik ·mianownik ≤ 0.

Oczywiscie pamietamy o dziedzinie wyrazenia wymiernego, tzn. z rozwiazania nierównosci z pra-

wej strony nalezy wykluczyc te, dla których mianownik sie zeruje. A wiec mamy do rozwiazania

nierównosc

(−4x2 − 4x+ 11) · (x+ 3)(x− 1) ≤ 0,

gdzie x 6= −3 i x 6= 1. Poniewaz znamy juz miejsca zerowe funkcji, czyli miejsca zerowe licznika,

mozemy trójmian z lewego nawiasu równiez zapisac w postaci iloczynowej

−4(x+√3 + 0.5)(x−

√3 + 0.5) · (x+ 3)(x− 1) ≤ 0.

Nierównosci wielomianowe najprosciej rozwiazuje sie geometrycznie, metoda tzw. „wezyka”.

Polega ona na naszkicowaniu wezyka, który przechodzi od prawej strony osi liczbowej do lewej,

przecinajac ja w miejscach gdzie leza pierwiastki wielomianu o krotnosci nieparzystej, badz odbija

sie od niej dla pierwiastków o krotnosci parzystej. Start wezyka zalezy od znaku współczynnika

stojacego przy najwyzszej potedze zmiennej x.

Zapiszmy nasz wielomian w postaci ogólnej.

sage: w = -4*(x+sqrt(3)+0.5)*(x-sqrt(3)+0.5)*(x+3)*(x-1)

sage: w.simplify_radical()

wynik: −4.0x4 − 12.0x3 + 15.0x2 + 34.0x− 33.0

Skoro −4 < 0, wiec wezyk startuje od dołu (w przeciwnym przypadku startowałby z góry).

4Jesli ∆ > 0 i x1, x2 sa pierwiastkami trójmianu ax2+bx+c, to mozemy go zapisac w postaci iloczynowej a(x−x1)(x−x2).

69

Page 71: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

Wykonajmy szkic wezyka za pomoca programu Sage.

sage: plot(-4*(x+sqrt(3)+0.5)*(x-sqrt(3)+0.5) \

* (x+3)*(x-1), x, -4, 2, fill = 0)

-3 -2 -1 1x

-40

-30

-20

-10

y

Widzimy, ze wezyk przecina os Ox w kazdym punkcie, gdyz wszystkie pierwiastki sa jednokrotne.

Aby podac rozwiazanie naszej nierównosci wystarczy wskazac przedziały, w których wykres

(wezyk) lezy pod osia Ox. Dla ułatwienia tego zadania, uzyłem opcji fill=0, która koloruje

pole miedzy wykresem funkcji a osia Ox. Wartosc 0 oznacza prosta o równaniu f(x) = 0 czyli os

Ox. Otrzymujemy odpowiedz

x ∈ (−∞,−3) ∪ 〈−√3− 0.5, 1) ∪ 〈

√3− 0.5,∞).

Zwrócmy uwage, ze prawy kraniec pierwszego i drugiego przedziału jest otwarty, gdyz −3 i 1 nie

naleza do dziedziny funkcji.

9. Okresl zbiór wartosci funkcji na przedziale 〈−1, 1).

Wiemy, ze nasza funkcja w przedziale 〈−1, 1) jest malejaca, zatem w lewym krancu tego prze-

działu musi byc wartosc najwieksza, natomiast w prawym wartosc najmniejsza. Poniewaz 1 6∈ Df ,

a wartosci funkcji w poblizu jedynki z lewej strony robia sie coraz mniejsze, wiec najmniejsza

wartosc funkcji nie istnieje i przyjmujemy wtedy, ze jest to −∞. Wartosc najwieksza natomiast,

to f(−1) = − 114

. Zatem na przedziale 〈−1, 1) funkcja f przyjmuje wartosci ze zbioru:

Wf =

(−∞,−11

4

⟩.

70

Page 72: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.2. NAJCZESCIEJ ZADAWANE PYTANIA DOTYCZACE FUNKCJI

2.2.1 Zbiór wartosci funkcji kwadratowej

W arkuszach maturalnych bardzo czesto pojawia sie zadanie podobne do tego z punktu 9 ale dotyczy

ono zwykle funkcji kwadratowej. Ogólna postac takiego zadania wyglada nastepujaco:

Przykład 9. Okresl zbiór wartosci funkcji f(x) = ax2 + bx+ c na przedziale 〈x1, x2〉.

Okreslenie zbioru wartosci funkcji kwadratowej na danym przedziale powinnismy zaczac od obliczenia

wartosci funkcji na krancach danego przedziału oraz znalezieniu wierzchołka paraboli. Zwykle wierz-

chołek oznaczamy jako pare (p, q). Nastepnie mamy dwie mozliwosci:

. p nalezy do przedziału 〈x1, x2〉 – wówczas wartoscia najmniejsza funkcji jest najmniejsza z liczb

f(x1), f(x2) i q, natomiast wartosc najwieksza funkcji jest najwieksza z nich.

. p nie nalezy do przedziału 〈x1, x2〉 – wtedy wartoscia najmniejsza funkcji jest mniejsza z liczb

f(x1), f(x2), natomiast wartosc najwieksza jest liczba wieksza z tych dwóch.

Zilustrujmy te metode na konkretnym przykładzie.

Przykład 10. Okresl zbiór wartosci funkcji f(x) = −x2 + 4x+ 5 na przedziale 〈−2, 4〉.

Obliczamy

f(−2) = −(−2)2 + 4 · (−2) + 5 = −7; f(4) = −42 + 4 · 4 + 5 = 5,

oraz

p = − b

2a= − 4

2 · (−1)= 2.

Wtedy q = f(p) = −22 + 4 · 2 + 5 = 9. Mozna posłuzyc sie równiez wzorem q = − ∆4a

.

Poniewaz p = 2 ∈ 〈−2, 4〉, wiec wyznaczamy najwieksza i najmniejsza liczbe ze zbioru −7, 5, 9, co

daje odpowiedz: Wf = 〈−7, 9〉.

Rozwiazmy teraz to zadanie z pomoca Sage’a.

sage: lk = -2 # lewy kraniec przedziału

sage: pk = 4 # prawy kraniec przedziału

sage: a = -1; b = 4; c = 5;

sage: f(x) = a*x^2+b*x+c

sage: p = -b/(2*a)

sage: q = f(p)

71

Page 73: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

sage: if p > lk and p < pk:

fmin = min( f(lk), f(pk), q )

fmax = max( f(lk), f(pk), q )

sage: else:

fmin = min( f(lk), f(pk) )

fmax = max( f(lk), f(pk) )

sage: print ’min =’, fmin

sage: print ’max =’, fmax

wynik: min = −7 max = 9

Teraz aby okreslic zbiór wartosci dowolnej funkcji kwadratowej w danym przedziale, wystarczy zmienic

wartosci kranców przedziału lk, pk oraz podac odpowiednie współczynniki a, b, c.

Program obliczy wartosci współczynników p i q, po czym instrukcja if p > lk and p < pk:

sprawdzi czy p ∈ (lk, pk). Jesli tak, to wartosci minimalna i maksymalna sa wyszukiwane w zbiorze

f(lk), f(pk), q, w przeciwnym przypadku w zbiorze f(lk), f(pk).

Na koniec zobaczmy wykres naszej funkcji w przedziale 〈−2, 4〉 z zaznaczonym wierzchołkiem oraz

punktem (−2,−7).

-3 -2 -1 1 2 3 4

-7-6-5-4-3-2-1

123456789

72

Page 74: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.2. NAJCZESCIEJ ZADAWANE PYTANIA DOTYCZACE FUNKCJI

2.2.2 Porównywanie ze soba dwóch funkcji.

Czesto sie zdarza, ze badamy kilka funkcji i interesuja nas relacje jakie miedzy nimi zachodza. Na przy-

kład, moze nas interesowac dla jakich argumentów jedna funkcja przyjmuje wartosci wieksze niz druga

albo czy ich wykresy maja wspólne punkty, itd. Dla przykładu rozwiazmy nastepujace zadanie:

Przykład 11. Dla jakich argumentów funkcja f(x) = −x3 − x2 + 2x przyjmuje wartosci

mniejsze niz funkcja g(x) = −2x− 4?

Mozemy to zadanie sformułowac bez uzycia terminu „funkcja”, np.

Przykład 12. Rozwiaz nierównosc −x3 − x2 + 2x < −2x− 4, gdzie x ∈ R.

Rozwiaze najpierw to zadanie jak zwykła nierównosc. Przenoszac wszystko na lewa strone otrzymujemy

−x3 − x2 + 4x+ 4 < 0.

Pogrupujmy parami wyrazy wielomianu po lewej stronie nierównosci oraz wyłaczmy wspólny czynnik

przed nawias, tzn.

−x2(x+ 1) + 4(x+ 1) < 0.

Otrzymujemy stad

(4− x2)(x+ 1) < 0.

Rozkładajac jeszcze trójmian z pierwszego nawiasu na czynniki liniowe (zamiast obliczac delte i pier-

wiastki warto zauwazyc, ze mozna tu skorzystac ze wzoru skróconego mnozenia na róznice kwadratów

dwóch liczb) dostajemy nierównosc

(2 + x)(2− x)(x+ 1) < 0.

Narysujmy teraz wykres wielomianu stojacego z lewej strony.

sage: plot((2+x)*(2-x)*(x+1), x, -3, 3, fill=0)

73

Page 75: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

-3 -2 -1 1 2 3x

-4

-2

2

4

6

y

Rozwiazaniem nierównosci jest wiec zbiór (−2,−1) ∪ (2,∞). Wynik ten mozemy uzyskac równiez

poleceniem:

sage: solve((2+x)*(2-x)*(x+1)<0, x)

wynik: [[x > (−2) , x < (−1)] , [x > 2]] Prawda, ze łatwo i szybko?

Nasze zadanie mozemy tez rozwiazac geometrycznie. Przyjrzyjmy sie wykresom

-3 -2 -1 1 2 3x

-10

-8

-6

-4

-2

2

4

y

f(x) =−x3 −x2 +2xg(x) =−2x−4

uzyskanym za pomoca polecen

sage: f(x) = -x^3-x^2+2*x

sage: g(x) = -2*x-4

74

Page 76: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.3. FUNKCJE POZNANE W SZKOLE

sage: wykres_f = plot(f, x, -3, 3, color=’green’,\

legend_label=r’$f(x) = -x^3-x^2+2x$’)

sage: wykres_g = plot(g, x, -3, 3,\

legend_label=r’$g(x) = -2x-4$’,\

fill=f, fillcolor=(0.9,0.9,0.9) )

sage: wykres_f + wykres_g

Pytamy w jakich przedziałach wykres funkcji f lezy ponizej wykresu funkcji g. Z rysunku łatwo

odczytac, ze dla

x ∈ (−2,−1) ∪ (2,∞).

2.3 Funkcje poznane w szkole

Rozwiazmy teraz kilka zadan dotyczacych funkcji, które poznaliscie badz dopiero poznacie w szkole.

2.3.1 Funkcja liniowa

Prawdopodobnie funkcja liniowa była pierwsza funkcja, która poznaliscie w szkole.

Wiecie zatem, ze charakteryzuje ona wielkosci wprost proporcjonalne. Oznacza to, ze jesli x i y ozna-

czaja pewne wielkosci wprost proporcjonalne, to zachodzi miedzy nimi zwiazek

y = a · x

dla pewnej liczby rzeczywistej a 6= 0. Przykładowo jesli x zwiekszymy dwukrotnie, to y tez zwiekszy

sie dwukrotnie

a(2x) = 2(ax) = 2y.

Ogólny wzór funkcji liniowej zawiera jeszcze jeden współczynnik b ∈ R, tzn.

f(x) = ax+ b.

Jest to funkcja bardzo łatwa w analizie, bo jak wiemy jej wykresem jest linia prosta. Zatem wystarczy,

ze poznamy dwa punkty jej wykresu i juz mozemy naszkicowac wykres. Majac równanie funkcji, zna-

75

Page 77: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

lezienie dwóch punktów jest banalnie proste, gdyz mozemy wybrac dowolne dwie liczby (bo dziedzina

funkcji liniowej jest cały zbiór liczb rzeczywistych) i obliczyc dla nich wartosci.

Troche trudniej jest w sytuacji odwrotnej, tzn. majac dane dwa punkty znalezc wzór funkcji liniowej.

Wezmy np. punkty A = (−3, 2) i B = (2,−1). Zadanie mozemy rozwiazac na kilka sposobów.

Przykładowo na lekcjach geometrii poznaliscie zapewne wzór na równanie prostej przechodzacej przez

dwa punkty A = (xA, yA), B = (xB, yB), które jest postaci:

y − yA =yB − yAxB − xA

(x− xA).

Innym sposobem jest wykorzystanie ogólnego wzoru funkcji liniowej. Podstawiajac współrzedne punk-

tów do równania

y = ax+ b,

otrzymamy układ równan, z którego bedziemy mogli obliczyc współczynniki a i b. Znajdzmy równanie

prostej tym własnie sposobem (pierwszy sposób pozostawiam jako cwiczenie dla czytelnika). Otrzymu-

jemy wiec układ równan a · (−3) + b = 2

a · 2 + b = −1

Łatwo go rozwiazemy metoda przeciwnych współczynników. Wystarczy pomnozyc pierwsze równanie

przez (−1) i dodac do drugiego.

5a = −3 czyli a = −3

5= −0.6.

Otrzymalismy proste równanie z jedna niewiadoma

b = −1− 2a = −1− 2 · (−0.6) = 0.2.

Polecenia solve mozna uzyc równiez do rozwiazywania układów równan, np.

sage: var(’a, b’)

sage: solve( [a*(-3)+b==2, a*2+b==-1], a, b )

wynik:

[[a =

(−3

5

), b =

(1

5

)]]

76

Page 78: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.3. FUNKCJE POZNANE W SZKOLE

Otrzymujemy wiec równanie prostej

f(x) = −0.6x+ 0.2.

Program Sage wykona te prace za nas jeszcze szybciej. Otóz posiada specjalna metode find_fit,

która potrafi dobierac współczynniki poszukiwanej funkcji, tak aby była jak najlepiej dopasowana do

listy punktów, które podajemy jako parametr. W naszym przypadku wydajemy instrukcje:

sage: var(’a, b’)

sage: funkcja_lin(x) = a * x + b

sage: find_fit( [(-3,2), (2,-1)], funkcja_lin )

Po wykonaniu zobaczymy współczynniki: wynik: [a = (−0.6) , b = 0.2]

Jak widzimy, dla funkcji liniowej to dopasowanie jest bardzo dokładne. Otrzymalismy te same współ-

czynniki jak z poprzednich obliczen. Dla bardziej złozonych funkcji to dopasowanie moze nie byc tak

dokładne. Na dokładnosc wpływa przede wszystkim liczba punktów przekazanych funkcji find_fit.

Przyjrzyjmy sie teraz wykresowi funkcji, której wzór otrzymalismy.

sage: f(x) = -0.6 * x + 0.2

sage: plot(f, -1.5, 1.5,\

legend_label=r’$f(x)=-\frac35x+\frac15$’)

-1.5 -1 -0.5 0.5 1 1.5

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

1f(x) =−3

5x+1

5

77

Page 79: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

Widzimy, ze jest ona malejaca w całej swojej dziedzinie (Df = R). Jesli a < 0, to funkcja liniowa

maleje, natomiast dla a > 0 rosnie.

Łatwo jest wyznaczyc punkt przeciecia wykresu funkcji liniowej z osia Oy, gdyz jest to zawsze punkt o

współrzednych (0, b), czyli w tym przypadku (0, 210). Z tego powodu b nazywany jest współczynnikiem

przesuniecia, gdyz powoduje on przesuniecie wykresu funkcji f(x) = ax o b jednostek w pionie. Ry-

sujac wykres, mozemy najpierw narysowac prosta przechodzaca przez poczatek układu współrzednych,

czyli punkt (0, 0), a potem przesunac o odpowiednia liczbe jednostek w góre badz w dół.

-1.5 -1 -0.5 0.5 1 1.5

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

1f(x) =−3

5x+1

5

g(x) =−35x

Miejsce zerowe mozemy wyznaczyc wzorem x0 = − b

ao ile a 6= 0 lub instrukcja solve(a*x+b, x).

Sa one postaci

x0 = − 0.2

−0.6=

2

6=

1

3.

Zatem punkt(13, 0)

jest przecieciem wykresu tej funkcji z osia Ox.

2.3.2 Funkcja kwadratowa

Druga, dosc obszernie omawiana funkcja w szkole, jest z pewnoscia funkcja kwadratowa. Wiemy,

ze wykresem funkcji kwadratowej jest parabola. Znali ja juz starozytni Grecy. W III wieku p.n.e.

Appolonius z Perge, matematyk grecki opisał w swojej ksiedze „Stozkowe” miedzy innymi parabole.

Dlaczego ksiega nosiła taki tytuł? Otóz wiekszosc krzywych które poznaliscie w szkole, tj. prosta

(mozemy ja tez do nich zaliczyc), parabola, hiperbola, okrag, elipsa, mozna otrzymac z przekroju stozka

odpowiednia płaszczyzna.

Parabola powstaje przez przeciecie stozka płaszczyzna równoległa do jego tworzacej i nie zawierajaca

jego wierzchołka. Mozemy to zobaczyc na ponizszych rysunkach.

78

Page 80: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.3. FUNKCJE POZNANE W SZKOLE

Otrzymałem je poleceniem, które widzicie ponizej. W interaktywnym arkuszu dołaczonym do tej ksiazki

znajdziecie te instrukcje. Bedziecie mogli dokładniej sie przyjrzec temu przekrojowi. Ja umiesciłem tylko

trzy zdjecia z róznych perspektyw.

sage: implicit_plot3d(x^2+y^2-z^2,\

(x,-15,15), (y,-15,15),(z,-15,15),\

opacity=0.3, aspect_ratio=1)+\

implicit_plot3d(2*sqrt(2)*x+sqrt(2)*y-3*z+12,

(x,-15,15), (y,-15,15), (z,-15,15)

,opacity=0.5, color=’gray’, aspect_ratio=1)

Juz Galileusz odkrył, ze jak wyrzucicie kamien wysoko przed siebie, to tor jego lotu podczas spadania

wyznaczy krzywa w kształcie paraboli.

Wiele własnosci funkcji kwadratowej mieliscie okazje sobie przypomniec podczas rozwiazywania za-

dan z poprzedniego podrozdziału. Pojawił sie tam wzór na wyróznik kwadratowy (delte), wzory na

pierwiastki i postac iloczynowa czy tez sposób wyznaczania zbioru wartosci tej funkcji na ustalonym

przedziale. Oprócz postaci ogólnej i liniowej funkcja kwadratowa moze przyjmowac jeszcze postac ka-

noniczna

f(x) = a(x− p)2 + q,

gdzie punkt (p, q) =(− b

2a,−∆

4a

)jest wierzchołkiem paraboli.

Kazda z tych postaci ma swoje szczególne zastosowanie. Z postaci iloczynowej łatwo jest wskazac

miejsca zerowe funkcji. Widac tez przedziały, w których funkcja przyjmuje wartosci dodatnie badz

ujemne, co wykorzystujemy przy rozwiazywaniu nierównosci kwadratowych. Z postaci kanonicznej

natomiast łatwo zbadac monotonicznosc czy podac zbiór wartosci funkcji.

79

Page 81: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

Rozwiazmy nastepujace zadanie:

Przykład 13. Wiedzac, ze liczby −1 i 2 sa miejscami zerowymi funkcji f(x) = ax2+bx−3

znajdz współczynniki a i b oraz zapisz ja w postaci kanonicznej.

Skoro liczby −1 i 2 sa miejscami zerowymi funkcji, wiec f(−1) = f(2) = 0, co daje nastepujacy układ

równan: a · (−1)2 + b · (−1)− 3 = 0

a · 22 + b · 2− 3 = 0

czyli a− b− 3 = 0

4a+ 2b− 3 = 0.

Mnozac pierwsze równanie przez 2 i dodajac do drugiego otrzymujemy 6a − 9 = 0, czyli a = 32.

Wstawiajac np. do pierwszego równania otrzymujemy b = a− 3 = 32− 3 = − 3

2. Mozemy zapisac wiec

postac ogólna funkcji

f(x) =3

2x2 − 3

2x− 3.

Obliczmy teraz współrzedne wierzchołka paraboli, gdyz przydadza nam sie do rozwiazania.

p = −− 3

2

2 · 32

=1

2

q = f(p) =3

2

(1

2

)2

− 3

2· 12− 3 = −27

8.

Otrzymujemy wiec

f(x) =3

2

(x− 1

2

)2

+−27

8.

W programie Sage współczynniki a, p i q znajdziemy posługujac sie uzyta juz wczesniej funkcja

find_fit.

sage: var(’a,p,q’)

sage: find_fit([(-1,0), (2,0), (0,-3)], a*(x-p)^2+q,\

parameters=[a,p,q], variables=[x])

wynik: [a = 1.5, p = 0.5, q = (−3.375)]

80

Page 82: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.3. FUNKCJE POZNANE W SZKOLE

Zwrócmy uwage, ze oprócz punktów wyznaczonych przez miejsca zerowe podałem jeszcze jeden punkt

o współrzednych (0,−3). Łatwo go wyznaczyc, gdyz jest on punktem przeciecia paraboli z osia Oy.

Skoro lezy na osi Oy, to pierwsza jego współrzedna musi byc 0. Jak podstawicie do postaci ogólnej w

miejsce x zero, to w wyniku otrzymacie oczywiscie c. Zatem jest to punkt (0, c). Gdybysmy nie podali

tego punktu, to program miałby problem ze znalezieniem współczynników, poniewaz parabol posia-

dajacych miejsca zerowe w punktach (−1, 0), (2, 0) jest nieskonczenie wiele. Na ponizszym rysunku

przedstawiłem kilka z nich. Kolorem niebieskim narysowana jest parabola z naszego zadania.

-2 -1 1 2 3

-5

5

10 a=1a=−1.5a=3a=−5

Rozwiazmy jeszcze jedno zadanie zwiazane z funkcja kwadratowa.

Przykład 14. Wiedzac, ze ponizszy wykres jest wykresem funkcji kwadratowej

f(x) = ax2 + bx+ c,

znajdz współczynniki a, b, c. Zapisz te funkcje w postaci kanonicznej i okresl przedziały

monotonicznosci tej funkcji.

-4 -3 -2 -1 1 2 3 4x

-1.5

-1

-0.5

0.5

1

1.5

2

2.5

3

y

Z wykresu funkcji mozemy odczytac jedno miejsce zerowe x1 = −4 oraz wierzchołek paraboli (1, 2.5).

81

Page 83: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

Te dane sa wystarczajace, aby zbadac monotonicznosc funkcji. Otóz funkcja jest rosnaca dla x ∈

(−∞, 1〉 oraz jest malejaca dla x ∈ 〈1,∞).

Pozostaje znalezc brakujace współczynniki. Nieuprzejmy autor tego zadania ukrył przed nami dosc

wazna czesc wykresu, która jak wiemy zawiera drugie miejsce zerowe. Gdybysmy je znali, to powta-

rzajac metode z poprzedniego zadania, dostalibysmy rozwiazanie.

Mozemy oczywiscie znalezc brakujace miejsce zerowe. Wystarczy zauwazyc, ze sa one połozone syme-

trycznie wzgledem prostej x = p czylix1 + x2

2= p.

Wstawiajac za x1 = −4 oraz p = 1, obliczamy x2 = 6. Reszte zadania pozostawiam czytelnikowi jako

cwiczenie.

Rozwiazmy to zadanie teraz inna metoda. Majac współrzedne wierzchołka paraboli i dowolny inny

punkt lezacy na niej mozemy znalezc trójmian kwadratowy wykorzystujac jego postac kanoniczna.

Podstawiajac do a(x− p)2 + q nasze dane, otrzymujemy

f(x) = a(x− 1)2 + 2.5.

Wiemy równiez, ze punkt (−4, 0) lezy na wykresie tej funkcji. Po podstawieniu do powyzszego wzoru,

otrzymujemy

0 = a(−4− 1)2 + 2.5.

Zatem a = −0.1. Szukane współczynniki otrzymamy po sprowadzeniu postaci kanonicznej do ogólnej.

f(x) = −0.1(x− 1)2 + 2.5 = −0.1(2−2x+ 1) + 2.5 = −0.1x2 + 0.2x+ 2.4.

2.3.3 Funkcja wymierna

Wspomniałem wczesniej o funkcji wymiernej, czyli takiej, w której definicji uzywamy kreski ułamkowej

(operacji dzielenia) oraz w liczniku oraz w mianowniku znajduje sie wielomian.

Jedna z prostszych jej odmian jest tak zwana funkcja homograficzna. Charakteryzuje ona wielkosci

odwrotnie proporcjonalne, tzn.

y =a

x,

przy czym musimy koniecznie załozyc, ze x 6= 0.

Jesli przykładowo trzykrotnie wzrosnie zmienna x, to wartosc y trzykrotnie zmaleje,

a

3 · x=

1

3· ax=

1

3· y.

82

Page 84: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.3. FUNKCJE POZNANE W SZKOLE

Podobnie jak parabola, wykres funkcji homograficznej jest równiez krzywa stozkowa, która nazywamy

hiperbola. Powstaje przez przeciecie stozka płaszczyzna, która nie jest równoległa do tworzacej ani tez

prostopadła do jego osi obrotu.

Z pewnoscia rysowaliscie w szkole wykresy hiperbol w prostokatnym układzie współrzednych. Wiecie

wiec, ze obie osie układu sa asymptotami jej wykresu. Własnosc ta powoduje, ze funkcja homograficzna

dobrze ilustruje operacje przesuwania wykresu o dany wektor [p, q].

Przesunmy wykres funkcji f(x) = 5x

o wektor [−2, 1]. Wiemy, ze wzór otrzymanej funkcji bedzie wtedy

wygladał nastepujaco:

h(x) =5

x+ 2+ 1.

-10 -8 -6 -4 -2 2 4 6 8x

-8

-6

-4

-2

2

4

6

8

10

y

f(x) =5x

h(x) = 5x+2

+1

83

Page 85: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

sage: f(x) = 5/x

sage: plot(f, x, -10, 8, exclude=[0], color=’green’) +\

plot(f(x+2)+1, x, -10, 8, exclude=[-2],\

detect_poles="show") +\

plot(1, x, -10, 8, linestyle=’--’, color=’gray’)

Aby zobaczyc asymptote pionowa, powstała po przesunieciu hiperboli, nalezy uzyc

opcji detect_poles="show". Natomiast pozioma asymptote narysowałem poleceniem

plot(1, x, -10, 8, linestyle=’--’, color=’gray’).

Rozwiazmy nastepujace zadanie.

Przykład 15. Przekształcmy wzór funkcji f(x) =1 + 3x

4− 6xdo postaci kanonicznej, tzn.

f(x) =e

x− p+ q.

Program Sage posiada funkcje partial_fraction przeznaczona specjalnie dla wyrazen wymier-

nych. Rozkłada on wyrazenie na sume ułamków, które w licznikach posiadaja tylko liczby. My potrze-

bujemy dokładnie takiej postaci. Zatem

sage: var(’x’)

sage: f = (1+3*x)/(4-6*x)

sage: f.partial_fraction()

wynik: − 3

2 (3x− 2)− 1

2

Otrzymujemy wiec e = − 32, p = 2

3oraz q = − 1

2. Czyli funkcja moze byc zapisana w postaci:

f(x) = − 3

2(3x− 2)− 1

2.

84

Page 86: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.3. FUNKCJE POZNANE W SZKOLE

2.3.4 Funkcja wykładnicza i logarytmiczna

Sa jeszcze dwie klasy funkcji, które mogliscie poznac w szkole:

Funkcja wykładnicza Funkcja logarytmiczna

f(x) = ax f(x) = loga x

a > 0 ∧ a 6= 1

Napisałem definicje tych funkcji obok siebie, gdyz sa one ze soba zwiazane w sposób szczególny. Otóz sa

funkcje, które mozemy odwracac. Odwrócenie funkcji f polega na znalezieniu drugiej funkcji zwykle

oznaczanej symbolem f−1 takiej, ze dla kazdego argumentu x ∈ Df zachodzi zwiazek

f−1(f(x)

)= x.

Zachodzi tez zwiazek odwrotny, tzn. dla kazdego argumentu x ∈ Df−1 mamy

f(f−1(x)

)= x.

Jak sie zapewne domyslacie, funkcja wykładnicza i logarytmiczna sa funkcjami odwracalnymi i kazda z

nich jest odwrotnoscia drugiej. Zatem prawdziwe sa wzory

loga(ax)= x, oraz aloga x = x. (2.1)

Wynikaja one z definicji logarytmu, gdyz jak wiemy

loga b = c ⇔ ac = b

Dziedzina funkcji logarytmicznej jest zbiór (0,∞), a zbiorem wartosci jest R. Dla funkcji wykładniczej

mamy odwrotna sytuacje, tzn. dziedzina jest zbiór liczb rzeczywistych, a zbiorem wartosci jest przedział

(0,∞). I tak dzieje sie zawsze w przypadku funkcji wzajemnie odwrotnych. Narysujmy wykresy tych

funkcji dla a = 2. Logarytm o podstawie a liczby b, czyli loga b w programie Sage obliczamy poleceniem

log(b,a).

sage: plot(2^x, x,-4,7, color=’red’, aspect_ratio=0.1)

sage: plot(log(x,2),x,0,60, exclude=[0], aspect_ratio=6)

85

Page 87: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

-4 -2 2 4 6x

10

20

30

40

50

60

y

y=2x

10 20 30 40 50 60x

-4

-2

2

4

6

y

y=log2x

Widzimy, ze obie funkcje sa wówczas rosnace, przy czym wykładnicza rosnie wiele razy szybciej od

logarytmicznej.

Uzyłem opcji aspect_ratio aby odpowiednio wyskalowac osie tych układów. Dla funkcji wykład-

niczej ustawiłem aspect_ratio=0.1, co oznacza, ze długosc jednej jednostki poziomej stanowi

dziesiec jednostek pionowych. W przypadku funkcji logarytmicznej uzyłem aspect_ratio=6, co

oznacza, ze długosc jednej jednostki pionowej stanowi szesc jednostek poziomych. Spróbujcie naryso-

wac te wykresy bez tych opcji.

Dla a = 0.5 wykresy wygladaja nastepujaco:

-6 -4 -2 2 4x

10

20

30

40

50

60

y

y=(12)x

10 20 30 40 50 60x

-6

-4

-2

2

4

y

y=log0.5x

Tym razem obie funkcje sa malejace. Ogólnie gdy a ∈ (0, 1), to funkcja wykładnicza i logarytmiczna

maleja, natomiast dla a > 1 obie rosna.

86

Page 88: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.3. FUNKCJE POZNANE W SZKOLE

Przykład 16. Napisz wzór funkcji wykładniczej f(x) = ax−p + q majac jej wykres.

-6 -4 -2 2x

-2

2

4

6

8

y

Podaj wzór funkcji do niej odwrotnej.

Z wykresu od razu widzimy, ze q = −2.

Łatwo odczytamy z wykresu współrzedne dwóch punktów: (−2, 0) oraz (0, 6). Podstawmy je do rów-

nania f(x) = ax−p − 2. Wtedya−p − 2 = 6 ⇒ a−p = 8

a−2−p − 2 = 0 ⇒ a−p · a−2 = 2.

Podstawiajac teraz pierwsze równanie do drugiego, otrzymamy

8 · a−2 = 2 ⇒ a−2 = 4−1 ⇒ a2 = 4 ⇒ a = 2.

Wybieramy tylko rozwiazanie dodatnie, gdyz wiemy, ze a > 0. Po podstawieniu do pierwszego z równan

otrzymujemy równosc

2−p = 8 ⇒ 2−p = 23.

Czyli p = −3 oraz f(x) = 2x+3 − 2.

Sprawdzmy w programie Sage, czy nie popełnilismy nigdzie błedu:

sage: var(’a,p,q’)

sage: a = solve(8*a^(-2) == 2, a)

sage: p = solve(2^(-p) == 8, p)

wynik: [a = (−2) , a = 2], [p = (−3)]

Jak widzimy, wszystko sie zgadza.

87

Page 89: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

Aby znalezc funkcje odwrotna, musimy z równania y = 2x+3 − 2 wyznaczyc zmienna x.

sage: x,y = var(’x,y’)

sage: f = y == 2^(x+3) -2

sage: f.solve(x)

wynik:

[x = −3 log (2)− log (y + 2)

log (2)

]

Przekształcmy to równanie samodzielnie. Logarytmujac obustronnie ponizsze równanie logarytmem o

podstawie 2, na podstawie wzorów (2.1) y + 2 = 2x+3 otrzymujemy log2(y + 2) = x+ 3. Zatem

x = log2(y + 2)− 3.

Wzór funkcji odwrotnej jest nastepujacy:

f−1(x) = log2(x+ 2)− 3.

Widzimy, ze otrzymalismy go po zamianie zmiennej x ze zmienna y w poprzednim równaniu. Korzy-

stajac z własnosci logarytmu wynik, który dał nam program Sage mozemy przekształcic do takiej samej

postaci. Proponuje wykonac to zadanie jako cwiczenie.

Sage domyslnie definiuje logarytmy o podstawie e, gdzie e jest tzw. liczba Eulera. Nalezy o tym

pamietac, gdyz zwykle w ksiazkach matematycznych log(a) oznacza logarytm dziesietny liczby a.

Liczba e jest wazniejsza liczba w matematyce niz liczba π, która doskonale znacie. Odkrył ja w XVI

wieku szkocki matematyk John Napier (Neper), z tego powodu nazywana jest równiez liczba Nepera.

Neper ułozył tablice logarytmów, które były bardzo pomocne przy skomplikowanych obliczeniach

astronomicznych. Znacie zapewne nastepujaca ciekawa własnosc logarytmów:

loga (b · c) = loga b+ loga c.

Przez wiele lat wykorzystywano ja do obliczania iloczynów duzych liczb. Dzieki niej mnozenie liczb

zastepujemy sumowaniem. Znajdzmy tym sposobem na przykład iloczyn 128 · 512.

log2(128 · 512) = log2 128 + log2 512 = 7 + 8 = 15.

88

Page 90: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.3. FUNKCJE POZNANE W SZKOLE

Majac teraz odpowiednie tablice, w których moge odczytac dla jakiej liczby logarytm przy podstawie 2

wynosi 15, dostane wynik. Oczywiscie wiemy, ze szukana liczba jest

215 = 32768.

Czyli 128 · 512 = 32768. Dzis, majac do dyspozycji komputery, nie musimy korzystac z tego typu

udogodnien. Sage potrafi wykonywac mnozenie na bardzo duzych liczbach w mgnieniu oka.

sage: %time 99412424142345342342 * 9994313131231343242423

wynik: 993558896013381860643561589195210232574666

wynik: CPU times: user 0.00 s, sys: 0.00 s, total: 0.00 s

Program Sage moze nam podac wartosc liczby Eulera z bardzo duza dokładnoscia, np. zobaczmy dla 30

miejsc po przecinku (mógłbym zamiast 30 uzyc 30000, lecz wtedy ksiazka zbyt mocno zwiekszyłaby

swoja objetosc).

sage: e = exp(1)

sage: e.N(digits=30)wynik: 2.71828182845904523536028747135

Wyrazenie exp(x) oznacza funkcje wykładnicza y = ex, zatem exp(1) = e1 = e.

Liczba e posiada wiele definicji. Jedna z nich jest granica ciagu

e = limn→∞

(1 +

1

n

)n

.

Oznacza to, ze jak bedziemy obliczac kolejne wyrazenia(1 + 1

n

)ndla coraz to wiekszych liczb natural-

nych, to bedziemy otrzymywac lepsze przyblizenie liczby e. Obliczmy je dla liczb naturalnych od 1 do

10, a potem od 10000 do 10010.

sage: var(’n’)

sage: for n in range(1,11):

print N( (1 + 1/n)^n )

sage: for n in range(10000,10010):

print N( (1 + 1/n)^n )

89

Page 91: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

Widzimy, ze gdy n jest wieksze niz 10000, wartosci nie róznia sie juz tak bardzo od siebie i mozemy

okreslic wartosc liczby e do trzech miejsc po przecinku, tzn. e ≈ 2.718.

Mozna tez wyznaczyc wartosc liczby e wzorem

e =

∞∑n=0

1

n!.

sage: e = sum([1/factorial(n) for n in range(0,200)])

sage: e.N()

wynik: 2.71828182845905

2.4 Zadania

1. Podaj wzór funkcji liniowej f(x) = ax + b i naszkicuj jej wykres wiedzac, ze jest ona malejaca,

przecina os OY w punkcie (0,−1) oraz współczynnik a jest jednym z rozwiazan równania

x2 − 9 = 0.

2. Wykresem funkcji liniowej jest odcinek o koncach w punktach A = (−3, 1) i B = (2, 2). Podaj

dziedzine tej funkcji, zbiór wartosci oraz punkty przeciecia z osiami układu współrzednych.

3. Funkcja f okreslona jest wzorem

f(x) =

−2x+ 1, dla x ≤ 1,

3x− 4, dla x > 1.

Naszkicuj wykres, podaj miejsca zerowe oraz okresl zbiór wartosci tej funkcji.

4. Dla podanych funkcji kwadratowych podaj miejsca zerowe i postac iloczynowa (o ile istnieja) oraz

współrzedne wierzchołka paraboli i postac kanoniczna. Nastepnie naszkicuj ich wykresy.

90

Page 92: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.4. ZADANIA

(a) f(x) = 2x2 − 3x− 2, (b) f(x) = −5x2 + 20x− 20,

(c) f(x) = 3x2 + 4x+ 5, (d) f(x) = −x2 + 5x− 4,

5. Funkcja f(x) = −x2 + x + 6 została zdefiniowana na przedziale 〈−3, 2〉. Naszkicuj wykres tej

funkcji oraz podaj jej zbiór wartosci.

6. Wiedzac, ze ponizszy wykres jest wykresem funkcji kwadratowej f(x) = ax2 + bx + c, znajdz

współczynniki a, b, c, zapisz ja w postaci kanonicznej i okresl przedziały monotonicznosci tej

funkcji.

-2 -1 1 2 3 4x

-3

-2

-1

1

2

3

y

7. Funkcja f(x) = ax2 + 2x + 1 posiada tylko jedno miejsce zerowe. Znajdz współczynnik a oraz

okresl przedziały monotonicznosci tej funkcji.

8. Dla funkcji wymiernej f(x) =−4

x− 2− 5 podaj dziedzine funkcji, zbiór wartosci, okresl mono-

tonicznosc i naszkicuj jej wykres.

9. Niech bedzie okreslona funkcja wzorem f(x) =3x− 2

4− 2x. Podaj miejsce zerowe tej funkcji oraz

punkt przeciecia sie wykresu tej funkcji z osia OY. Czy do wykresu tej funkcji nalezy punkt o

współrzednych A =

(√3− 1,

√3

2− 1

)?

10. Naszkicuj wykres funkcji f(x) =2− 2x

x+ 3za pomoca pakietu Sage i na jego podstawie znajdz jej

wzór w postaci f(x) =e

x− p+ q.

11. Okresl dziedzine funkcji homograficznej f(x) =ax+ 5

3x− 2oraz wyznacz współczynnik a wiedzac,

ze wykres tej funkcji przechodzi przez punkt A = (2, 1). Dla jakich argumentów funkcja przyj-

muje wartosci wieksze niz 1?

91

Page 93: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

12. Oblicz

(a) log343 7, (b) log√8 32, (c) log 132712, (d) log 1√

5

3√25, (e) 3log3 123, (f) 64log6

6√362 .

13. Naszkicuj wykresy podanych funkcji, okresl ich dziedziny, zbiór wartosci oraz miejsca zerowe

(a) f(x) = log 12(x− 5), (b) f(x) = log3(x+ 1)− 4, (c) f(x) = log2 x

2.

14. Znajdz współczynniki a i p funkcji wykładniczej f(x) = ax−p majac jej wykres na ponizszym

rysunku. Dla jakich argumentów funkcja przyjmuje wartosci z przedziału 〈2, 128〉?

-3 -2 -1 0 1 2x

4

8

12

16

y

15. Znajdz współczynniki a, p funkcji logarytmicznej f(x) = loga(x + p) majac jej wykres na

ponizszym rysunku. Dla jakiego argumentu funkcja przyjmuje wartosc 0.5?

-4 -3 -2 -1 1 2 3 4x

-4

-2

2

4

y

92

Page 94: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

2.4. ZADANIA

ODPOWIEDZI

1. f(x) = −3x− 1.

-2 -1.5 -1 -0.5 0.5 1x

-4

-2

2

4

y

Zad. 1.

-3 -2 -1 1 2 3

-2-1

1234567 Wf =

⟨−1,∞)

Zad.

3.

2. f(x) = 0.2x+1.6, Df = 〈−3, 2〉, Wf = 〈1, 2〉. Punkty przeciecia z osia Ox nie istnieja natomiast

z osia Oy: (0, 1.6).

3. Wf = 〈−1,∞). Wykres jest widoczny na rysunku powyzej.

4. (a) f(x) = 2(x− 0.5)(x− 2), f(x) = 2(x− 34)2 − 25

8.

(b) f(x) = −5(x− 2)2 – jest to jednoczesnie postac liniowa i kanoniczna.

(c) Skoro ∆ = −44 < 0, wiec postac iloczynowa nie istnieje. Postac kanoniczna: f(x) =

3(x+ 23)2 + 11

3.

(d) f(x) = −(x− 1)(x− 4), f(x) = −(x− 52)2 + 9

4.

-4 -2 2 4

10

20

30

40

50

60(a)

-4 -2 2 4

-200

-150

-100

-50

(b)

-4 -2 0 2 4

20

40

60

80

100

(c)

-4 -2 2 4

-50

-40

-30

-20

-10

(d)

Zad. 4.

5. Wf = 〈−∞, 254〉

93

Page 95: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 2. FUNKCJE

-2 2 4 6

-20

-15

-10

-5

5

10

Zad. 5.

-2 2 4 6

-20

-15

-10

-5

5

10

Zad. 8.

6. a = − 23, b = 1 1

3, c = 2. Funkcja rosnie dla x ∈ (−∞, 1〉, maleje dla x ∈ 〈1,∞). Postac

kanoniczna: f(x) = − 23(x− 1)2 + 8

3.

7. Poniewaz ∆ = 0, wiec a = 1. Skoro p = x0 = −1, wiec f dla x ∈ (−∞− 1〉 oraz f dla

x ∈ 〈−1,∞).

8. Df = R \ 2, Wf = R \ −5.

9. Miejsce zerowe: x0 =23. Punkt przeciecia z osia Ox: (0,− 1

2). Punkt (

√3− 1,

√32− 1) nie lezy na

wykresie tej funkcji.

10. Asymptote pozioma znajdziecie poleceniem: limit((2-2*x)/(x+3), x=infinity).

Natomiast poleceniem ((2-2*x)/(x+3)).partial_fraction() zobaczycie szukana

postac funkcji. Zatem e = 8, p = −3, q = −2, tzn. f(x) = 8x+3

− 2.

11. a = − 12, Df = R \ 2

3, f(x) > 1 dla x ∈ ( 2

3, 2).

12. (a) 13, (b) 10

3, (c) −36, (d) − 4

3, (e) 123, (f) 16.

13.

5 6 7 8 9 10

-2

-1

0

1

2

3

4

5(a)

50 100 150 200

-4

-3

-2

-1

(b)

1 2 3 4 5

-10

-5

(c)

Zad. 13.

14. f(x) = 2x+2. f(x) ∈ 〈2, 128〉 dla x ∈ 〈−1, 5〉.

15. a = 2, p = 4. f(x) = 0.5 dla x =√2− 4.

94

Page 96: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

Rozdział 3

Rachunek prawdopodobienstwa

i statystyka matematyczna

Rachunek prawdopodobienstwa, to dział matematyki zajmujacy sie badaniem zdarzen zachodzacych

podczas wykonywania doswiadczen losowych. Teorie te zapoczatkowali Pierre de Fermat oraz Blaise

Pascal w XVII wieku badajac pewna gre losowa.

Natomiast bodzcem do powstania statystyki była analiza danych pochodzacych z tzw. spisów powszech-

nych dotyczacych narodzin oraz zgonów. Takie spisy były juz prowadzone w starozytnym Rzymie. Po-

czatkowo terminem statystyka okreslano dane zapisane tabelarycznie. Dzisiejsza statystyka obejmuje

cała game narzedzi słuzacych do analizy danych ale tez metody pozyskiwania i prezentacji tych danych.

3.1 Rachunek prawdopodobienstwa

Słowo „prawdopodobienstwo” pojawia sie nie tylko w literaturze matematycznej. Słyszymy przeciez

bardzo czesto stwierdzenie, ze cos prawdopodobnie sie wydarzy, np. istnieje prawdopodobienstwo, ze

jutro bedzie padac. Słowo to uzywane jest tez naprzemiennie ze słowem „szansa”.

Oznaczmy symbolem Ω zbiór wszystkich mozliwych wyników, które mozemy otrzymac podczas pew-

nego doswiadczenia. Czesto mówimy, ze jest to przestrzen wszystkich zdarzen elementarnych.

Z tego powodu elementy zbioru Ω nazywamy zdarzeniami elementarnymi, a jego podzbiory zdarze-

niami. Przypomnijmy teraz klasyczna definicje prawdopodobienstwa.

Prawdopodobienstwo zajscia pewnego zdarzenia A ⊂ Ω jest równe

P (A) =|A||Ω|

,

gdzie

95

Page 97: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

|A| – oznacza ilosc zdarzen elementarnych sprzyjajacych zdarzeniu A, czyli jest to po prostu ilosc

elementów tego zbioru,

|Ω| – jest liczba wszystkich mozliwych zdarzen, czyli wszystkich elementów zbioru Ω.

Wzór jest prosty w zapisie, jednakze ukrywa w sobie pewna problematyke zwiazana ze zliczaniem

elementów zbiorów A i Ω.1 Oczywiscie my bedziemy zajmowac sie zbiorami, których elementy da

sie policzyc, gdyz beda to albo zbiory skonczone albo takie, których elementy mozemy ponumerowac.2

Zobaczmy to na kilku przykładach.

Przykład 1. Rzucamy dwa razy kostka do gry. Okresl przestrzen zdarzen elementarnych.

Łatwo zliczymy ilosc elementów przestrzeni Ω przy pomocy tak zwanej reguły mnozenia, która oparta

jest na pojeciu iloczynu kartezjanskiego. Jesli ktos nie pamieta badz jeszcze nie miał okazji sie

dowiedziec, co to takiego iloczyn kartezjanski zbiorów, to juz przypominam. Jesli wezmiemy sobie np.

dwa zbiory A = a1, a2, a3 i B = b1, b2, to iloczyn kartezjanski tych zbiorów oznaczamy A × B i

jest to zbiór par (a1, b1), (a1, b2), (a2, b1), (a2, b2), (a3, b1), (a3, b2)

,

czyli wszystkich mozliwych par, w których na pierwszym miejscu stoi element zbioru A, a na drugim

element zbioru B. Jak łatwo zauwazyc, liczba tych par jest równa iloczynowi liczby elementów pierw-

szego zbioru przez liczbe elementów zbioru drugiego, tzn.

|A×B| = |A| · |B|.

Warto podkreslic, ze kolejnosc elementów w kazdej takiej parze jest wazna, tzn. jesli a 6= b, to para

(a, b) jest rózna od pary (b, a).

Oczywiscie zbiorów moze byc wiecej niz dwa oraz liczba elementów tych zbiorów moze byc dowolna

(nie tylko skonczona). Z geometrii znacie iloczyn kartezjanski R × R, jest to płaszczyzna, której

uzywacie na geometrii analitycznej dwuwymiarowej. Jak wiecie, kazdy punkt na tej płaszczyznie jest

reprezentowany przez pewna pare (x, y), gdzie x, y ∈ R i takich par jest nieskonczenie wiele.

Wrócmy jednak do naszego zadania. Zauwazmy, ze przestrzen Ω składa sie z par (X,Y ) gdzie X i Y sa

liczbami ze zbioru 1, 2, 3, 4, 5, 6, czyli mozemy zapisac, ze

Ω = 1, 2, 3, 4, 5, 6 × 1, 2, 3, 4, 5, 6.

1Okazuje sie, ze nie jest to mozliwe dla dowolnych zbiorów. Dział matematyki zajmujacy sie tym problemem nazywa sieteoria miary.

2O takich zbiorach mówimy, ze sa przeliczalne.

96

Page 98: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.1. RACHUNEK PRAWDOPODOBIENSTWA

Ile takich par mozemy utworzyc? Oczywiscie 6 · 6 = 36. Pierwszy element pary, X mozemy wybrac na

6 sposobów i dla kazdego wybranego juz elementu X mozemy wybrac Y równiez na 6 sposobów. Odp.

Ω = 36.

Program Sage posiada bardzo ciekawe dwie funkcje, Set oraz CartesianProduct. Pierwsza słuzy

do definiowania zbiorów, natomiast druga tworzy iloczyn kartezjanski zbiorów.

Zdefiniujmy sobie zbiór o nazwie Kostka składajacy sie z cyfr od 1 do 6, a nastepnie utwórzmy iloczyn

kartezjanski Kostka × Kostka = Omega.

sage: Kostka = Set([1,2,3,4,5,6])

sage: Omega = CartesianProduct(Kostka, Kostka).map(tuple)

sage: Omega.list()

Jak widzimy, Omega zawiera wszystkie mozliwe pary. Mozemy zobaczyc ich ilosc za pomoca polecenia

sage: Omega.cardinality()

wynik: 36

Wezmy teraz jako przykład typowa sytuacje w grze w karty. Zazwyczaj na poczatku rozgrywki uczest-

nicy otrzymuja w sposób losowy pewna ilosc kart, np.

Przykład 2. Z talii 52 kart otrzymujemy w sposób losowy 5 kart. Okresl ilosc mozliwych

rozdan.

Przede wszystkim nalezy zwrócic uwage, ze w tym przypadku nie ma znaczenia kolejnosc wystepo-

wania kart, w przeciwienstwie do poprzedniego zadania, gdzie kolejnosc wystepowania elementów w

parach była istotna. Kiedy dostaniemy piec kart, nie wazne w jakiej kolejnosci je ułozymy w dłoni, to

bedzie wciaz tych samych piec kart. Mamy wiec do czynienia z podzbiorami. Zatem pytanie mozemy

sformułowac nastepujaco: ile istnieje podzbiorów piecioelementowych zbioru składajacego sie z 52 kart.

Przyjmijmy oznaczenie, ze(n

k

)oznacza ilosc wszystkich k – elementowych podzbiorów zbioru n –

elementowego i mozemy go obliczyc za pomoca wzoru(n

k

)=

n!

(n− k)! k!.

Takie podzbiory nazywamy kombinacjami, scislej k – elementowymi kombinacjami zbioru n –

elementowego.

97

Page 99: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

Udzielmy wiec odpowiedzi do naszego zadania: |Ω| =(52

5

). Z powyzszego wzoru mozemy wyliczyc

dokładna wartosc Omegi, jednak nie zrobie tego, w zamian wykorzystam program Sage. Wystarczy

wydac polecenie

sage: Omega = binomial(52,5)

i zobaczymy wynik |Ω| = 2598960.

Mało tego, mozemy sobie w tym programie taka talie kart zdefiniowac.

sage: Kolory = Set(["Trefl", "Karo", "Kier", "Pik"])

sage: Wartosci = Set([2, 3, 4, 5, 6, 7, 8, 9, 10, \

"Walet", "Dama", "Krol", "As"])

sage: Karty = CartesianProduct(Wartosci, Kolory)

sage: Karty = Karty.map(tuple)

Zobaczmy ile istnieje kolorów kart.

sage: Kolory.cardinality()

wynik: 4

róznych wartosci

sage: Wartosci.cardinality()

wynik: 13

oraz wszystkich kart

sage: Karty..cardinality()

wynik: 52

Mozemy teraz zdefiniowac rodzine wszystkich rozdan 5 – kartowych w sposób nastepujacy:

sage: Rozdania = Subsets(Karty, 5)

Wiemy juz ile ich jest i dlatego, ze jest ich sporo, nie bedziemy ich tu wszystkich wyswietlac a tylko

jedno losowe rozdanie.

98

Page 100: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.1. RACHUNEK PRAWDOPODOBIENSTWA

sage: Rozdania.random_element()

wynik: (3,Kier) , (7,Trefl) , (5,Karo) , (2,Kier) , (7,Kier)

Sprawdzmy dla pewnosci czy wszystkich rozdan jest rzeczywiscie tyle ile obliczylismy wzorem na

kombinacje.

sage: Rozdania.cardinality()

wynik: 2598960

Wszystko sie zgadza. Chciałbym zwrócic uwage jeszcze raz na oznaczenie(n

k

).

Jest ono znane w matematyce pod nazwa symbolu Newtona. Nazywany jest tez współczynnikiem

dwumianowym, a ta nazwa bierze sie stad, ze dowolna potege dwumianu x + y mozemy obliczyc wg.

wzoru

(x+ y)n =

n∑k=0

(n

k

)xkyn−k,

zwany dwumianem Newtona. Jak widzimy, współczynniki tego dwumianu sa odpowiednimi sym-

bolami Newtona. Juz na przełomie XI i XII w. Chinczycy odkryli, ze współczynniki te układaja sie

symetrycznie, tworzac tzw. trójkat Pascala. Mozemy go wygenerowac w Sage-u za pomoca polecen

sage: for n in [0..5,step=1]:

wsp = [binomial(n,k)

for k in [0..n,step=1] ]

sage: print wsp

[1]

[1, 1]

[1, 2, 1]

[1, 3, 3, 1]

[1, 4, 6, 4, 1]

99

Page 101: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

[1, 5, 10, 10, 5, 1]

Teraz mozemy łatwo zapisac wzór np. na szescian sumy dwóch liczb biorac współczynniki z czwartego

poziomu od góry:

(x+ y)3 = x3 + 3x2y + 3xy2 + y3.

Przestrzen zdarzen elementarnych moze posiadac nieskonczenie wiele elementów. Przyjrzyjmy sie pro-

stej grze.

Przykład 3. Dwóch graczy na przemian rzuca symetryczna moneta. Wygrywa ten, który

pierwszy wyrzuci orła. Okresl przestrzen zdarzen elementarnych.

Widzimy, ze liczba zdarzen jest nieskonczona. Moze sie przeciez zdarzyc, ze orzeł nigdy nie wypadnie.

Przestrzen zdarzen elementarnych składa sie z nastepujacych ciagów

Ω =(O), (R,O), (R,R,O), (R,R,R,O), . . .

.

Nieskonczona tez jest liczba zdarzen np. takiego doswiadczenia:

Przykład 4. Wezmy sobie kwadrat o boku 2 cm i sprawdzmy jaka mamy szanse, ze losowo

wybrany punkt tego kwadratu bedzie lezał na trójkacie, którego podstawa jest jeden z boków

kwadratu, a wierzchołek lezy na przeciwległym boku.

Mozemy te sytuacje zilustrowac rysunkiem, który wykonam w Sage-u. Najpierw zdefiniujmy sobie piec

punktów, które beda wierzchołkami kwadratu oraz trójkata.

sage: A = (0, 0); B = (2, 0);

sage: D = (0, 2); C = (2, 2);

sage: W = (1.7, 2)

Mozemy teraz narysowac te wielokaty za pomoca polecenia polygon2d,

sage: kwadrat = polygon2d([A, B, C, D], \

fill=False, thickness=2)

sage: trojkat = polygon2d([A, B, W], \

color=(0.9,0.9,0.9))

100

Page 102: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.1. RACHUNEK PRAWDOPODOBIENSTWA

Teraz poleceniem (kwadrat+trojkat).show() mozemy zobaczyc nasz rysunek.

0.5 1 1.5 2

0.5

1

1.5

2

Przestrzenia zdarzen elementarnych jest w tym przypadku zbiór wszystkich punktów lezacych na naszym

kwadracie. Czy mozemy te punkty zliczyc? Oczywiscie nie da sie tego zrobic tak, jak miało to miejsce w

poprzednich zadaniach, nie mozemy nawet tych punktów ponumerowac. Ale przeciez zbiór wszystkich

tych punktów daje nam pole tego kwadratu, zatem mozemy przyjac, ze

|Ω| = 2 · 2 = 4.

Liczba punktów lezacych na trójkacie, to oczywiscie pole tego trójkata. Zwrócmy uwage, ze wysokosc

tego trójkata nie zalezy od połozenia wierzchołka i jest zawsze równa 2, zatem

|A| = 2 · 22

= 2.

Otrzymujemy tym samym odpowiedz, ze

P (A) =2

4=

1

2.

Obliczenie prawdopodobienstwa pewnego zdarzenia jest, jak widzimy, scisle zwiazane ze zliczaniem

elementów pewnych zbiorów. Elementy te sa zwykle albo ciagami, albo podzbiorami.

101

Page 103: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

Dział matematyki zajmujacy sie tego typu zliczaniem nazywany jest kombinatoryka. Nazwa zwiazana

jest z pojeciem kombinacji, które poznaliscie juz w zadaniu z kartami, jednakze nie ogranicza sie tylko

do nich.

Rozwiazmy teraz kilka zadan z prawdopodobienstwem, w trakcie których poznacie badz przypomnicie

sobie inne pojecia kombinatoryki.

Przykład 5. Asia, Basia, Czarek, Darek i Eryk wsiadaja do tramwaju. Jakie jest prawdopo-

dobienstwo, ze chłopcy okaza sie dzentelmenami i wpuszcza dziewczeta pierwsze?

Musimy najpierw obliczyc na ile sposobów moze ta piatka osób wejsc do tramwaju, bedzie to nasz zbiór

Ω, czyli wszystkich mozliwych zdarzen. Widzimy, ze mozliwosci jest tyle, ile sposobów przestawienia

miedzy soba tej piatki. Takie zamiany miejsc nazywamy permutacjami. Ogólnie elementy zbioru n –

elementowego mozemy poprzestawiac na

n! = 1 · 2 · . . . · (n− 1) · n

sposobów. Mówimy, ze istnieje n! („n silnia”) permutacji tego zbioru. Zatem dostajemy

|Ω| = 5! = 1 · 2 · 3 · 4 · 5 = 120.

W Sage-u mozemy silnie obliczyc poleceniem factorial(5). Zobaczmy jak tworzy sie permutacje

w programie Sage:

sage: p = Permutations([’A’,’B’,’C’,’D’,’E’])

Teraz poleceniem p.list() zobaczymy wszystkie mozliwe układy tych pieciu liter odpowiadajacych

naszym osobom. Poniewaz jest ich

sage: Omega = p.cardinality()

wynik: 120

wiec nie bede ich tu wyswietlał.

Musimy teraz obliczyc na ile sposobów moze ta piatka wejsc do tramwaju. Pamietamy, ze kobiety maja

wejsc pierwsze. Asia i Basia oczywiscie moga wejsc na dwa sposoby. Natomiast chłopcy na 3! = 6

sposobów.

sage: p = Permutations([’C’,’D’,’E’])

sage: p.list()

102

Page 104: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.1. RACHUNEK PRAWDOPODOBIENSTWA

Na kazdy układ dziewczat, chłopcy moga sie ustawic na 6 sposobów zatem

|A| = 2 · 6 = 12.

Obliczamy wiec prawdopodobienstwo, ze chłopcy okazali sie dzentelmenami:

P (A) =12

120=

1

10.

Przykład 6. W urnie mamy trzy kule białe i cztery czarne. Losujemy trzy kule bez zwraca-

nia. Jakie jest prawdopodobienstwo, ze kule beda tego samego koloru?

Utwórzmy sobie taka urne w programie Sage.

sage: KuleBiale = Set(["1b", "2b", "3b"])

sage: KuleCzarne = Set(["1c", "2c", "3c", "4c"])

sage: Urna = KuleBiale + KuleCzarne

Nasza urna zawiera nastepujace elementy:

sage: Urna.list()

wynik: [1c,1b,2b,2c,3c,3b,4c]

Zbiór Ω składa sie z wszystkich podzbiorów 3 – elementowych naszej urny.

sage: Omega = Subsets(Urna, 3); Omega

103

Page 105: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

Mozemy te podzbiory policzyc z rysunku, lecz wiemy, ze jest ich binomial(7, 3), czyli

|Ω| =(7

3

)= 35.

Policzmy teraz ile jest podzbiorów, które zawieraja kule tego samego koloru. Musimy wtedy losowac

albo tylko ze zbioru kul białych albo czarnych, tzn.

sage: Subsets(KuleBiale, 3).list()

wynik: [3b,1b,2b]

sage: Subsets(KuleCzarne, 3).list()

wynik: [3c,1c,4c , 3c,1c,2c , 3c,4c,2c , 1c,4c,2c]

Widzimy wiec, ze jest ich łacznie 5, zatem |A| = 5. Mozna oczywiscie obliczyc wzorem

|A| =(3

3

)+

(4

3

)= 5.

Dostajemy wiec odpowiedz, ze prawdopodobienstwo wylosowania kul tego samego koloru wynosi

P (A) =5

35=

1

7.

Kiedy tworzymy rodziny podzbiorów danych zbiorów, musimy pamietac, ze ich liczba bardzo szybko

rosnie. Wezmy jako przykład bardzo mały zbiór 1, 2, 3. Wszystkie jego podzbiory mozemy zobaczyc

za pomoca polecen:

104

Page 106: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.1. RACHUNEK PRAWDOPODOBIENSTWA

sage: Zbior = Set([1,2,3])

sage: Podzb = Subsets(Zbior)

sage: Podzb.list()

wynik: [ , 1 , 2 , 3 , 1, 2 , 1, 3 , 2, 3 , 1, 2, 3]

Rodzina podzbiorów tego zbioru zawiera nastepujaca liczbe elementów:

sage: PPodzb = Subsets(Subsets(Zbior))

sage: PPodzb.cardinality()

wynik: 256

Natomiast rodzina podzbiorów uzyskanego zbioru zawiera az tyle elementów:

sage: PPPodzb = Subsets(Subsets(Subsets(Zbior)))

sage: PPPodzb.cardinality()

wynik: 115792089237316195423570985008687907853269984665640564039457584007913129639936

Ilosc cyfr tej liczby to:

sage: PPPodzb.cardinality().ndigits()

wynik: 78

Dzieje sie tak gdyz liczba podzbiorów zbioru trzyelementowego składa sie z 23 podzbiorów, rodzina jej

podzbiorów składa sie z 223= 256 podzbiorów, no i ta duza liczba to

2223

.

Przykład 7. Do windy 5–pietrowego budynku wsiadły cztery osoby. Jakie jest prawdopodo-

bienstwo, ze kazda osoba wysiadzie na innym pietrze?

Najpierw zdefiniujmy zbiór wszystkich mozliwych zdarzen Ω. Na ile wszystkich sposobów moga te

osoby wysiasc z windy? W takich zadaniach kluczem do rozwiazania jest dobry opis elementów, które

chcemy zliczac. Jak zapisac przykładowo sytuacje, ze wszyscy wysiedli na pierwszym pietrze? Mozemy

ja przedstawic za pomoca takiego oto ciagu

(1, 1, 1, 1).

105

Page 107: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

Pierwszy element ciagu odpowiada pierwszej osobie i informuje, ze wysiadła na 1 pietrze, drugi element

ciagu odpowiada drugiej osobie i informuje, ze wysiadła równiez na 1 pietrze, itd. Opiszmy w podobny

sposób sytuacje np., ze osoby pierwsza i trzecia wysiadły na drugim pietrze, druga na piatym i czwarta

na trzecim:

(2, 5, 2, 3).

Co tak naprawde otrzymujemy?

Widzimy, ze sa to ciagi czteroelementowe budowane z liczb odpowiadajacych numerom pieter, czyli

nalezacych do takiego zbioru

1, 2, 3, 4, 5.

W kombinatoryce takie ciagi nazywamy wariacjami. Zatem czteroelementowe ciagi składajace sie

z numerów pieter sa czteroelementowymi wariacjami. Dodatkowo zauwazmy, ze numery pieter moga

sie powtarzac, tzn. kilka osób moze wysiasc na jednym pietrze. Takie wariacje nazywamy wariacjami

z powtórzeniami. Liczba k – elementowych wariacji z powtórzeniami zbioru n – elementowego

wynosi:

W kn = nk.

Dla k = 4 i n = 5 mozemy obliczyc |Ω| = 54 = 625.

Zliczmy teraz wszystkie takie sytuacje, w których kazda osoba wysiada na innym pietrze. Oznaczmy

zbiór tych zdarzen litera A. Elementami tego zbioru sa, podobnie jak wczesniej, ciagi czterowyrazowe,

lecz teraz wymagamy aby numery pietr sie nie powtarzały. Sa to równiez wariacje, ale bez powtórzen.

Wszystkich k – elementowych wariacji bez powtórzen zbioru n – elementowego jest

V kn =

n!

(n− k)!.

Dzieki temu mozemy obliczyc

|A| = 5!

(5− 4)!=

5!

1!= 120.

W pakiecie Sage mamy polecenie factorial do liczenia silni, np.

sage: A = factorial(5)

wynik: 120

Ilosc elementów zdarzenia A, mozemy obliczyc jeszcze inaczej bez uzywania wariacji.

106

Page 108: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.1. RACHUNEK PRAWDOPODOBIENSTWA

Zauwazmy, ze pierwsza osoba moze wysiasc na 5 sposobów, druga ma juz 4 pietra do wyboru, trzeciej

pozostaja 3 pietra no i czwarta ma juz tylko 2 do wyboru. Posługujac sie reguła mnozenia, otrzymujemy

|A| = 5 · 4 · 3 · 2 = 120.

Prawdopodobienstwo, ze na kazdym pietrze wysiadzie inna osoba wynosi

P (A) =|A||Ω|

=120

625=

24

125.

Zilustrujmy zbiór Ω w programie Sage. Utwórzmy najpierw zbiór pieter

sage: Pietra = Set([1, 2, 3, 4, 5])

a nastepnie zbiór ciagów jako poczwórny iloczyn kartezjanski pieter

sage: Omega = CartesianProduct(Pietra, Pietra,\

Pietra, Pietra)

Wiemy, ze Ω zawiera 625 elementów, dlatego nie bede ich wszystkich wyswietlał, zamiast tego zo-

baczmy losowo wybrany element.

sage: Omega.random_element()

wynik: [2, 5, 2, 3]

Sprawdzmy czy liczba wszystkich zdarzen zbioru Omega jest taka sama jak obliczona Ω.

sage: Omega.cardinality()

wynik: 625 Jak widzimy wszystko sie zgadza.

Przykład 8. Mamy rozdac 7 paczków czterem osobom. Jakie jest prawdopodobienstwo, ze

kazda osoba otrzyma co najmniej jednego paczka?

Najpierw odpowiedzmy na pytanie, na ile sposobów mozemy rozdac 7 paczków czterem osobom?

Zauwazmy, ze to pytanie mozna sformułowac inaczej:

Ile rozwiazan ma równanie

a+ b+ c+ d = 7

w zbiorze liczb całkowitych nieujemnych? Przykładowym rozwiazaniem jest nastepujaca czwórka liczb:

a = 2, b = 1, c = 4, d = 0.

107

Page 109: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

Rozwiazanie to interpretujemy tak: pierwsza osoba otrzymała dwa paczki, druga jeden, trzecia cztery, a

czwarta nie dostała w ogóle. Jak zliczyc wszystkie takie rozwiazania? Liczba ta jest równa(4 + 7− 1

3

)=

(10

3

)= 120.

Juz wyjasniam skad sie to wzieło. Niech symbol „•” oznacza paczek. Zauwazmy, ze wtedy powyzsze

przykładowe rozwiazanie mozna zilustrowac w ten sposób:

osoba 1 osoba 2 osoba 3 osoba 4

• • • • • • •

Przyjrzyjmy sie jeszcze kilku przykładowym rozdaniom

osoba 1 osoba 2 osoba 3 osoba 4

• • • • • • •

• • • • • • •

• • • • • • •

Widzimy, ze pytanie mozemy sformułowac nastepujaco: Na ile sposobów moge wybrac trzy przegródki

(kreski oddzielajace osoby) ze zbioru 10 – elementowego (3 przegródki + 7 paczków), czyli na tyle ile

jest kombinacji 3 – elementowych zbioru 10 – elementowego, tzn.(4 + 7− 1

3

)=

(10

3

)= 120.

Mozemy nawet napisac ogólny wzór na liczbe rozwiazan równania

x1 + x2 + . . .+ xn = k

w zbiorze liczb całkowitych nieujemnych.3 Jest ona równa

Knk =

(n+ k − 1

k

).

W programie Sage mozemy bardzo łatwo sobie takie rozmieszczenia zdefiniowac poleceniem

sage: Rozwiazania = Compositions(7, length=4, min_part=0)

Zbiór Rozwiazania zawiera wszystkie rozwiazania naszego równania.

3Rozwiazania tego równania czesto interpretujemy, jako liczbe rozmieszczen k – nierozróznialnych elementów w n –komórkach. Rozmieszczenia tego typu nazywamy kombinacjami z powtórzeniami.

108

Page 110: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.1. RACHUNEK PRAWDOPODOBIENSTWA

Zobaczmy kilka poczatkowych:

sage: Rozwiazania.list()

Polecenie Compositions generuje wszystkie mozliwe rozkłady liczby 7 na sumy liczb naturalnych.

Dodajac opcje min_part=0 dopuszczamy do sytuacji, ze niektóre składniki moga byc zerami. Opcja

length=4 daje nam wszystkie czteroskładnikowe rozkłady.

Ich liczba wynosi:

sage: Rozwiazania.cardinality()

wynik: 120

czyli dokładnie tyle ile obliczylismy wyzej. Teraz musimy obliczyc, na ile sposobów mozemy rozdac

tych 7 paczków tak, aby kazda osoba otrzymała co najmniej jednego.

Rozwiazmy to zadanie najpierw z pomoca Sage-a.

sage: A = Compositions(7, length=4)

Zbiór A zawiera wszystkie rozwiazania równania a + b + c + d = 7 nie pozwalajac, aby któras z liczb

była równa zero. Wyswietlmy te rozwiazania

sage: A.list()

109

Page 111: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

Ich liczba wynosi:

sage: A.cardinality()

wynik: 20

Bez pomocy programu mozna tez w miare łatwo zliczyc elementy zbioru A. Chcemy, aby kazda osoba

otrzymała paczka, zatem na poczatku dajmy kazdemu po jednym. Zostaja nam jeszcze trzy, które

rozdajemy juz zupełnie losowo. Ilosc mozliwych rozdan zliczymy podobnie, jak elementy zbioru |Ω|,

czyli ich liczba jest równa liczbie wszystkich całkowitych nieujemnych rozwiazan równania

a+ b+ c+ d = 3.

Zatem

|A| =(4 + 3− 1

3

)=

(6

3

)= 20.

Prawdopodobienstwo, ze kazda osoba otrzyma conajmniej jednego paczka wynosi

P (A) =20

120=

1

6.

Rozwiazmy teraz pewne zadanie tylko za pomoca programu Sage. Zachecam jednak czytelników do

samodzielnego rozwiazania bez pomocy programu.

Przykład 9. Bankomat moze wypłacac pieniadze w banknotach: 10zł, 20zł, 50zł i 100zł.

Jakie jest prawdopodobienstwo, ze wypłacajac kwote 230zł, bankomat uzyje kazdej z wymie-

nionych nominałów?

110

Page 112: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.1. RACHUNEK PRAWDOPODOBIENSTWA

Zadanie jest troszeczke podobne do poprzedniego, gdyz mozemy go sformułowac nastepujaco: ile

rozwiazan nieujemnych całkowitych posiada równanie

10a+ 20b+ 50c+ 100d = 230?

Program Sage posiada metode WeightedIntegerVectors, która podaje wszystkie mozliwe roz-

wiazania tego równania. Wydajmy wiec nastepujace polecenie:

sage: kwota230=WeightedIntegerVectors(230,[10,20,50,100])

Utworzylismy tym samym liste wszystkich rozwiazan. Wyswietlmy jej zawartosc.

sage: kwota230.list()

Mamy tu wszystkie 52 rozwiazania, czyli |Ω| = 52. Wyswietlmy teraz tylko te rozwiazania, w których

kazdy nominał został uzyty.

sage: for k in kwota230:

if k[0]!=0 and k[1]!=0 and k[2]!=0 and k[3]!=0:

print (k[0], k[1], k[2], k[3])

Widzimy, ze sa tylko cztery takie rozwiazania, czyli |A| = 4 oraz

P (A) =4

52=

1

13.

111

Page 113: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

3.2 Statystyka

3.2.1 Srednia arytmetyczna

Jak wspomniałem we wstepie, statystyka zajmuje sie analiza danych oraz metodami pozyskiwania

i prezentacji tych danych. Sadze, ze jedna miare statystyczna kazdy z czytelników zna, gdyz jest to

srednia arytmetyczna. Najprostsza miara, która daje nam pewne informacje o typowych wartosciach

badanej grupy danych. Wiemy, ze dla danych d1, d2, . . . , dn obliczamy ja wzorem

Sa =d1 + d2 + . . .+ dn

n.

Utwórzmy sobie w programie Sage troche przykładowych danych do obliczen.

[13, 5, 16, 12, 9, 17, 8, 23, 11, 24, 15, 21, 7, 8, 17, 23, 13, 16, 17, 20, 21, 14, 16, 22]

Srednia arytmetyczna tych liczb obliczymy poleceniem

sage: Sa = mean(Dane); Sa

wynik:46

3

Zatem

Sa =46

3.

Sprawdzmy, ile wynosi liczba naszych danych

sage: n = len(Dane); n

wynik: 24

Czyli liczba elementów naszego zbioru to n = 24. Czesto sie zdarza, ze zadna z danych nie przyjmuje

wartosci równej sredniej, jak w naszym przypadku. Widzimy, ze dane sa dosc mocno rozrzucone, tzn.

jest duza rozbieznosc miedzy najmniejsza wartoscia, a najwieksza.

sage: Dmin = min(Dane); print ’Dmin=’, Dmin

sage: Dmax = max(Dane); print ’Dmax=’, Dmax

wynik: Dmin = 5 wynik: Dmax = 24

Ogólnie srednia arytmetyczna nie mówi nam, ze wszystkie czy wiekszosc wartosci naszych danych sa

bliskie tej sredniej lecz, ze połozenie srodka tych danych lezy w jej poblizu.

112

Page 114: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.2. STATYSTYKA

Pamietamy przeciez z geometrii jak wyznacza sie srodek S odcinka na osi liczbowej o koncach A = xA

oraz B = xB . Jest to punkt

xS =xA + xb

2,

czyli srednia arytmetyczna konców tego odcinka.

3.2.2 Odchylenie standardowe i wariancja

Dosc dobra miara, mówiaca nam jak bardzo dane sa oddalone od sredniej arytmetycznej, jest odchylenie

standardowe. Im mniejsza jest wartosc odchylenia standardowego, tym dane sa mniej rozrzucone.

Ogólny wzór dla danych d1, d2, . . . , dn jest nastepujacy

σ =

√(d1 − S)2 + (d2 − S)2 + . . .+ (dn − S)2

n=

√d21 + d22 + . . .+ d2n

n− S2.

Odchylenie standardowe jest scisle zwiazane z innym pojeciem statystycznym, wariancja. Wariancja

jest kwadratem odchylenia standardowego i oznaczamy ja symbolem σ2, czyli

σ2 =(d1 − S)2 + (d2 − S)2 + . . .+ (dn − S)2

n=

d21 + d22 + . . .+ d2nn

− S2.

Zobaczmy jak wygladaja te dwie wielkosci dla naszych danych.

sage: OdchStand = std(Dane); OdchStand

wynik:

√2098

69

Zapiszmy wynik w postaci numerycznej.

sage: N(OdchStand, digits=4)

wynik: 5.514

Mozemy wiec stwierdzic, ze dane sa srednio o 5.5 oddalone od sredniej arytmetycznej.

Aby obliczyc wariancje, wystarczy ostatni wynik podniesc do kwadratu. Sage posiada do tego celu

funkcje variance.

sage: Wariancja = variance(Dane); Wariancja

wynik:2098

69

113

Page 115: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

3.2.3 Srednia geometryczna

Znacie zapewne ze szkoły jeszcze srednia geometryczna. Dla dwóch liczb a i b jest ona pierwiastkiem

kwadratowym z iloczynu tych liczb, tzn.

Sg =√a · b.

Istnieje wiele ciekawych interpretacji geometrycznych, np. jest równa wysokosci trójkata prostokatnego

opuszczonej z wierzchołka kata prostego, tzn.

a

bh

Poniewaz cały trójkat jest podobny do

tych mniejszych trójkacików prostokat-

nych, które utworzyła nam wysokosc,

wiech

a=

b

h.

Po przekształceniu otrzymujemy

h =√a · b.

Inna interpretacja mówi, ze srednia geometryczna jest równa długosci odcinka łaczacego srodki ramion

trapezu o podstawach a i b, tzn.

a

√a · b

b

Ogólny wzór na srednia geometryczna dla danych d1, d2, . . . , dn wyglada nastepujaco:

Sg =n√

d1 · d2 · . . . · dn.

W programie Sage jest on zdefiniowany w pakiecie scipy.stats. Po jego zaimportowaniu mamy do

dyspozycji polecenie stats.gmean, które własnie oblicza srednia geometryczna. Sprawdzmy, ile ona

wynosi dla naszych danych.

sage: import scipy.stats as stats

sage: Sg = stats.gmean(Dane); Sg

114

Page 116: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.2. STATYSTYKA

wynik: 14.2211529148

3.2.4 Mediana

Kolejna miara wykorzystywana w statystyce jest mediana. Najprosciej mozna powiedziec, ze jest to

wartosc lezaca po srodku danych, które sa uporzadkowane niemalejaco. Gdy liczba danych jest nieparzy-

sta, to bierzemy poprostu srodkowy element. Jesli liczba danych jest parzysta, to oczywiscie srodkowego

elementu nie ma, zamiast niego bierzemy srednia arytmetyczna dwóch elementów srodkowych. Zatem

dla n nieparzystych: Me = dn+12

, a dla dla n parzystych: Me =dn

2+ dn

2 +1

2.

Przypomnijmy, ze liczba danych w naszym przykładzie wynosi

sage: n = len(Dane); n

wynik: 24

Jest to liczba parzysta, wiec mediana jest równa sredniej arytmetycznej wyrazów d12 i d13 danych

uporzadkowanych. Aby posortowac je w porzadku niemalejacym wystarczy wydac polecenie

sage: Dane.sort()

wynik: [5, 7, 8, 8, 9, 11, 12, 13, 13, 14, 15, 16, 16, 16, 17, 17, 17, 20, 21, 21, 22, 23, 23, 24]

Sprawdzmy, które to elementy

sage: d12 = Dane[12-1]; print d12

sage: d13 = Dane[13-1]; print d13

wynik: 16, 16

Zatem

d12 = 16, d13 = 16.

Zwrócmy uwage, ze zmniejszyłem indeksy o jeden. Zrobiłem to dlatego, iz Sage rozpoczyna numero-

wanie list od zera, a nie od jeden. U nas pierwszy element to Dane[0], a ostatni Dane[23]. Wobec

tego mediana wynosi:

Me =16 + 16

2= 16

W Sage-u mamy gotowa funkcje liczaca mediane o nazwie median.

sage: Me = median(Dane); Me

wynik: 16

115

Page 117: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

3.2.5 Dominanta

W statystyce wykorzystuje sie jeszcze wiele innych miar, jednakze nie bede o nich teraz pisał. W szkole

sredniej mogliscie poznac jeszcze jedna z nich, tzw. dominante, inaczej zwana mode. Dominanta, jak

nazwa wskazuje, jest to wartosc, która dominuje, czyli najczesciej wystepuje w rozwazanych danych.

Zatem, aby ja znalezc, nalezy zliczyc ilosc wystapien kazdej wartosci w danych, a nastepnie wybrac te

najczesciej sie pojawiajaca.

Wydajmy w Sage-u nastepujace polecenia:

sage: for d in Dane:

print ’liczba wystapien wartosci ’, d,\

’ w naszych danych, to: ’, Dane.count(d)

Zobaczymy nastepujace informacje:

Widzimy, ze najczesciej wystepujacymi wartosciami sa 16 i 17. Obie wystapiły trzykrotnie. Zatem

przyjmujemy, ze dominantami naszego zbioru danych sa liczby 16 i 17. Mamy do dyspozycji tez gotowe

polecenie: mode.

sage: mode(Dane)

wynik: [16, 17]

116

Page 118: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.2. STATYSTYKA

3.2.6 Grupowanie i prezentacja danych statystycznych

Dane statystyczne czesto grupowane sa wzgledem powtarzajacych sie wartosci i zapisywane w tabelce.

Ułatwia to wiele obliczen, miedzy innymi dominante otrzymujemy natychmiast. Zapiszmy w ten sposób

nasze dane.

Wartosc 5 7 8 9 11 12 13 14 15 16 17 20 21 22 23 24

Liczba powtórzen 1 1 2 1 1 1 2 1 1 3 3 1 2 1 2 1

Srednia arytmetyczna liczymy wtedy wzorem na tzw. srednia wazona, czyli dzielimy sume iloczynów

wszystkich kolumn naszej tabeli przez sume drugiego wiersza.

Sa =5 · 1 + 7 · 1 + 8 · 2 + . . .+ 24 · 1

1 + 1 + 2 + . . .+ 1=

368

24=

46

3.

W takiej tabelce bardzo łatwo zlokalizujemy dominante lub dominanty. Widzimy, ze 16 i 17 powtarzaja

sie najczesciej, a dokładnie po trzy razy czyli sa to dominanty naszego zbioru danych. Dane statystyczne

grupujemy czesto w odpowiednie przedziały.

Wspomniałem wczesniej, ze statystyka zajmuje sie tez prezentowaniem danych. Najczesciej uzywanym

sposobem prezentacji jest histogram. Obrazuje on przy pomocy wykresu rozkład liczebnosci badanych

danych w ustalonych przedziałach.

Przykład 10. Nauczyciel wychowania fizycznego przeprowadził wsród chłopców pewnej

klasy konkurs skoków w dal. Wyniki skoków (w metrach) sa nastepujace:

2.7, 2.9, 3.1, 3.3, 3.2, 3.4, 3.5, 3.6, 3.5, 3.7, 3.5, 3.6, 3.5, 3.7, 3.8, 4.0, 4.2, 4.1, 4.2, 4.0, 4.2,

4.1, 4.5, 4.6, 4.61, 4.62, 4.9, 5.03.

Utwórzmy histogram dla tych danych.

W bibliotece matplotlib.pyplot as plt mamy dostepna funkcje hist, która słuzy do gene-

rowania histogramów. Aby skorzystac z tej funkcji nalezy dane pogrupowac w odpowiednie przedziały.

Mozemy to zrobic nastepujaco:

Długosc skoku 2.70-3.08 3.09-3.47 3.48-3.86 3.87-4.25 4.26-4.64 4.65-5.03

Liczba uczniów 2 4 9 7 4 2

Widzimy, ze wyniki zawieraja sie w przedziale od 2.7 do 5.03 metra. Podzieliłem długosc tego prze-

działu, tzn. 5.03 − 2.7 = 2.33 przez liczbe mozliwych ocen, czyli 1 − 6, dzieki czemu otrzymałem

długosc przedziału 2.33/6 ≈ 0.38.

117

Page 119: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

Mozemy juz wygenerowac histogram.

sage: import matplotlib.pyplot as plt

sage: v = [2.8, 2.9, 3.1, 3.3, 3.2, 3.4, 3.5, 3.6, 3.5, 3.7,\

3.5, 3.6, 3.5, 3.7, 3.8, 4.0, 4.2, 4.1, 4.2, 4.0, 4.2, 4.1, \

4.5, 4.6, 4.61, 4.62, 4.9, 5.0]

sage: plt.hist(v, bins=6, range=(2.7, 5.03))

sage: plt.savefig(’Histogram.png’)

sage: plt.close()

Najwazniejszymi argumentami funkcji hist sa: lista danych v, liczba przedziałów bins=6 oraz zakres

danych range=(2.7, 5.03).

Widzimy, ze czworo uczniów oddało skok długosci z przedziału 〈3.09, 3.47〉 czyli otrzymali ocene

dostateczna. Najwieksza liczba uczniów (dziewiecioro) oddała skok z przedziału 〈3.48, 3.86〉 na ocene

dostateczna, itd.

118

Page 120: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.2. STATYSTYKA

Prostsza forma prezentowania danych statystycznych jest zwykły wykres słupkowy. Uzywamy go

wówczas gdy nie chcemy grupowac danych. Wezmy nastepujacy przykład:

Przykład 11. Ponizsza tabelka przedstawia oceny ze sprawdzianu z matematyki pewnej

klasy liceum.

Ocena 1 2 3 4 5 6

Liczba uczniów 1 5 7 8 4 3

Sporzadz wykres słupkowy ilustrujacy rozkład ocen z tego sprawdzianu.

Do sporzadzania wykresów słupkowych mamy funkcje bar_chart Dla naszych danych wystarczy

wydac polecenie:

sage: bar_chart([1,5,7,8,4,3], width=1)

0 1 2 3 4 5 6

1

2

3

4

5

6

7

8

Jako pierwszy parametr przekazałem liste liczby uczniów, którzy otrzymali odpowiednie oceny. Ponie-

waz lista ta składa sie szesciu elementów, czyli tyle ile mozliwych ocen, wiec jako drugi parametr usta-

wiłem width=1, co powoduje, ze szerokosc słupka bedzie wynosiła dokładnie tyle ile skok do oceny

wyzszej. Z wykresu odczytujemy, ze ocene niedostateczna otrzymał jeden uczen, dopuszczajaca ocene

otrzymało piecioro uczniów, itd.

119

Page 121: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

Na koniec tego podrozdziału rozwiazmy jeszcze dwa przykłady.

Przykład 12. Ponizsza tabela zawiera informacje o ilosci przeczytanych ksiazek w ciagu jednegoroku szkolnego przez uczniów pewnej klasy.

Odpowiedz na pytania:

1. Jaka srednia ilosc przeczytanych ksiazek przypadała na jednego ucznia tej klasy?

2. Jak duze było odchylenie liczby przeczytanych ksiazek od tej sredniej?

3. Ilu uczniów przeczytało wiecej ksiazek niz srednia?

4. Jaka była mediana i dominanta przeczytanych ksiazek tego roku?

5. Naszkicuj histogram na podstawie tych danych.

W rozwiazaniu pomozemy sobie programem Sage. Najpierw musimy zdefiniowac dane. Mozna to zrobic

na kilka sposobów. Jeden najprostszy, to utworzyc recznie liste ksiazek przeczytanych przez wszystkich

uczniów, tzn.

sage: dane = [0,0,3,3,3,3,6,6,6,6,6,9,\

9,9,9,9,9,9,9,12,12,15]

Mozna tez najpierw stworzyc liste par (liczba_uczniw, liczba_ksiaek) na podstawie tabeli,

a nastepnie przekształcic ja do postaci jak wyzej. Mozemy to zrobic w ten sposób:

sage: lista_par = [(0,2),(3,4),(6,5),(9,8),(12,2),(15,1)]

dane = []

for para in lista_par:

for i in [1..para[1]]:

dane = dane + [para[0]]

Efekt bedzie ten sam

wynik: [0, 0, 3, 3, 3, 3, 6, 6, 6, 6, 6, 9, 9, 9, 9, 9, 9, 9, 9, 12, 12, 15]

Drugi sposób jest moze troche skomplikowany na pierwszy rzut oka. Zauwazmy jednak, ze gdyby

uczniów było duzo wiecej oraz liczba ksiazek przypadajaca na jednego ucznia byłaby wieksza, to z

pewnoscia wypisywanie wszystkich elementów tej listy byłoby uciazliwe.

120

Page 122: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.2. STATYSTYKA

Wyobrazmy sobie, ze mamy analogiczne zadanie, lecz dane bierzemy z kilku lat oraz dla uczniów całej

szkoły. Wyobrazacie sobie zapewne jak wiele pracy mielibysmy wtedy z budowa takiej listy. Powyzsze

instrukcje wykonaja to zadanie tak szybko jak dla naszej niewielkiej ilosci danych. Skoro mamy juz dane

wprowadzone, mozemy zaczac rozwiazywac zadanie.

Ad. 1. Srednia liczba przeczytanych ksiazek przez jednego ucznia, to

sage: S = mean(dane)

sage: N(S, digits=4)

wynik: 6.955

S =153

22= 6.955.

Ad. 2. Odchylenie liczby przeczytanych ksiazek od tej sredniej wynosi:

sage: Std = std(dane)

sage: N(Std, digits=4)

wynik: 3.860

σ = 3

√255

154= 3.860.

Ad. 3. Liczba uczniów, którzy przeczytali wiecej ksiazek niz srednia klasy, to 11. Liczbe te mozemy

łatwo znalezc zliczajac po prostu liczby nie mniejsze od 6.955. A gdyby danych było duzo wiecej i do

tego nie byłyby posortowane, np. takie?

[2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4,8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1,2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4,8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1,2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4,8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 2, 4, 8, 1, 3, 9, 5, 4,1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5,4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9,5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3,9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1,3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4,1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4, 1, 3, 9, 5,4, 1, 3, 9, 5, 4, 1, 3, 9, 5, 4]

Sortowanie znacznie ułatwia zadanie, jednak przy takiej ilosci danych mielibysmy, mimo wszystko,

sporo pracy.

121

Page 123: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

Mozna jednak wykorzystac do tego celu Sage-a.

sage: liczba_el = 0

sage: S = mean(dane)

sage: for x in dane:

if x >= S:

liczba_el = liczba_el + 1

sage: liczba_el

wynik: 11

Otrzymalismy wiec

liczba_el = 11.

Przeszlismy przez liste danych (z naszego zadania) podstawiajac kolejne jej elementy do zmiennej x i

sprawdzamy czy ten element jest wiekszy lub równy od sredniej. Jesli tak to zwiekszamy przygotowana

wczesniej zmienna liczba_el o jeden. W tym przypadku zbadanie 20 elementów czy 2000 nie zrobi

programowi zapewne wielkiej róznicy.

Ad. 4. Dominante znajdziemy przygladajac sie tabelce podanej w tresci zadania. Widzimy, ze jest nia 9,

która wystapiła az osiem razy. Mamy 22 dane, wiec mediana jest równa

Me =d11 + d12

2=

15

2= 7.5.

Ad. 5. Sporzadzmy histogram za pomoca programu Sage.

2 4 6 8 10 12 14

1

2

3

4

5

6

7

8

122

Page 124: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.2. STATYSTYKA

Otrzymałem go za pomoca polecen:

sage: d = finance.TimeSeries(dane)

sage: d.plot_histogram(bins=6,fill=False,normalize=False)

Przykład 13. Ponizszy diagram przedstawia dane dotyczace liczby godzin nieobecnosci

uczniów pewnej klasy w miesiacu listopadzie. Os pozioma reprezentuje liczbe godzin, na-

tomiast pionowa liczbe uczniów.

Utwórz analogiczna tabelke, jak w tresci poprzedniego przykładu, tj.

Dane z histogramu odczytujemy nastepujaco:

– liczbe opuszczonych godzin w przedziale 〈0, 5) miało 8 uczniów,

– liczbe opuszczonych godzin w przedziale 〈5, 10) miało 12 uczniów,

– liczbe opuszczonych godzin w przedziale 〈0, 5) miało 9 uczniów, itd.

Jak zwykle, podczas rozwiazywania, bede korzystał z programu Sage. Utwórzmy dwie listy danych,

jedna dla liczby uczniów, druga dla liczby godzin.

sage: liczba_uczniow = [8, 12, 9, 3, 2, 4, 6, 1, 3]

sage: liczba_godzin = [0, 5, 10, 15, 20, 25, 30, 35, 40]

123

Page 125: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

Teraz mozemy utworzyc tabelke poleceniami:

sage: naglowek = [’Liczba godzin’,’Liczba uczni w’]

sage: html.table([(liczba_godzin[i], liczba_uczniow[i])\

for i in [0..7]], header = naglowek)

Gdybysmy chcieli wykonywac inne obliczenia statystyczne, warto byłoby utworzyc sobie liste godzin

wszystkich uczniów. Mozna ja przygotowac za pomoca nastepujacych polecen:

sage: lista_godz = []

sage: j = -1

sage: for lu in liczba_uczniow:

j = j+1

for i in [1..lu]:

lista_godz = lista_godz+[liczba_godzin[j]])

3.3 Zadania

Ponizsze zadania prosze spróbowac rozwiazac z pomoca programu Sage.

1. Oblicz, ile przekatnych ma dwunastokat foremny.

2. Zapomnielismy PIN-u do naszego telefonu. Wiemy, ze składał sie z czterech cyfr. Przypominamy

sobie tylko, ze składał sie on z cyfr nastepujacego zbioru

0, 3, 4, 6, 8, 9.

124

Page 126: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.3. ZADANIA

Ile maksymalnie prób nalezałoby wykonac, aby odgadnac PIN?

3. Na ile sposobów mozemy wybrac trójke klasowa, tak aby były w niej dwie dziewczeta i jeden

chłopiec? Wiemy, ze klasa liczy 32 uczniów, wsród których jest 14 dziewczat.

4. Przestawiamy w sposób losowy cyfry liczby 123452345. Jakie jest prawdopodobienstwo, ze takie

same cyfry beda stały obok siebie?

5. Rzucamy piec razy symetryczna moneta. Jakie jest prawdopodobienstwo, ze za pierwszym i za

piatym razem wypadnie orzeł?

6. Mama upiekła 6 zupełnie róznych babeczek. Na ile sposobów moze je rozdac swoim dzieciom

Alicji i Bolkowi, aby kazde z nich otrzymało tyle samo babeczek?

7. Rozwiaz równania w zbiorze liczb całkowitych nieujemnych

(a) a+ b+ c+ d+ e = 15, (b) 2a+ 3b+ 4c+ 5d = 17.

8. Piec kobiet i pieciu mezczyzn zasiada przy okragłym stole. Jakie jest prawdopodobienstwo, ze

mezczyzni nie usiada obok siebie?

9. Igor w dniu swoich imienin zabiera do przedszkola 30 cukierków, aby podzielic sie nimi z ko-

legami, kolezankami oraz pania. Jakie jest prawdopodobienstwo, ze kazdy otrzyma przynajmniej

dwa cukierki, jezeli grupa przedszkolna liczy 12 dzieci?

10. Jakie jest prawdopodobienstwo, ze z losowo wybranych trzech liczb danego zbioru

1, 2, 3, 4, 5, 6, 7

bedzie mozna utworzyc trójkat?

11. Kupilismy 8 ksiazek i chcemy je ułozyc na trzech półkach naszej biblioteczki. Na pierwszej półce

mamy juz 25 ksiazek, na drugiej 24, a na trzeciej 27. Jakie jest prawdopodobienstwo, ze układajac

te ksiazki losowo na tych trzech półkach, na kazdej z nich bedzie tyle samo ksiazek?

12. Ponizsza tabela zawiera informacje o ilosci przejechanych kilometrów przez pewnego rowerzyste

w miesiacu lipcu.

125

Page 127: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

Odpowiedz na pytania:

(a) Ile srednio kilometrów przejechał w ciagu dnia ten rowerzysta?

(b) Jak duze było odchylenie liczby przejechanych kilometrów od sredniej?

(c) Jaka była mediana i dominanta przejechanych kilometrów w miesiacu lipcu?

(d) Naszkicuj histogram na podstawie tych danych.

13. Wygeneruj w programie Sage przykładowe dane poleceniem

sage: Dane = [N(100*random(), digits=4) \

for i in [1 .. 40]]

Oblicz dla tych danych:

(a) Srednia arytmetyczna i geometryczna.

(b) Mode i mediane.

(c) Odchylenie standardowe.

(d) Sporzadz histogram.

126

Page 128: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

3.3. ZADANIA

ODPOWIEDZI

1. 54.

2. W 46 = 64 = 1296.

3. C214 · C1

18 =(142

)·(181

)= 1638

4. |Ω| = 9!, |A| = 5!, P (A) = 13024

.

5. |Ω| = 25 = 32, |A| = 23 = 8, P (A) = 14.

6. C36 = 20.

7. (a) K515 =

(15+5−1

5

)= 3876. (b) 18.

8. |Ω| = 10!10

, |A| = 2 · 5!5

, P (A) = 17560

.

9. |Ω| = 11058116888, |A| = 1820, P (A) = 530379442

.

10. |Ω| = 35, |A| = 13, P (A) = 1335

.

11. |Ω| = 45, |A| = 6, P (A) = 215

.

12.

13.

127

Page 129: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 3. RACHUNEK PRAWDOPODOBIENSTWA I STATYSTYKA

128

Page 130: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

Rozdział 4

Stereometria

4.1 Bryły platonskie

Geometria jest jedna z najstarszych dziedzin matematyki. Wiekszosc odnalezionych starozytnych tek-

stów matematycznych siegajacych prawie 2000 lat p. n. e. zawiera miedzy innymi twierdzenie Pitago-

rasa. Pitagoras jest uznawany za jednego z najwiekszych matematyków starozytnosci. Wiemy, ze badał

figury płaskie, jak wiekszosc ówczesnych filozofów zajmujacych sie matematyka. Jednakze uznaje sie,

ze jako pierwszy zaczał badac zasady budowy wieloscianów foremnych, które sam nazywał figurami

kosmicznymi.

Istnieje tylko piec wieloscianów foremnych. Wynika to z faktu, ze dowolny róg wieloscianu foremnego

składa sie przynajmniej z trzech scian i suma katów płaskich tych scian przy tym wierzchołku jest

mniejsza niz 3600.

I tak za pomoca trójkata równobocznego mozemy otrzymac czworoscian (łacinska nazwa, to tetraedr).

Przy kazdym narozniku mamy 3 · 600 = 1800 < 3600. Narysujemy go w programie Sage poleceniem

tetrahedron.

sage: tetrahedron()

Skoro 4 · 600 = 2400 < 3600, wiec istnieje wieloscian, którego kazdy róg zbudowany jest z czterech

trójkatów. Jest nim osmioscian (łac. oktaedr).

sage: octahedron(frame=False, \

color=[’red’,’green’,’blue’,’yellow’])

129

Page 131: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

Rys. 4.1: Czworoscian - tetrahedron.

Rys. 4.2: Osmioscian - octahedron.

Aby ukryc obramowanie otaczajace bryłe, które odpowiada trójwymiarowemu układowi współrzed-

nych, uzywamy opcji frame=False. W notatniku programu Sage, po wygenerowaniu rysunku poka-

zuje sie nam dodatkowy przycisk Make interactive, po kliknieciu którego mozna bryłe obracac

za pomoca myszki. Jest to dobry sposób, aby przyjrzec sie dokładniej niektórym szczegółom danej

bryły. Na powyzszych rysunkach widzicie cały czas ten sam osmioscian, tylko z róznych perspektyw.

Ostatni z prawej rysunek, otrzymalismy za pomoca specjalnej metody stickers, która powoduje

rozsuniecie scian bryły. Stosujemy ja nastepujaco:

sage: octahedron(color=[’red’,’green’,’blue’,’yellow’],\

frame=False).stickers(0.2, 0.2)

130

Page 132: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.1. BRYŁY PLATONSKIE

Za pomoca trójkatów równobocznych mozna zbudowac jeszcze jeden wieloscian foremny – dwu-

dziestoscian (łac. ikosaedr). W tym przypadku, naroznik zbudowany jest za pomoca pieciu trójkatów

5 · 600 = 3000 < 3600. Wiecej z pomoca trójkatów nie da sie zbudowac wieloscianów foremnych, gdyz

6 · 600 = 3600 ≥ 3600.

Rys. 4.3: Dwudziestoscian - icosahedron.

Powyzsze rysunki mozna otrzymac za pomoca polecen:

sage: icosahedron(frame=False)

sage: icosahedron(frame=False).stickers(0.07, 0.07)

Za pomoca kwadratu mozemy zbudowac jedynie szescian (łac. heksaedr), gdyz 3 · 900 = 2700 < 3600,

ale z czterech kwadratów jest to juz nie mozliwe, gdyz (4 · 900 = 3600 ≥ 3600). Do narysowania

czworoscianu słuzy polecenie cube.

sage: cube(color=[’red’,’blue’,’green’],frame=False)

Ostatnim odkrytym wieloscianem foremnym był dwunastoscian (łac. dodekaedr). Budujemy go za

pomoca pieciokata foremnego.

sage: dodecahedron(frame=False)

sage: dodecahedron(frame=False).stickers(0.5, 0.5)

Filozof grecki Platon traktował wielosciany foremne w szczególny sposób, tzn. porównywał je z zywio-

łami. Czworoscianowi przypisywał ogien, szescianowi Ziemie, osmioscianowi powietrze, a dwudziesto-

scianowi wode.

131

Page 133: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

Rys. 4.4: Szescian - cube.

Rys. 4.5: Dwunastoscian - dodecahedron.

Dwunastoscian traktował jako cos, co łaczy wszystko – utozsamiał go z Wszechswiatem. Z tego powodu

wielosciany foremne czesto okresla sie mianem brył platonskich. Jednak nie on był ich odkrywca, lecz

starozytny matematyk grecki Teajtetos.

4.2 Graniastosłupy i ostrosłupy

Dzis dział geometrii zajmujacy sie badaniem brył w przestrzeni nazywamy stereometria. W szkole

poznaliscie zapewne piec rodzajów brył: graniastosłupy, ostrosłupy, walce, stozki oraz kule.

Dowolny wieloscian mozemy narysowac w programie Sage za pomoca funkcji Polyhedron. Jednakze

funkcja ta wymaga od nas podania wierzchołków podstaw rysowanego graniastosłupa. Narysuje za

pomoca tej funkcji graniastosłup szesciokatny, którego jedna z podstaw ma wierzchołki w punktach

(0, 0, 0), (2, 0, 0), (3, 1.5, 0), (2, 3, 0), (0, 3, 0), (−1, 1.5, 0),

132

Page 134: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.2. GRANIASTOSŁUPY I OSTROSŁUPY

natomiast druga

(0, 0, 2), (2, 0, 2), (3, 1.5, 2), (2, 3, 2), (0, 3, 2), (−1, 1.5, 2).

sage: podst1 = [[0,0,0],[2,0,0],[3,1.5,0],\

[2,3,0],[0,3,0],[-1,1.5,0]]

sage: podst2 = [[0,0,2],[2,0,2],[3,1.5,2],\

[2,3,2],[0,3,2],[-1,1.5,2]]

sage: gr = Polyhedron(vertices = podst1 + podst2)

sage: gr.show()

Po czym zobaczymy na ekranie nasz graniastosłup. Graniastosłup widoczny na rysunku 4.6 z prawej

otrzymamy po dodaniu opcji frame=False funkcji show, tzn. gr.show(frame=False).

Rys. 4.6: Graniastosłup szesciokatny.

Minusem tej metody jest to, ze musimy sami definiowac listy punktów bedacych wierzchołkami wielo-

scianu. Przyjrzyjmy sie uwaznie powyzszym listom. Widzimy, ze kazdy punkt pierwszej podstawy ma

trzecia współrzedna równa zero. Oznacza to, ze lezy ona w płaszczyznie Oxy. Druga podstawa jest kopia

pierwszej, tylko trzecia współrzedna kazdego punktu wynosi 2. Otrzymalismy tym samym graniasto-

słup prosty, tzn. jego sciany boczne sa prostokatami. Aby zbudowac graniastosłup, mozemy najpierw

zdefiniowac liste wierzchołków wielokata na płaszczyznie (co jest zadaniem łatwym), a nastepnie doło-

zyc do kazdego punktu trzecia współrzedna raz 0, a raz liczbe niezerowa, np. 2. Zobaczmy jak wygladaja

punkty pierwszej podstawy powyzszego graniastosłupa na płaszczyznie.

133

Page 135: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

sage: podst1 = [[0, 0], [2, 0], [3, 1.5],\

[2, 3], [0, 3], [-1, 1.5]]

sage: points(podst1,gridlines=True,size=30)\

+ line(podst1, thickness=1, color=’red’)

-1 1 2 3

1.5

3

Najpierw uzyłem funkcji point do zaznaczenia punktów w układzie współrzednych. Opcja

gridlines=True powoduje, ze widoczna jest siatka (przerywane cienkie linie), natomiast opcja

size regulujemy wielkosc kropek. Nastepnie połaczyłem wszystkie punkty linia poleceniem line.

Opcja thickness sterujemy gruboscia linii.

Mysle, ze bez problemu kazdy z czytelników potrafiłby zdefiniowac liste punktów podstaw dla grania-

stosłupa trójkatnego, czworokatnego czy pieciokatnego.

Narysujmy teraz za pomoca funkcji Polyhedron ostrosłup czworokatny taki jak na rysunku 4.7.

sage: podst = [[0,0,0],[3,0,0],[3,2,0],[0,2,0]]

sage: wierzch = [[(0+3+3+0)/4, (0+0+2+2)/4, 2]]

sage: os = Polyhedron(vertices = podst + wierzch)

sage: os.show(frame=False,opacity=0.3,color=’blue’)

Najpierw zdefiniowałem wierzchołki podstawy oraz wierzchołek ostrosłupa. Pierwsze dwie współ-

rzedne wierzchołka wyznaczyłem jako srodek masy1 podstawy, czyli prostokata o wierzchołkach

(0, 0), (3, 0), (3, 2), (0, 2). Obracajac odpowiednio ten ostrosłup w notatniku Sage mozemy zobaczyc,

ze wierzchołek istotnie lezy nad srodkiem podstawy.

Dodatkowo w funkcji show uzyłem opcji opacity, która daje efekt przezroczystosci (im blizsza

wartosc zeru, tym wieksza przezroczystosc). Dzieki funkcji Polyhedron mozemy łatwo i szybko1Współrzedne srodka masy wielokata wypukłego na płaszczyznie wyznaczamy jako srednie arytmetyczne współrzednych

jego wierzchołków.

134

Page 136: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.2. GRANIASTOSŁUPY I OSTROSŁUPY

Rys. 4.7: Ostrosłup czworokatny.

rysowac bardzo wymyslne wielosciany, nawet w przestrzeni czterowymiarowej. Narysujmy przykładowo

szescian, do którego doklejono ostrosłup o podstawie takiej samej jak sciana szescianu.

sage: podst1 = [ [0,0,0],[3,0,0],[3,3,0],[0,3,0] ]

sage: podst2 = [ [0,0,3],[3,0,3],[3,3,3],[0,3,3] ]

sage: wierzch = [ [(0+3+3+0)/4, (0+0+3+3)/4, 5] ]

sage: v = podst1 + podst2 + wierzch

sage: bryla = Polyhedron(vertices = v)

sage: (bryla).show(frame=False, figsize=4, opacity=0.3)

Funkcji Polyhedron brakuje opcji zaznaczania dowolnych odcinków czy numerowania wierzchoł-

ków, co jak wiemy jest bardzo pomocne przy rozwiazywaniu zadan.

135

Page 137: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

Problem ten mozna rozwiazac rysujac wieloscian samodzielnie za pomoca funkcji line3d ewentualnie

polygon3d słuzacych do rysowania linii oraz wielokatów w przestrzeni trójwymiarowej. Narysujmy

np. graniastosłup pieciokatny.

sage: h = 2 # wysokosc

# wierzcholki podstaw

sage: vp1 = [[0,0,0],[2,0.5,0],[2.5,2,0],\

[0.5,3,0],[-1,2,0]];

sage: vp2 = [[0,0,h],[2,0.5,h],[2.5,2,h],\

[0.5,3,h],[-1,2,h]];

Zaczałem od zdefiniowania zmiennej: h – „wysokosc”, tzn. trzecia współrzedna wierzchołków jednej

z podstaw. Nastepnie definiujemy listy wierzchołków podstaw. Wystarczy teraz połaczyc odpowiednio

te punkty liniami.

sage: gr5 = None

# krawedzie boczne

sage: for i in range(0,5):

gr5 = gr5 + line3d([vp1[i], vp2[i]],

color=’blue’,thickness=3)

# obramowanie podstaw

sage: for i in range(0,5):

gr3 = gr3 + line3d([vp1[i], vp1[(i+1) % 5]],\

color=’blue’,thickness=3)

gr3 = gr3 + line3d([vp2[i], vp2[(i+1) % 5]],\

color=’blue’,thickness=3)

sage: gr5.show(frame=False)

Powinnismy zobaczyc graniastosłup taki jak na rysunku 4.8.

Juz wyjasniam powyzsze polecenia. Otóz gr5 = None powoduje utworzenie pewnego obiektu o na-

zwie gr5, ale na razie niczego mu nie przypisujemy. Pózniej bedzie tam zapisany nasz graniastosłup.

136

Page 138: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.2. GRANIASTOSŁUPY I OSTROSŁUPY

Rys. 4.8: Graniastosłup pieciokatny.

Nastepnie instrukcja for i in range(0,5): powoduje, ze zmienna i przyjmuje kolejno wartosci

0, 1, 2, 3, 4 i za kazdym razem wykonywana jest instrukcja

gr5 = gr5 + line3d([vp1[i], vp2[i]], color=’blue’, thickness=3)

rysujaca linie. Zatem

[vp1[0], vp2[0]] oznacza odcinek o koncach [0, 0, 0], [0, 0, 2],

[vp1[1], vp2[1]] oznacza odcinek o koncach [2, 0.5, 0], [2, 0.5, 2], itd.

az do [vp1[4], vp2[4]] oznacza odcinek o koncach [−1, 2, 0], [−1, 2, 2].

Ostatecznie rysujemy obramowanie podstaw przechodzac po sasiednich wierzchołkach. Zauwazmy, ze

uzyłem operatora %, który w wyniku zwraca reszte z dzielenia liczby stojacej z lewej strony przez liczbe

stojaca z prawej, tzn. (i+1)% 5. Zobaczmy, jak wygladaja wartosci tego wyrazenia dla i przechodza-

cego przez zbiór 0, 1, 2, 3, 4.

(1+1)% 5 = 2 % 5 = 2, (1+2)% 5 = 3 % 5 = 3,

(1+3)% 5 = 4 % 5 = 4, (1+4)% 5 = 5 % 5 = 0.

Uzyłem tego operatora dlatego, aby połaczyc ostatni wierzchołek vp1[4] z poczatkowym, czyli

vp1[0]. Podobnie dla drugiej podstawy.

Pokolorujmy jeszcze podstawy naszego graniastosłupa.

sage: gr5 = polygon3d(vp1,color=’blue’,opacity=0.1)\

+ polygon3d(vp2,color=’blue’,opacity=0.1)

sage: gr5.show(frame=False)

137

Page 139: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

Mozna tez poleceniem text3d opisac wierzchołki, np.

# kolorowe podstawy

sage: for i in range(0,n):

gr5 = gr5 + text3d(’A%1i’%(i+1), v_podst1[i], size=14)

gr5 = gr5 + text3d(’B%1i’%(i+1), v_podst2[i], size=14)

sage: gr5.show(frame=False)

Widzicie wiec, ze mozemy łatwo tworzyc bryły i je modyfikowac. Poniewaz nie ma gotowej funkcji,

która potrafi rysowac dowolne graniastosłupy z mozliwoscia pokazywania przekatnych oraz opisywa-

niem wierzchołków, postanowiłem taka funkcje napisac.

138

Page 140: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.2. GRANIASTOSŁUPY I OSTROSŁUPY

Definicje tej funkcji mozecie zobaczyc w dodatku A. Jest ona równiez zdefiniowana w notatniku pro-

gramu Sage dołaczonym do tej ksiazki. Zobaczmy jak ta funkcja działa.

sage: g = graniastoslup(5)

sage: g.show(frame=False)

sage: g = graniastoslup(5,przekatne_gr=True)

sage: g.show(frame=False)

sage: g = graniastoslup(5,przekatne_sb=True)

sage: g.show(frame=False)

Z lewej strony widzimy graniastosłup pieciokatny, taki jak we wczesniejszym przykładzie. Na kolejnych

rysunkach widac ten sam graniastosłup po uzyciu opcji pokazujacych odpowiednie przekatne. Nary-

sujmy tez kilka innych graniastosłupów.

sage: g = graniastoslup(3,przekatne_sb=True)

sage: g.show(frame=False)

sage: graniastoslup(4,przekatne_gr=True,\

przekatne_sb=True).show(frame=False)

sage: g = graniastoslup(6,przekatne_gr=True)

sage: g.show(frame=False)

Łatwo mozemy dodac sterowanie kolorami scian i podstaw czy tez oznaczac pewne przekroje tych

graniastosłupów. Zostawiam to zadanie jako cwiczenie dla czytelnika.

Rozwiazmy teraz kilka zadan z graniastosłupami.

139

Page 141: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

Przykład 1. Oblicz pole powierzchni całkowitej graniastosłupa prawidłowego czworokat-

nego, którego przekatna długosci 5 cm jest nachylona do podstawy pod katem 600.

Wiemy, ze kat miedzy przekatna graniastosłupa prawidłowego, a płaszczyzna podstawy to kat, jaki

tworzy ta przekatna z przekatna podstawy. Narysujmy graniastosłup czworokatny z widoczna przekatna

główna i przekatna podstawy.

sage: g = graniastoslup(4,przekatne_gr=True)

sage: g.show(frame=False)

Z danych wynika, ze ](A3, A1, B3) = 600 oraz |A1B3| = 5 cm. Zatem trójkat A1, B3, A3 jest trójkatem

prostokatnym odpowiednio o katach 300, 600, 900, który widoczny jest na rysunku po prawej stronie.

Kazdy, kto rozwiazywał zadania ze stereometrii czy planimetrii w szkole sredniej z pewnoscia dosyc

czesto miał z nim stycznosc. Warto znac jego podstawowe własnosci. Narysowałem go poleceniami:

sage: v= [[0,0], [2,0], [2,2*sqrt(3)] ]

sage: tr = polygon(v, fill=False)

140

Page 142: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.2. GRANIASTOSŁUPY I OSTROSŁUPY

oraz dodałem odpowiedni opis funkcja text.

sage: tr = tr \

+ text(r"$a\sqrt3$",[3.33, 2], fontsize=14)\

+ text(r"$60^0$",[0.33, 0.15], fontsize=14)\

+ text(r"$30^0$",[2.81, 3.42], fontsize=14)\

+ text(r"$a$",[1.5, -0.13], fontsize=14)\

+ text(r"$2a$",[1.23, 2], fontsize=14)

sage: tr.show(axes=False)

Aby obliczyc pole powierzchni całkowitej potrzebujemy długosci krawedzi podstawy oraz wysokosc

tego graniastosłupa. Przyjmijmy oznaczenia,

b = |A1A2| = |A2A3| = |A3A4| = |A4A1|, H = |A1B1| = |A2B2| = |A3B3| = |A4B4|.

Wtedy

P = 2b2 + 4bH,

tzn. siatka tego graniastosłupa składa sie z dwóch kwadratów o boku b oraz czterech prostokatów

o wymiarach b×H .

W pierwszym rozdziale dowiedzieliscie sie jak definiujemy funkcje w programie Sage. Przygotujmy

wiec sobie funkcje , za pomoca której pózniej obliczymy szukane pole.

sage: var(’b,H’)

sage: P(b,H) = 2*b^2 + 4*b*H

Z własnosci trójkata A1, B3, A3 mozemy obliczyc wysokosc |A3B3| = H . Skoro

2a = |A1B3| = 5 cm

wiec a = 2.5 cm oraz

H = a√3 = 2.5

√3 cm.

Odcinek a = |A1A3| = 2.5 cm jest przekatna kwadratu o boku b, zatem b√2 = 2.5 (przekatna

141

Page 143: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

kwadratu o boku b ma długosc b√2). Stad

b =2.5√2=

5√2

4cm.

Mozemy juz obliczyc pole powierzchni całkowitej graniastosłupa

sage: b = 5*sqrt(2)/4

sage: H = 5*sqrt(3)/2

sage: P(b,H)

wynik:25

8

√2(4√3 +

√2)

Przykład 2. W graniastosłupie prawidłowym szesciokatnym długosc krótszej przekatnej

podstawy wynosi 3 i jest dwa razy krótsza od dłuzszej przekatnej tego graniastosłupa. Oblicz

objetosc i pole powierzchni tego graniastosłupa.

Wykonajmy najpierw odpowiedni rysunek.

sage: g = graniastoslup(6,przekatne_gr=True)

sage: g.show(Frame=false)

Z danych zadania wynika, ze |A2A4| = 3 oraz

|A2B5| = 2|A2A4| = 6.

Oznaczmy sobie literka a długosc boku szesciokata foremnego podstawy, np. a = |A1A2| oraz litera

142

Page 144: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.2. GRANIASTOSŁUPY I OSTROSŁUPY

H wysokosc tego graniastosłupa, np. H = |A4B4|. Jak wiemy szesciokat foremny składa sie z szesciu

identycznych trójkatów równobocznych.

a

a

a

600

a√3

Zatem pole powierzchni całkowitej i objetosc graniastosłupa obliczymy za pomoca wzorów

P = 2 · Pp + Pb = 2 · 6 · a2√3

4+ 6 · a ·H = 3a2

√3 + 6aH,

oraz

V = Pp ·H = 6 · a2√3

4·H =

3a2√3

2H.

Skorzystalismy tu ze wzoru na pole trójkata równobocznego o boku a, tzn. a2√3

4. Widzimy na powyz-

szym rysunku, ze

|A2A4| = a√3 = 3.

Zatem a =√3. Musimy jeszcze obliczyc wysokosc graniastosłupa. Wystarczy zastosowac twierdzenie

Pitagorasa do trójkata A2, A5, B5:

|A2A5|2 + |A5B5|2 = |A2B5|2.

Poniewaz |A2A5| = 2a = 2√3, |A2B5| = 6 i |A5B5| = H , wiec

(2√3)2

+H2 = 62 ⇒ H =√36− 12 =

√24 = 2

√6.

W Sage-u mozemy go rozwiazac nastepujaco:

sage: var(’H’); assume(H>0);

sage: solve( (2*sqrt(3))^2 + H^2 == 6^2, H)

wynik:[H = 2

√6]

143

Page 145: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

Wiecej wiadomosci na temat rozwiazywania równan dowiecie sie w rozdziale 4. Chciałbym zwrócic tu

uwage na instrukcje assume(H > 0). Powoduje ona, ze zmienna H moze przyjmowac tylko wartosci

dodatnie (jest to przeciez długosc odcinka). Zapewne zauwazyliscie, ze bez tej instrukcji program

zwróciłby dwa rozwiazania.

sage: var(’H’)

sage: solve( (2*sqrt(3))^2 + H^2 == 6^2, H)

wynik:[H = −2

√6, H = 2

√6]

Aby Sage zapomniał o wczesniejszych załozeniach nalezy wydac polecenie forget().

Wrócmy jednak do naszego zadania. Skoro mamy juz obliczone podstawe a oraz wysokosc H , mozemy

obliczyc pole i objetosc.

sage: a = sqrt(3)

sage: H = 2*sqrt(6)

sage: P = 3*a^2*sqrt(3) + 6*a*H

sage: V = 3*a^2*sqrt(3)*H/2

sage: print ’P = ’, P.simplify_radical()

sage: print ’V = ’, V.simplify_radical()

wynik: P = 9√3 + 36

√2, V = 27

√2.

Instrukcja simplify_radical() powoduje, ze wyniki sa maksymalnie upraszczane.

Przykład 3. Pole powierzchni całkowitej ostrosłupa prawidłowego trójkatnego wynosi

36√3 i wszystkie jego sciany maja równe pola. Oblicz jego objetosc.

Ostrosłup prawidłowy trójkatny, którego wszystkie sciany maja równe pola musi byc czworoscianem

foremnym. Narysujmy przykładowy ostrosłup trójkatny.

sage: A = (0,0,0); B = (2,0,0); C = (1,sqrt(3),0);

sage: S = (1,sqrt(3)/3,0); W = (1,sqrt(3)/3,2);

sage: cz = polygon3d([A,B,C],color="blue",opacity=0.2)

144

Page 146: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.2. GRANIASTOSŁUPY I OSTROSŁUPY

sage: cz = cz \

+ line3d([A, B, C, A],color="blue",thickness=2)\

+ line3d([A,W],color="blue",thickness=2)\

+ line3d([B,W],color="blue",thickness=2)\

+ line3d([C,W],color="blue",thickness=2)\

+ line3d([S,W],color="red",thickness=3)\

+ line3d([S,C],color="green",thickness=2)

sage: cz.show(frame=False)

Instrukcje odpowiedzialne za wstawienie odpowiednich etykiet pominałem. Zostawie to jako cwiczenie

dla czytelnika.

Skoro jest to czworoscian foremny, to wszystkie jego krawedzie sa jednakowej długosci. Oznaczmy te

długosc literka a. Wtedy pole całkowite obliczymy wzorem

P = 4 · a2√3

4= 36

√3.

Po uproszczeniu otrzymujemy a = 6.

145

Page 147: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

Wysokosc czworoscianu mozemy obliczyc korzystajac z własnosci trójkata prostokatnego CSW, gdzie

|CW | = a = 6 natomiast |SC| stanowi 23

wysokosci trójkata równobocznego w podstawie, czyli

|SC| = 2

3· a

√3

2=

2

3· 6

√3

2= 2

√3.

Zatem z twierdzenia Pitagorasa otrzymujemy

H2 + |SC|2 = a2 ⇒ H =

√62 −

(2√3)2

=√36− 12 =

√24 = 2

√6.

Mozemy juz obliczyc objetosc ostrosłupa:

V =1

3PsH =

1

3· 6

2√3

4· 2√6 = 6

√18 = 18

√2.

Wyznaczmy w programie Sage wzór na objetosc czworoscianu foremnego.

sage: var(’a,h,H,Pp’)

sage: Pp = a^2*sqrt(3)/4 #pole podstawy Pp = a2√3

4

sage: h = a*sqrt(3)/2 #wysokosc podstawy h = a√3

2

sage: H = sqrt(a^2-((2/3)*h)^2) #wysokosc H =√a2 − ( 23h)

2

sage: V = (1/3) * Pp * H

sage: V = V.simplify_radical()

wynik: V =1

12

√2a3.

Mozemy teraz sprawdzic nasze obliczenia wydajac polecenie:

sage: V = V.subs(a = 6)

wynik: V = 18√2.

146

Page 148: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.3. BRYŁY OBROTOWE

4.3 Bryły obrotowe

Poza wieloscianami, na lekcjach stereometrii z pewnoscia zajmowaliscie sie bryłami obrotowymi,

czyli takimi, które powstaja w wyniku obrotu pewnych figur płaskich. Poznaliscie zapewne trzy rodzaje:

walec, stozek i kule. Narysujmy je w programie Sage.

Poleceniem sphere() narysujemy kule widoczna z lewej strony ponizszego rysunku.

sage: sphere()

Natomiast kula z prawej strony została narysowana za pomoca polecen:

sage: kula = sphere(size=1, opacity=0.2)\

+ point3d((0,0,0), size=20, color=’red’)\

+ line3d([(0,0,0), (sqrt(3)/3,sqrt(3)/3,sqrt(3)/3)],\

color=’green’)

+ text3d(’R’, (sqrt(3)/6, sqrt(3)/6, sqrt(3)/6+0.1))

+ circle((0,0,0), 1, color=’red’)

+ implicit_plot3d(y^2+z^2-1,(x,0,0.003),(y,-1,1),\

(z,-1,1),color=’red’)

sage: kula.show(frame=False,aspect_ratio=1)

Domyslnie srodek kuli jest w punkcie (0, 0, 0). Opcja size okresla promien kuli. Polecenia

line3d, point3d, text3d juz znacie. Dodatkowo dorysowałem dwa okregi. Pierwszy polece-

niem circle((0,0,0), 1, color=’red’) (o srodku (0, 0, 0) i promieniu 1).

147

Page 149: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

Drugi okrag narysowałem funkcja

implicit_plot3d(y^2+z^2-1,(x,0,0.003),(y,-1,1),(z,-1,1),color=’red’).

Słuzy ona do rysowania dowolnych krzywych w przestrzeni. Musimy tylko znac jej równanie. Ja

chciałem narysowac okrag o srodku (0, 0, 0) i promieniu 1, który lezy w płaszczyznie Oyz. Równanie

tego okregu jest postaci:

y2 + z2 = 1

gdzie y, z ∈ 〈−1, 1〉 oraz x ∈ 〈0, 0.03〉. Dlatego dla zmiennej x dałem tak mały przedział, abysmy

zobaczyli okrag. Zobaczmy jak wygladałby ten sam rysunek dla x ∈ 〈−1, 1〉.

Zwrócmy jeszcze uwage na pewien szczegół dotyczacy funkcji show. Otóz, uzyłem tym razem opcji

aspect_ratio=1. Powoduje ona, ze kształt rysowanych figur nie ulegnie deformacji, podczas łacze-

nia kilku figur na jednym wykresie. Spróbujcie wykonac ostatni rysunek bez tej opcji.

Do rysowania stozków równiez mamy zdefiniowana gotowa funkcje o nazwie Cone. Przed skorzysta-

niem z niej musimy dołaczyc biblioteke

from sage.plot.plot3d.shapes import Cone.

Teraz wystarczy wydac polecenie Cone(r,h), gdzie r jest promieniem podstawy oraz h wysokoscia,

np.

sage: Cone(1, 2)

Stozek na ponizszym rysunku stojacy z prawej strony wykonałem instrukcjami:

sage: from sage.plot.plot3d.shapes import Cone

sage: stozek = Cone(1, 2, color=’blue’, opacity=0.2)\

+ circle((0,0,0), 1, color=’red’)

148

Page 150: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.3. BRYŁY OBROTOWE

Etykiety dodałem za pomoca polecen:

sage: stozek = stozek

+ line3d([(0,0,0), (sqrt(2)/2,sqrt(2)/2,0)])\

+ line3d([(0,0,0), (0,0,2)],color=’green’,thickness=2)\

+ point3d((0,0,0), size=10)\

+ text3d(’R’, (sqrt(2)/4,sqrt(2)/4,0.1))\

+ text3d(’H’, (-0.1,0,1))\

+ text3d(’t’, (sqrt(2)/4+0.1,sqrt(2)/4,1.1))

Walec potraficie juz narysowac, gdyz uzyłem odpowiedniego polecenia podczas kreslenia okregu na

kuli. Chodzi tu o polecenie implicit_plot3d. Narysujmy teraz walec, wyznaczony przez okrag o

równaniu

x2 + y2 = 9,

czyli o srodku w punkcie (0, 0) i promieniu 3.

sage: implicit_plot3d(x^2+y^2-9,\

(x,-4,4),(y,-4,4),(z,-2,0))

Jako cwiczenie pozostawiam czytelnikowi wykonanie takiego walca, jak na rysunku z prawej.

149

Page 151: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

Przypomnijmy wzory na pola powierzchni oraz objetosci tych brył:

Pole całkowite Objetosc

Walec Pw = πR2 + 2πRH Vw = πR2H

Stozek Ps = πR2 + 2πRt Vs =13πR2H

Kula Pk = 4πR2 Vk = 43πR3

Oznaczenia przyjałem takie, jak na powyzszych rysunkach. Mozemy zdefiniowac sobie te wzory w

programie Sage, co ułatwi pózniejsze rozwiazywanie zadan.

sage: var(’R,H,Pw,Ps,Pk,Vw,Vs,Vk’)

sage: Pole_walca = P == pi*R^2 + 2*pi*R*H

sage: Objetosc_walca = V == pi*R^2*H

sage: Pole_stozka = P == pi*R^2 + 2*pi*R*t

sage: Objetosc_stozka = V == pi*R^2*H/3

sage: Pole_kuli = P == 4*pi*R^2

sage: Objetosc_kuli = V == 4*pi*R^3/3

O tworzeniu i rozwiazywaniu równan dowiecie sie wiecej w rozdziale czwartym tej ksiazki. Jednak

chciałbym tu wyjasnic kilka szczegółów. Otóz, powyzszymi instrukcjami utworzylismy sobie szesc

równan, które nazwalismy odpowiednio Pole_walca, Objetosc_walca, Pole_stozka, itd.

Jeszcze raz podkreslam, ze sa to tylko nazwy naszych równan.

150

Page 152: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.3. BRYŁY OBROTOWE

Teraz mozemy łatwo wyswietlic wzór na pole powierzchni stozka poleceniem

sage: Pole_stozka

wynik: P = πR2 + 2πRt

albo obliczyc objetosc walca o promieniu podstawy 2 i wysokosci 3.

sage: print ’Dla R=2, H=3,’, Objetosc_walca.subs(R=2,H=3)

wynik: Dla R = 2, H = 3, V = 12π

Poza tym mozemy z tych równan wyznaczac inne niewiadome. Przypuscmy, ze w zadaniu podane jest

pole powierzchni całkowitej p i promien r podstawy stozka, tzn.

P = p, R = r.

Wyznaczmy wzór na tworzaca stozka.

sage: solve(Pole_stozka, t)

wynik:

[t = −πR2 − P

2πR

]

Rozwiazmy teraz kilka przykładowych zadan dotyczacych brył obrotowych.

Przykład 4. Oblicz objetosc i długosc tworzacej stozka o promieniu podstawy 3 i polu

powierzchni całkowitej 33π.

Zanim przystapicie do jakichkolwiek obliczen, warto do zadania ze stereometrii sporzadzic odpowiedni

rysunek. Obliczmy najpierw długosc tworzacej tego stozka.

sage: solve(Pole_stozka.subs(P=33*pi,R=3), t)

wynik: [t = 4]

Aby obliczyc objetosc, musimy znac wysokosc tego stozka. Majac promien podstawy r = 3 oraz długosc

tworzacej t = 4 z twierdzenia Pitagorasa zastosowanego do trójkata o bokach R,H, t obliczymy H .

Zatem

H2 +R2 = t2 ⇒ H =√t2 −R2.

sage: H = sqrt(4^2-3^2)

151

Page 153: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

wynik:√7

Mozemy wiec obliczyc objetosc.

sage: Objetosc_stozka.subs(R=3, H=sqrt(7))

wynik: V = 3√7π

Przykład 5. Kule przecieto dwiema równoległymi płaszczyznami. Promienie r1, r2 kół

uzyskanych w wyniku tych przekrojów oraz odległosc d miedzy nimi sa kolejnymi liczbami

naturalnymi r1, r2, d, a ich suma wynosi 21. Oblicz objetosc kuli.

Wykonajmy na poczatku odpowiedni rysunek.

Przyjmijmy oznaczenia zgodnie z rysunkiem. Zatem d = d1 + d2. Aby obliczyc objetosc kuli musimy

znac jej promien R.

152

Page 154: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.3. BRYŁY OBROTOWE

Z tresci zadania wynika, ze jesli r1 = n, gdzie n jest pewna liczba naturalna, to r2 = n+1 oraz d = n+2

(sa to trzy kolejne liczby naturalne). Skoro ich suma ma dac 21, wiec

n+ (n+ 1) + (n+ 2) = 21 ⇒ 3n+ 3 = 21 ⇒ 3n = 18 ⇒ n = 6.

Stad otrzymujemy

r1 = 6, r2 = 7, d = 8.

Zauwazmy teraz, ze dwa trójkaty widoczne na rysunku sa prostokatne. Zatem mozemy do nich zastoso-

wac twierdzenie Pitagorasa, tzn.

r21 + d21 = R2 oraz r22 + d22 = R2.

Prawe strony tych równan sa identyczne, czyli

r21 + d21 = r22 + d22.

Zapiszmy to równanie w Sage-u.

sage: var(’r1,r2,d1,d2’)

sage: rownanie = r1^2+d1^2 == r2^2+d2^2

wynik: d21 + r21 = d22 + r22

Poniewaz d = 8, wiec d2 = 8− d1. Wstawmy do powyzszego równania za d2 wyrazenie 8− d1 oraz za

r1 i r2 obliczone wczesniej wartosci.

sage: rownanie.subs(d2 = 8-d1, r1 = 6, r2 = 7)

wynik: d21 + 36 = (d1 − 8)2+ 49

Otrzymalismy tym samym równanie z jedna niewiadoma d1. Rozwiazmy je:

sage: solve(rownanie.subs(d2=8-d1, r1=6, r2=7), d1)

wynik:

[d1 =

(77

16

)]

153

Page 155: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

Rozwiazujac to równanie samodzielnie, musielibysmy wykonac nastepujace czynnosci:

62 + d21 = 72 + (8− d1)2,

36 + d21 = 49 + 64− 16d1 + d21,

16d1 = 77,

d1 =77

16.

Teraz, korzystajac z równosci R2 = r21 + d21, mozemy obliczyc promien kuli

sage: assume(R>0)

sage: promien = solve(R^2==6^2+(77/16)^2, R)

wynik:

[R =

1

16

√15145

]

Na koniec objetosc kuli obliczymy poleceniem:

sage: Objetosc_kuli.subs(R=1/16*sqrt(15145))

wynik: V =15145

3072

√15145π

4.4 Zadania

Do kazdego z ponizszych zadan sporzadz odpowiednie rysunki w programie Sage.

1. Wykonaj rysunek szesciokata foremnego taki, jak w rozwiazaniu przykładu 2.

2. Oblicz objetosc graniastosłupa prawidłowego czworokatnego, którego przekatna ma długosc 5 cm

i tworzy z przekatna podstawy kat 300.

3. W graniastosłupie prostym w podstawie znajduje sie trójkat prostokatny, którego boki tworza

proporcje 1 :√3 : 2. Przeciwprostokatna podstawy tworzy z przekatna sciany bocznej kat 450.

Oblicz pole powierzchni i objetosc tego graniastosłupa jesli jego wysokosc wynosi 6.

4. Pole powierzchni bocznej graniastosłupa prawidłowego trójkatnego jest dwa razy wieksze od pola

jednej podstawy. Wysokosc ostrosłupa ma długosc 5. Oblicz pole powierzchni i objetosc tego

graniastosłupa.

5. Graniastosłup prawidłowy szesciokatny ma krótsza przekatna długosci 4√2, która jest dwa razy

dłuzsza od dłuzszej przekatnej podstawy. Oblicz pole powierzchni i objetosc tego graniastosłupa.

154

Page 156: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

4.4. ZADANIA

6. Oblicz objetosc graniastosłupa prostego, którego podstawa jest rombem o polu równym 12√13.

Dłuzsza przekatna tego rombu ma długosc 12 i tworzy z przekatna graniastosłupa kat 300. Oblicz

pole powierzchni całkowitej tego graniastosłupa.

7. Podstawa ostrosłupa jest prostokat o wymiarach 4 × 3. Oblicz objetosc tego ostrosłupa wiedzac,

ze stosunek długosci krawedzi bocznej do krawedzi podstawy wynosi 3 : 2.

8. Srodek wysokosci ostrosłupa prawidłowego trójkatnego jest oddalony od sciany bocznej o 5 cm.

Krawedz boczna jest nachylona do płaszczyzny podstawy pod katem 300. Oblicz objetosc i pole

powierzchni całkowitej tego ostrosłupa.

9. Wysokosc ostrosłupa prawidłowego szesciokatnego ma długosc 8 i tworzy ze sciana boczna kat

300. Oblicz objetosc i pole powierzchni całkowitej tego ostrosłupa.

10. Ostrosłup ma w podstawie kwadrat o boku 7 cm i jedna z krawedzi bocznych jest prostopadła do

podstawy. Oblicz objetosc i pole powierzchni całkowitej tego ostrosłupa wiedzac, ze najdłuzsza

krawedz boczna ma długosc 14 cm.

11. Prostokat, którego długosci boków spełniaja proporcje 2 : 3, jest przekrojem osiowym dwóch

walców. Oblicz stosunek objetosci i pól powierzchni tych walców.

12. Stozek o tworzacej długosci 4√3 został przedzielony płaszczyzna prostopadła do wysokosci

stozka, która przedzieliła go na dwie bryły. Jedna z tych brył jest stozkiem o promieniu podstawy

2√3 i powierzchni bocznej trzykrotnie mniejszej od powierzchni wyjsciowego stozka. Oblicz

objetosc bryły, która powstała po podziale i która nie jest stozkiem.

13. Powierzchnia boczna stozka po rozwinieciu jest wycinkiem koła o kacie srodkowym 1200. Oblicz

pole powierzchni całkowitej i objetosc tego stozka, jesli jego tworzaca ma długosc 6.

14. Kule wpisano w stozek, którego wysokosc jest równa 2√3, a promien podstawy wynosi 2. Oblicz

objetosc o pole powierzchni tej kuli.

155

Page 157: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 4. STEREOMETRIA

ODPOWIEDZI

1. A = [0,0]; B = [2,0]; C = [3,sqrt(3)];

D=[2,2*sqrt(3)]; E=[0, 2*sqrt(3)]; F=[-1, sqrt(3)]

v = [A,B,C,D,E,F]

sz = polygon(v, fill=False)

sz = sz + line([A,D], color="red",thickness=1)

sz = sz + line([B,E], color="green",thickness=1)

sz = sz + line([A,B], color="green",thickness=1)

sz = sz + line([C,[1,sqrt(3)]], color="red",thickness=1)

sz = sz + line([[-.1,sqrt(3)],[1,sqrt(3)]], color="red",thickness=0.5)

sz = sz + line([[-1,sqrt(3)],[-.6,sqrt(3)]], color="red",thickness=0.5)

sz = sz + line([A,E], color="green",thickness=1)

sz = sz + text(r"$a$",[1, -0.15], fontsize=14)

sz = sz + text(r"$a$",[1.6, 1.15], fontsize=14)

sz = sz + text(r"$a$",[0.8, sqrt(3)+0.9], fontsize=14)

sz = sz + text(r"$60^0$",[1.6, 0.2], fontsize=14)

sz = sz + text(r"$a\sqrt3$",[-.35, sqrt(3)], fontsize=14)

sz.show(figsize=4, axes=False)

2. Krawedz podstawy: a = 5√6

4, wysokosc graniastosłupa: H = 2.5, objetosc: V = 375

16.

3. Pp =9√3

2, Pc = 108 + 40.5

√3, V = 27

√3.

4. Pp = 75√3, Pc = 225

√3, V = 375

√3.

5. Pp = 3√3, Pc = 3

√3 + 12

√13, V = 3

√78.

6. Pc = 24√13 + 96

√3.

7. V = 4√14.

8. V = 1750√63

3.

9. Pc = 256 + 32√3, V = 682 2

3.

10. Pc = 49(1 +√2 +

√3), V = 343

√2

3.

11. P1P2

= 1621

, V1V2

= 23.

12. V = (2√2− 1)

√21π.

13. Pc = 16π, V = 16√2

3.

14. Pc =48π9

, V = 32√3π

27.

156

Page 158: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

Rozdział 5

Dodatek A

Dodatek ten zawiera definicje funkcji pozwalajaca w prosty i szybki sposób rysowac graniastosłupy. Na

przykład, aby narysowac graniastosłup szesciokatny, wystarczy wydac polecenie

sage: g = graniastoslup(6)

sage: g.show()

Aby narysowac graniastosłup n–katny dla n > 6 musimy podac liste wierzchołków jednej podstawy

tego graniastosłupa. Dla uproszczenia ma to byc lista punktów na płaszczyznie. Narysujmy graniastosłup

siedmiokatny.

sage: v = [[0,0],[2,0],[3,1.5],[2,3],\

[-0.5,4],[-3,2],[-2,1]]

sage: g7 = graniastoslup(7,v)

sage: g7.show()

Aby zobaczyc przekatne graniastosłupa nalezy uzyc opcji przekatne_gr=True. Podobnie przekatne

scian bocznych zobaczymy, gdy uzyjemy opcji przekatne_sb=True. Domyslnie sa one ukryte.

sage: g4 = graniastoslup(4,przekatne_gr=True,\

przekatne_sb=True)

sage: g4.show()

157

Page 159: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 5. DODATEK A

Zobaczmy jak wyglada definicja tej funkcji

#graniastosłup n - katny

def graniastoslup(n=3, wierzcholki=[], przekatne_gr=False, przekatne_sb=False):

h = 2 #wysokosc graniastosłupa

#definicja współrzednych wierzchołków dla n = 3, 4, 5 i 6

#dla graniastosłupów n-katnych, gdzie n > 6

#nalezy samemu zdefiniowac liste wierzchołków

v3 = [[0,0], [2,0], [1,2]]

v4 = [[0,0],[2,0],[2,2],[0,2]]

v5 = [[0,0],[2,0.5],[2.5,2],[0.5,3],[-1,2]]

v6 = [[0,0],[2,0],[3,1.5],[2,3],[0,3],[-1,1.5]]

dv = [v3, v4, v5, v6]

#jesli podamy złe paramatery dla, których nie jestesmy w stanie

#narysowac graniastosłup,

# to wyswietlamy te informacje

gr0 = text3d(’Graniastosłup nie istnieje.’, [0,0,0], color=(0,0,0), size=14)

#sprawdzamy, jaka liczbe wierzchołków podał uzytkownik, i na tej podstawie

#definiujemy ich liste: v

if n < 3:

print ’Liczba wierzchołków musi byc wieksza od 2’

return gr0

elif (not n) and (not wierzcholki):

n = 3

if not wierzcholki:

v = dv[0] #domyslnie rysujemy gr. trójkatny

elif n>2 and n < 7:

if not wierzcholki:

v = dv[n-3] #v[0] - trójkatny,

#v[1] - czworokatny,

#v[2] - pieciokatny,

#v[3] - szesciokatny

else:

if len(wierzcholki) >= n:

v = wierzcholki

158

Page 160: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

else:

print ’Liczba wierzchołków musi byc równa ’ , n

return gr0

else:

if not wierzcholki:

print ’Jesli n > 6, to trzeba podac liste wierzchołków’

return gr0

else:

if len(wierzcholki) >= n:

v = wierzcholki

else:

print ’Liczba wierzchołków musi byc wieksza lub \

równa ’ , n

return gr0

#v zawiera liste wierzchołków na płaszczyznie

#na jej podstawie definiujemy dwie podstawy w przestrzeni

#do jednej dodamy współrzedna 0 a do drugiej h - wysokosc

vp1 = []

vp2 = []

import copy

vh = copy.deepcopy(v) #kopia listy wierzchołków

for A in v:

A.append(0)

vp1.append(A)

for B in vh:

B.append(h)

vp2.append(B)

#print ’vp2’, vp2

#print ’vp1’, vp1

#jesli wierzchołków jest wiecej niz n, to bierzemy pierwszych n,

#a reszte wyrzucamy

#potrzebne dla funkcji polygon3d

159

Page 161: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 5. DODATEK A

while len(vp1) > n:

vp1.pop()

vp2.pop()

#rysujemy podstawy poleceniem polygon3d

gr = polygon3d(vp2, color="green", opacity=0.1)\

+ polygon3d(vp1, color="blue", opacity=0.1)

#dodajemy krawedzie boczne - line3d

for i in range(0,n):

gr = gr + line3d([vp1[i], vp2[i]], color="blue",thickness=3)

#dodatkowo obramujmy podstawy

for i in range(0,n):

gr = gr + line3d([vp1[i], vp1[(i+1) % n]], color="blue",thickness=3)

gr = gr + line3d([vp2[i], vp2[(i+1) % n]], color="blue",thickness=3)

#dodajmy jeszczedo wierzchołków etykiety

#obliczamy srodek masy kazdej z podstaw, aby odsunac etykiety od wierzchołków

Cx = 0

Cy = 0

for p in vp1:

Cx = Cx + p[0]

Cy = Cy + p[1]

Cx = Cx/n

Cy = Cy/n

C1 = [Cx, Cy, 0]

C2 = [Cx, Cy, h]

if n == 3:

d = 2

else:

d = 0.2*n + 0.5

for i in range(0,n):

gr = gr + text3d(’A%1i’%(i+1), \

[ vp1[i][0]+(vp1[i][0]-C1[0])/(d*n), vp1[i][1]+(vp1[i][1]-C1[1])/(d*n),\

vp1[i][2]+(vp1[i][2]-C1[2])/(d*n)+ .01 ],\

160

Page 162: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

color=(0,0,0), size=14)

gr = gr + text3d(’B%1i’%(i+1), \

[ vp2[i][0]+(vp2[i][0]-C2[0])/(d*n), vp2[i][1]+(vp2[i][1]-C2[1])/(d*n),\

vp2[i][2]+(vp2[i][2]-C2[2])/(d*n)+ .01 ],\

color=(0,0,0), size=14)

#Opcja przekatne_gr = True bedzie mozna zobaczyc przekatne graniastosłupa

if przekatne_gr == True and n < 7 and not wierzcholki:

if n <= 3:

print ’Graniastosłup nie posiada przekatnych’

elif n == 4:

gr = gr + line3d([vp1[0], vp2[2]], color="green",thickness=3)\

+ line3d([vp1[0], vp1[2]], color="green",thickness=2)

elif n == 5:

gr = gr + line3d([vp1[0], vp2[2]], color="green",thickness=3)\

+ line3d([vp1[0], vp1[2]], color="green",thickness=2)

gr = gr + line3d([vp1[0], vp2[3]], color="red",thickness=3)\

+ line3d([vp1[0], vp1[3]], color="red",thickness=2)

elif n == 6:

gr = gr + line3d([vp1[1], vp2[4]], color="green",thickness=3)\

+ line3d([vp1[1], vp1[4]], color="green",thickness=2)

gr = gr + line3d([vp1[1], vp2[3]], color="red",thickness=3)\

+ line3d([vp1[1], vp1[3]], color="red",thickness=2)

else:

print ’Nie zaimplementowano rysowania przekatnych dla n > 6\

badz dla listy własnych wierzchołków.’

#Opcja przekatne_sb = True bedzie mozna zobaczyc przekatne scian bocznych

if przekatne_sb == True and n < 7 and not wierzcholki:

if n == 3:

gr = gr + line3d([vp1[0], vp2[2]], color="green",thickness=2)\

+ line3d([vp1[1], vp2[2]], color="red",thickness=2)

elif n == 4:

gr = gr + line3d([vp1[0], vp2[3]], color="gray",thickness=2)\

+ line3d([vp1[2], vp2[3]], color="gray",thickness=2)

elif n == 5:

gr = gr + line3d([vp1[0], vp2[4]], color="gray",thickness=2)\

+ line3d([vp1[3], vp2[4]], color="gray",thickness=2)

161

Page 163: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

ROZDZIAŁ 5. DODATEK A

elif n == 6:

gr = gr + line3d([vp1[1], vp2[0]], color="gray",thickness=2)\

+ line3d([vp1[5], vp2[0]], color="gray",thickness=2)

else:

print ’Nie zaimplementowano rysowania przekatnych dla n > 6 \

badz dla listy własnych wierzchołków.’

return gr

162

Page 164: Dlaczego warto nauczac z komputerem?´ - iCSEicse.us.edu.pl/icse/wp-content/uploads/sage_ebook_print.pdf · Rewolucja technologiczna Na naszych oczach obserwujemy rewolucje˛ technologii

Podsumowanie

Tym sposobem dotarlismy do konca ksiazki. Mam nadzieje, ze informacje w niej zawarte okaza sie uzy-

teczne dla wszystkich czytelników a zarazem stana sie bodzcem do dalszego pogłebiania wiedzy na temat

programu Sage. Widzimy, ze do kazdego działu matematyki omawianego w szkole ponadgimnazjalnej

znajdziemy odpowiednie narzedzia, które z pewnoscia pomoga w zrozumieniu wielu zagadnien czy przy

rozwiazywaniu zadan. Oczywiscie w ksiazce opisałem tylko niewielka ich liczbe, tych najbardziej przy-

datnych w szkole. Jednakze mozliwosci programu sa naprawde ogromne, mozemy wykorzystywac go

do obliczen duzo bardziej zaawansowanych. Mamy dostepnych bardzo duzo narzedzi wykorzystywa-

nych we współczesnej teorii liczb i kryptologii. Jesli ktos interesuje sie analiza matematyczna, algebra,

optymalizacja czy matematyka dyskretna znajdzie równiez wiele przydatnych narzedzi. Nie bede teraz

wymieniał ani opisywał ich wszystkich, jednakze chce tylko uswiadomic czytelnika, ze jesli zajmuje

sie jakimkolwiek działem matematyki, to z pewnoscia znajdzie w programie Sage wiele przydatnych

narzedzi dla siebie.

163