Professional Documents
Culture Documents
w szkołach ponadgimnazjalnych
Marcin Kowalewski
2
Spis treści
1 Funkcje 7
1.1 Podstawowe wiadomości o funkcjach . . . . . . . . . . . . . . . . . . . . . 7
1.2 Najcz˛eściej zadawane pytania dotyczace
˛ funkcji . . . . . . . . . . . . . . 14
1.3 Funkcje poznane w szkole . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.3.1 Funkcja liniowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.3.2 Funkcja kwadratowa . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.3.3 Funkcja wymierna . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.3.4 Funkcja wykładnicza i logarytmiczna . . . . . . . . . . . . . . . . . 39
1.4 Zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3 Stereometria 81
3.1 Bryły platońskie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.2 Graniastosłupy i ostrosłupy . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.3 Bryły obrotowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.4 Zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.5 Dodatek A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3
SPIS TREŚCI
4
Wstep
˛
Na wstepie
˛ chciałbym zacytować słowa znanego polskiego matematyka, profesora Hugo
Dyonizego Steinhausa (1887-1972):
1
Matematyka podobna jest do wieży, której fundamenty położono przed wie-
kami, a do której dobudowuje sie˛ coraz wyższe pietra.
˛ Aby zobaczyć postep
˛
budowy, trzeba iść na pietro
˛ najwyższe, a schody sa˛ strome i składaja˛ sie˛ z
licznych stopni. Rzecza˛ popularyzatora jest zabrać słuchacza do windy, w któ-
rej nie zobaczy ani pośrednich pieter,
˛ ani praca˛ wieków ozdobionych komnat,
ale przekona sie,
˛ że gmach jest wysoki i wciaż
˛ rośnie.
Ksiażk
˛ a˛ ta˛ chciałbym przede wszystkim zachecić
˛ czytelnika do nauki matematyki ale
też pokazać, że jej nauka może być łatwa i przyjemna. Dziś w dobie komputerów jest to
możliwe, gdyż wiele zagadnień matematycznych można bardzo łatwo zilustrować z po-
moca˛ odpowiednich programów komputerowych. Z pewnościa˛ każdy z czytelników ko-
rzystał kiedyś z kalkulatora. Jest to najprostsze narz˛edzie potrafiace
˛ szybko wykonywać
obliczenia arytmetyczne. Bardziej rozbudowane posiadaja˛ dodatkowe funkcje liczace
˛ na
przykład potegi,
˛ logarytmy czy funkcje trygonometryczne. Jednakże dzisiejsze narz˛edzia
matematyczne posiadaja˛ dużo wieksze
˛ możliwości. Niestety wiekszość
˛ z tych narz˛edzi
jest płatna i sporo kosztuje.
W ksiażce
˛ ˛ e˛ korzystał z programu matematycznego o nazwie Sage2, który
tej bed
jest całkowicie darmowy, a możliwościami dorównuje, jeśli nie przewyższa, komercyjnym
rozwiazaniom.
˛ Jest to cały pakiet przeróżnych narz˛edzi do wykonywania wszelkiego
rodzaju obliczeń. Możemy wykonywać obliczenia numeryczne – takie jak na kalkulatorze
1
Jest to cyctat z artykułu pt. “Czem jest matematyka i na czem polega jej postep?”,
˛ który został wygło-
szony przez profesora Hugo Dyonizego Steinhausa w trakcie serii popularnych odczytów matematycznych,
wygłoszonych zima˛ 1926-1927 roku przez profesorów Uniwersytetu i Politechniki we Lwowie.
2
http://www.sagemath.org/
5
SPIS TREŚCI
6
Rozdział 1
Funkcje
7
ROZDZIAŁ 1. FUNKCJE
sage: var(’n’)
W wyniku tych poleceń zobaczymy liste˛ wartości wyrażenia n3 − n dla n ∈ h1, 11i oraz ich
rozkład na iloczyn liczby 6 i pewnej liczby całkowitej.
Aby wykazać, że własność te˛ posiadaja˛ wszystkie liczby naturalne, możemy posłużyć
sie˛ ogólnym wzorem tejże różnicy, tzn. n3 − n gdzie n oznacza pewna˛ liczbe˛ naturalna.
˛
Zauważmy wtedy, że można ja˛ przedstawić w postaci iloczynu trzech kolejnych liczb
naturalnych,
Oznacza to, że wśród tych liczb przynajmniej jedna jest parzysta oraz jedna podzielna
˛ dowód na to, że liczba n3 − n jest podzielna przez 6.
przez 3. Jest to wystarczajacy
8
1.1. PODSTAWOWE WIADOMOŚCI O FUNKCJACH
Wf = f(x) : dla wszystkich x ∈ X .
f(n) = n3 − n,
9
ROZDZIAŁ 1. FUNKCJE
Jak wiemy, funkcje liczbowe daja˛ sie˛ ilustrować za pomoca˛ wykresu. Z wykresu funkcji
możemy łatwo odczytać wiele interesujacych
˛ nas własności funkcji. Gdy mamy funkcje˛
dana˛ wzorem y = f(x), wtedy jej wykres jest zbiorem punktów na płaszczyźnie, postaci
x, f(x) .
Można też powiedzieć, że wykres funkcji jest zbiorem punktów, które sa˛ rozwiazaniami
˛
równania y = f(x).
2
Na przykład funkcje˛ liniowa˛ f(x) = x + 1 możemy traktować jako równanie dwóch
3
2
zmiennych x i y postaci y = x + 1. Zbiorem rozwiaza
˛ ń tego równania sa˛ punkty leżace
˛
3
na nastepuj
˛ acej
˛ prostej:
x
-4 -2 2 4
-1
-2
Powyższy wykres uzyskałem przy pomocy Jak widzimy, program Sage pozwala w
poleceń: bardzo podobny sposób definiować funk-
cje jak to robimy w matematyce. Najpierw
sage: var(’x’) zdefiniowałem nazw˛e zmiennej polece-
10
1.1. PODSTAWOWE WIADOMOŚCI O FUNKCJACH
x3 − y2 + xy = 0,
tworzy nastepuj
˛ ac ˛ a˛ krzywa:
˛
0.2
0.1
-0.1
Widzimy, że ta krzywa nie jest wykresem żadnej funkcji jednej zmiennej, gdyż w prze-
ciwnym przypadku jednemu argumentowi przyporzadkowane
˛ byłyby dwie wartości. Jeśli
byłby to wykres funkcji, to każda pionowa prosta mogłaby go przeciać
˛ w co najwyżej
jednym punkcie.
Wykresy krzywych, które nie sa˛ funkcjami możemy uzyskać za pomoca˛ funkcji
parametric_plot. Używamy jej podobnie jak funkcji plot, jednakże rysowana krzywa
musi być zdefiniowana parametrycznie.
sage: var(’x’)
y = t3 − t2 ⇒ y = t · (t2 − t) = t · x.
11
ROZDZIAŁ 1. FUNKCJE
y
˛ t=
Wstawiajac do pierwszego równania otrzymujemy
x
y2 y
x= − ⇒ x3 = y2 − xy.
x2 x
x3 − y2 + xy = 0.
1000
800
600
400
200
0
2 4 6 8 10
Funkcja point przyjmuje jako argument liste˛ punktów. Listy w programie Sage defi-
niujemy zapisujac
˛ ich elementy w nawiasach kwadratowych, każdy oddzielajac
˛ przecin-
kiem, np. [1,2,3,4,5]. W naszym przykładzie została utworzona lista z nastepuj
˛ ac ˛ a˛
zawartościa˛
12
1.1. PODSTAWOWE WIADOMOŚCI O FUNKCJACH
Bardzo cz˛esto autorzy definicji funkcji podaja˛ tylko wzór postaci y = f(x). Wtedy
musimy sami określić dziedzine.
˛ Zwykle przyjmujemy najwiekszy
˛ zbiór na którym funkcja
może być określona. Gdyby powyższa funkcja była zdefiniowana wzorem
f(x) = x3 − x
100
50
x
-4 -2 2 4
-50
-100
Rysujac
˛ wykresy funkcji w programie Sage mamy do dyspozycji wiele ciekawych opcji.
Możemy sterować wartościami najmniejszymi ymin oraz najwiekszymi
˛ ymax, opcja˛
gridlines=True pokażemy siatk˛e, czy też opcja axes_labels=[’x’,’y’] dopi-
sze do osi odpowiednie etykiety. Możemy zmienić kolor, np. color=’red’, lub grubość
linii thickness=2. Mamy jeszcze wiele innych opcji do dyspozycji. Wydajac
˛ polecenie
plot? zobaczycie opis ich wszystkich.
axes_labels=[’x’,’y’],color=’red’,thickness=2,\
legend_label=r’$f(x) = x^3-x$’,fontsize=11)
13
ROZDZIAŁ 1. FUNKCJE
y
20
f(x) = x3 −x
10
x
-4 -2 2 4
-10
-20
−4x2 − 4x + 11
f(x) = .
x2 + 2x − 3
Jak widzimy, jest to funkcja wymierna, gdyż mamy ułamek oraz w liczniku i mianowniku
znajduje sie˛ pewien wielomian. Najwiekszy
˛ zbiór na którym możemy ja˛ określić jest
postaci
Df = R \ {−3, 1}.
sage: solve(x^2+2*x-3, x)
wynik: [x = (−3) , x = 1]
14
1.2. NAJCZE˛ŚCIEJ ZADAWANE PYTANIA DOTYCZACE
˛ FUNKCJI
y
10
x
-6 -4 -2 2 4
-5
-10
-15
-20
10
x
-6 -4 -2 2 4
-5
-10
15
ROZDZIAŁ 1. FUNKCJE
Zwróćmy uwage,
˛ że błedne
˛ byłoby stwierdzenie: funkcja jest malejaca
˛ na zbiorze
16
1.2. NAJCZE˛ŚCIEJ ZADAWANE PYTANIA DOTYCZACE
˛ FUNKCJI
Aby odpowiadać na pytania bardziej szczegółowe, zwykle musimy znać wzór funkcji.
Czasami na podstawie wykresu jesteśmy w stanie go znaleźć. W przypadku gdy wiemy
jakiego rodzaju jest ta funkcja, np. liniowa, kwadratowa, wykładnicza, itd., zadanie jest
dość łatwe. W bardziej ogólnych sytuacjach posługujemy sie˛ specjalnymi algorytmami
do poszukiwania wzorów funkcji. Jeśli kogoś interesuje to zagadnienie, to zachecam
˛
do poczytania sobie aproksymacji badź
˛ interpolacji. Program Sage ma kilka takich
algorytmów zaimplementowanych. W dalszej cz˛eści tego rozdziału bedziecie
˛ mieli okazje˛
poznać jedna˛ z nich.
Dodajmy wiec
˛ do listy powyższych pytań jeszcze kilka, ale takich gdzie musimy
skorzystać ze wzoru naszej funkcji, tzn.
−4x2 − 4x + 11
f(x) = .
x2 + 2x − 3
−4x2 − 4x + 11
= 0.
x2 + 2x − 3
sage: solve(f, x)
√ √
1 1
wynik: x = − 3 − ,x = 3 −
2 2
3
Funkcja f jest rosnaca,
˛ jeśli dla x1 , x2 ∈ Df , takich że x1 < x2 zachodzi nierówność f(x1 ) < f(x2 ),
natomiast funkcja f jest malejaca,
˛ jeśli dla x1 , x2 ∈ Df , takich że x1 < x2 zachodzi nierówność f(x1 ) > f(x2 ).
17
ROZDZIAŁ 1. FUNKCJE
Widzimy wiec,
˛ że nasza wcześniejsza próba odgadniecia
˛ miejsc zerowych była
obarczona błedem.
˛
−4x2 − 4x + 11 = 0.
Znajac
˛ wzory na wyróżnik trójmianu kwadratowego (potocznie zwany ”delta”)
˛ oraz
wzory na jego pierwiastki obliczymy miejsca zerowe. Skorzystajmy ponownie z
programu Sage i wykonajmy te obliczenia. Możemy nawet zdefiniować ogólny wzór
na trójmian kwadratowy.
sage: var(’a,b,c’)
sage: solve(trojmian.subs(a=-4,b=-4,c=11), x)
√ √
1 1
wynik: x = − 3 − , x = 3 −
2 2
Oczywiście w obydwu przypadkach dostaliśmy to samo. Zachecam
˛ do samodziel-
nego sprawdzenia tych wyników.
Użyliśmy funkcji subs aby podstawić w równaniu trojmian w miejsca odpowiednich
parametrów liczby.
18
1.2. NAJCZE˛ŚCIEJ ZADAWANE PYTANIA DOTYCZACE
˛ FUNKCJI
Obliczanie wartości funkcji dla danego argumentu jest chyba najbardziej naturalna˛
operacja˛ wykonywana˛ podczas pracy z funkcjami. Aby udzielić odpowiedzi na to
pytanie, wystarczy obliczyć
−4 · (−2)2 − 4 · (−2) + 11
f(−2) = = −1.
(−2 + 3)(−2 − 1)
sage: f(2)
13
wynik: −
5
7. Dla jakich argumentów funkcja przyjmuje wartość y = 5?
Bardzo łatwo jest obliczyć wartość funkcji dla danego argumentu, jak to widzieliśmy
w poprzednim punkcie. W tym zadaniu odwracamy sytuacje,
˛ majac
˛ wartość funkcji,
pytamy dla jakich argumentów funkcja ja˛ przyjmuje. Musimy wiec
˛ rozwiazać
˛ równa-
nie
−4x2 − 4x + 11
= 5.
x2 + 2x − 3
10
x
-6 -4 -2 2 4
-5
-10
19
ROZDZIAŁ 1. FUNKCJE
Widzimy, że istnieja˛ dwa argumenty, w których funkcja przyjmuje wartość 5, jed-
nak trudno jest z wykresu określić ich dokładne położenie. Znajdźmy je rozwiazuj
˛ ac˛
równanie w tradycyjny sposób. W pierwszym kroku, można pozbyć sie˛ kreski ułam-
kowej mnożac
˛ obustronnie równanie przez cały mianownik, otrzymujac
˛
Wymnażajac
˛ prawa˛ strone˛ i przenoszac
˛ wszystko na lewa˛ otrzymamy do rozwiaza-
˛
nia równanie kwadratowe
9x2 + 14x − 26 = 0.
√ √
˛ delte˛ ∆ = 1132,
Obliczamy wiec ∆ = 2 283 oraz pierwiastki
√ √ √
−14 − 2 283 −7 − 283 −7 + 283
x1 = = , x2 = .
18 9 9
sage: factor(delta)
√ √ √
wynik: 22 · 283 Stad
˛ otrzymujemy ∆ = 1132 = 2 283
sage: solve(f(x)==5, x)
20
1.2. NAJCZE˛ŚCIEJ ZADAWANE PYTANIA DOTYCZACE
˛ FUNKCJI
1√ 1√
7 7
wynik: x=− 283 − , x = 283 −
9 9 9 9
−4x2 − 4x + 11
≤ 0.
(x + 3)(x − 1)
licznik
≤0 tylko wtedy, gdy licznik · mianownik ≤ 0.
mianownik
Oczywiście pamietamy
˛ o dziedzinie wyrażenia wymiernego, tzn. z rozwiazania
˛
nierówności z prawej strony należy wykluczyć te, dla których mianownik sie˛ zeruje.
A wiec
˛ mamy do rozwiazania
˛ nierówność
√ √
−4(x + 3 + 0.5)(x − 3 + 0.5) · (x + 3)(x − 1) ≤ 0.
4
Jeśli ∆ > 0 i x1 , x2 sa˛ pierwiastkami trójmianu ax2 + bx + c, to możemy go zapisać w postaci iloczynowej
a(x − x1 )(x − x2 ).
21
ROZDZIAŁ 1. FUNKCJE
Majac
˛ do dyspozycji program Sage możemy taki szkic wykonać poleceniem
sage: plot(-4*(x+sqrt(3)+0.5)*(x-sqrt(3)+0.5) \
x
-3 -2 -1 1
-10
-20
-30
-40
√ √
x ∈ (−∞, −3) ∪ h− 3 − 0.5, 1) ∪ h 3 − 0.5, ∞).
Zwróćmy uwage,
˛ że prawy kraniec pierwszego i drugiego przedziału jest otwarty,
gdyż −3 i 1 nie należa˛ do dziedziny funkcji.
22
1.2. NAJCZE˛ŚCIEJ ZADAWANE PYTANIA DOTYCZACE
˛ FUNKCJI
Rozwiażmy
˛ jeszcze podobne zadanie do ostatniego punktu dla funkcji kwadratowej.
⊲ p nie należy do przedziału hx1 , x2 i – wtedy wartościa˛ najmniejsza˛ funkcji jest mniej-
sza z liczb f(x1 ), f(x2 ), natomiast wartość najwieksza
˛ jest liczba˛ wieksz
˛ a˛ z tych
dwóch.
Obliczamy
oraz
b 4
p=− =− = 2.
2a 2 · (−1)
23
ROZDZIAŁ 1. FUNKCJE
sage: b = 4
sage: c = 5
sage: p = -b/(2*a)
sage: q = f(p)
sage: else:
24
1.2. NAJCZE˛ŚCIEJ ZADAWANE PYTANIA DOTYCZACE
˛ FUNKCJI
9
8
7
6
5
4
3
2
1
-3 -2 -1 1 2 3 4
-1
-2
-3
-4
-5
-6
-7
Rozwiażmy
˛ teraz nastepuj
˛ ace˛ zadanie:
Rozwiaż
˛ e˛ najpierw to zadanie, jak zwykła˛ nierówność. Przenoszac
˛ wszystko na lewa˛
strone˛ otrzymujemy
−x3 − x2 + 4x + 4 < 0.
Otrzymujemy stad
˛
(4 − x2 )(x + 1) < 0.
Rozkładajac
˛ jeszcze trójmian z pierwszego nawiasu na czynniki liniowe (zamiast obli-
czać delte˛ i pierwiastki warto zauważyć, że można tu skorzystać ze wzoru skróconego
mnożenia na różnice˛ kwadratów dwóch liczb) dostajemy nierówność
25
ROZDZIAŁ 1. FUNKCJE
x
-3 -2 -1 1 2 3
-2
-4
Rozwiazaniem
˛ ˛ zbiór (−2, −1) ∪ (2, ∞). Wynik ten możemy uzyskać
nierówności jest wiec
również poleceniem:
sage: solve((2+x)*(2-x)*(x+1)<0, x)
wynik: [[x > (−2) , x < (−1)] , [x > 2]] Prawda, że łatwo i szybko?
26
1.2. NAJCZE˛ŚCIEJ ZADAWANE PYTANIA DOTYCZACE
˛ FUNKCJI
legend_label=r’$f(x) = -x^3-x^2+2x$’)
legend_label=r’$g(x) = -2x-4$’,\
fill=f, fillcolor=(0.9,0.9,0.9) )
Pytamy w jakich przedziałach wykres funkcji f leży poniżej wykresu funkcji g. Z rysunku
łatwo odczytać, że dla
x ∈ (−2, −1) ∪ (2, ∞).
Potraficie wiec
˛ już badać funkcje i to nie tylko te “szkolne”, tzn. liniowe, kwadratowe,
homograficzne, wykładnicze czy logarytmiczne, ale też te bardziej złożone. Z pomoca˛
Sage-a potrafilibyście z pewnościa˛ odpowiedzieć na wszystkie zadawane wcześniej py-
tania dla dużo bardziej złożonych funkcji.
27
ROZDZIAŁ 1. FUNKCJE
0.8
0.6
0.4
0.2
-2 2 4 6 8 10
Rozwiazaniem
˛ jest:
sage: solve((2*x^3-4*x^2+2)^3/(x-2^x),x)
1√ 1√
1 1
wynik: x = − 5 + ,x = 5 + ,x = 1
2 2 2 2
Wiecej
˛ na temat rozwiazywania
˛ równań, nierówności, układów równań i nierówności
dowiecie sie˛ w rozdziale czwartym.
Rozwiażmy
˛ teraz kilka zadań dotyczacych
˛ funkcji, które poznaliście badź
˛ poznajecie
dopiero w szkole.
28
1.3. FUNKCJE POZNANE W SZKOLE
zwiazek
˛
y=a·x
f(x) = ax + b.
Jest to funkcja bardzo łatwa w analizie, bo jak wiemy jej wykresem jest linia prosta.
Zatem wystarczy, że poznamy dwa punkty jej wykresu i już możemy naszkicować jej
wykres. Majac
˛ równanie funkcji, znalezienie dwóch punktów jest banalnie proste, gdyż
możemy wybrać dowolne dwie liczby (bo dziedzina˛ funkcji liniowej jest cały zbiór liczb
rzeczywistych) i obliczyć dla nich wartości.
a · 2 + b = −1
Łatwo go rozwiażemy
˛ metoda˛ przeciwnych współczynników. Wystarczy pomnożyć pierw-
29
ROZDZIAŁ 1. FUNKCJE
3
5a = −3 czyli a = − = −0.6.
5
b = −1 − 2a = −1 − 2 · (−0.6) = 0.2.
Otrzymujemy wiec
˛ równanie prostej
Program Sage wykona te˛ prace˛ za nas jeszcze szybciej. Otóż posiada specjalna˛ metode˛
find_fit, która potrafi dobierać współczynniki poszukiwanej funkcji, tak aby była jak
najlepiej dopasowana do listy punktów, które podajemy jako parametr. W naszym przy-
padku wydajemy instrukcje:
sage: funkcja_lin(x) = a * x + b
30
1.3. FUNKCJE POZNANE W SZKOLE
legend_label=r’$f(x)=-\frac{3}{5}x+\frac{1}{5}$’)
1
f(x) =−53 x + 15
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
31
ROZDZIAŁ 1. FUNKCJE
1
( ) =−53 x + 51
f x
g(x) =−53 x
0.8
0.6
0.4
0.2
-0.4
-0.6
-0.8
b
Miejsce zerowe możemy wyznaczyć wzorem x0 = − o ile a 6= 0 lub instrukcja˛
a
solve(a*x+b, x). Sa˛ one postaci
0.2 2 1
x0 = − = = .
−0.6 6 3
1
Zatem punkt ,0 jest przecieciem
˛ wykresu tej funkcji z osia˛ Ox.
3
Druga,
˛ dość obszernie omawiana˛ funkcja˛ w szkole, jest z pewnościa˛ funkcja kwadra-
towa. Wiecie, że wykresem funkcji kwadratowej jest parabola. Znali ja˛ już starożytni
Grecy. Już w III wieku p.n.e. Appolonius z Perge, matematyk grecki opisał w swojej ksie-
˛
dze “Stożkowe” miedzy
˛ innymi parabole.
˛ Dlaczego ksiega
˛ nosiła taki tytuł? Otóż wiek-
˛
szość krzywych które poznaliście w szkole, tj. prosta (możemy ja˛ też do nich zaliczyć), pa-
rabola, hiperbola, okrag,
˛ elipsa, można otrzymać z przekroju stożka odpowiednia˛ płasz-
czyzna.
˛
32
1.3. FUNKCJE POZNANE W SZKOLE
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,
Już Galileusz odkrył, że jak wyrzucicie kamień wysoko przed siebie, to tor jego lotu
podczas spadania wyznaczy krzywa˛ w kształcie paraboli.
Wiele własności funkcji kwadratowej mieliście okazje˛ sobie przypomnieć podczas
rozwiazywania
˛ zadań z poprzedniego podrozdziału. Pojawił sie˛ tam wzór na wyróżnik
kwadratowy (delte),
˛ wzory na pierwiastki i postać iloczynowa˛ czy też sposób wyznaczania
zbioru wartości tej funkcji na ustalonym przedziale. Oprócz postaci ogólnej i liniowej
funkcja kwadratowa może przyjmować jeszcze postać kanoniczna˛
33
ROZDZIAŁ 1. FUNKCJE
a · 22 + b · 2 − 3 = 0
czyli
a − b − 3 = 0
4a + 2b − 3 = 0.
3 3
f(x) = x2 − x − 3.
2 2
Obliczmy teraz współrz˛edne wierzchołka paraboli, gdyż przydadza˛ nam sie˛ do rozwiaza-
˛
nia.
− 32 1
p=− 3 =
2· 2 2
2
3 1 3 1 27
q = f(p) = − · −3=− .
2 2 2 2 8
Otrzymujemy wiec
˛
2
3 1 27
f(x) = x− +− .
2 2 8
34
1.3. FUNKCJE POZNANE W SZKOLE
sage: var(’a,p,q’)
parameters=[a,p,q], variables=[x])
a =1
a =−1.5
10
a =3
a =−5
5
-2 -1 1 2 3
-5
35
ROZDZIAŁ 1. FUNKCJE
Rozwiażmy
˛ jeszcze jedno zadanie zwiazane
˛ z funkcja˛ kwadratowa.
˛
Przykład 7. Wiedzac,
˛ że poniższy wykres jest wykresem funkcji kwadratowej
f(x) = ax2 + bx + c,
x1 + x2
= p.
2
Rozwiażmy
˛ to zadanie teraz inna˛ metoda.
˛ Majac
˛ współrz˛edne wierzchołka paraboli i
dowolny inny punkt leżacy
˛ na niej możemy znaleźć trójmian kwadratowy wykorzystujac
˛
36
1.3. FUNKCJE POZNANE W SZKOLE
Wiemy również, że punkt (−4, 0) leży na wykresie tej funkcji. Po podstawieniu do powyż-
szego wzoru, otrzymujemy
0 = a(−4 − 1)2 + 2.5.
f(x) = −0.1(x − 1)2 + 2.5 = −0.1(2 −2x + 1) + 2.5 = −0.1x2 + 0.2x + 2.4.
Jedna˛ z prostszych jej odmian jest tak zwana funkcja homograficzna. Charaktery-
zuje ona wielkości odwrotnie proporcjonalne, tzn.
a
y= ,
x
a 1 a 1
= · = · y.
3·x 3 x 3
Podobnie jak parabola, wykres funkcji homograficznej jest również krzywa˛ stożkowa,
˛
która˛ nazywamy hiperbola.
˛ Powstaje przez przeciecie
˛ stożka płaszczyzna,
˛ która nie jest
równoległa do tworzacej
˛ ani też prostopadła do jego osi obrotu.
37
ROZDZIAŁ 1. FUNKCJE
5
h(x) = + 1.
x+2
y
10
f(x) = x5 8
h(x) = x +2
5 +1
6
4
2
x
-10 -8 -6 -4 -2 2 4 6 8
-2
-4
-6
-8
38
1.3. FUNKCJE POZNANE W SZKOLE
detect_poles="show") +\
Napisałem definicje tych funkcji obok siebie, gdyż sa˛ one ze soba˛ zwiazane
˛ w sposób
szczególny. Otóż sa˛ funkcje, które możemy odwracać. Odwrócenie funkcji f polega
na znalezieniu drugiej funkcji zwykle oznaczanej symbolem f −1 takiej, że dla każdego
argumentu x ∈ Df zachodzi zwiazek
˛
f −1 f(x) = x.
f f −1 (x) = x.
Jak sie˛ zapewne domyślacie, funkcja wykładnicza i logarytmiczna sa˛ funkcjami odwra-
calnymi i każda z nich jest odwrotnościa˛ drugiej. Zatem prawdziwe sa˛ wzory
loga ax = x, aloga x = x.
oraz (1.1)
39
ROZDZIAŁ 1. FUNKCJE
loga b = c ⇔ ac = b
Dziedzina˛ funkcji logarytmicznej jest zbiór (0, ∞), a zbiorem wartości jest R. Dla funk-
cji wykładniczej mamy odwrotna˛ sytuacje,
˛ tzn. dziedzina˛ jest zbiór liczb rzeczywistych, a
zbiorem wartości jest przedział (0, ∞). I tak dzieje sie˛ zawsze w przypadku funkcji wza-
jemnie 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).
y
y
6
y =2x 60
4
50
40 2
30
x
20 10 20 30 40 50 60
10 -2
y =log2 x
x
-4 -2 2 4 6 -4
Użyłem opcji aspect_ratio aby odpowiednio wyskalować osie tych układów. Dla
funkcji wykładniczej ustawiłem aspect_ratio=0.1, co oznacza, że długość jednej
jednostki poziomej stanowi dziesieć
˛ jednostek pionowych. W przypadku funkcji logaryt-
micznej użyłem aspect_ratio=6, co oznacza, że długość jednej jednostki pionowej
stanowi sześć jednostek poziomych. Spróbujcie narysować te wykresy bez tych opcji.
40
1.3. FUNKCJE POZNANE W SZKOLE
y
y
4
60 y =log0.5x
y =(12 ) x
2
50
40 x
10 20 30 40 50 60
30
-2
20
10 -4
x
-6 -4 -2 2 4 -6
2
x
-6 -4 -2 2
-2
Podstawiajac
˛ teraz pierwsze równanie do drugiego, otrzymamy
41
ROZDZIAŁ 1. FUNKCJE
2−p = 8 ⇒ 2−p = 23 .
sage: var(’a,p,q’)
sage: a = solve(8*a^(-2) == 2, a)
sage: p = solve(2^(-p) == 8, p)
sage: f = y == 2^(x+3) -2
sage: f.solve(x)
3 log (2) − log (y + 2)
wynik: x = −
log (2)
f −1 (x) = log2 (x + 2) − 3.
42
1.3. FUNKCJE POZNANE W SZKOLE
Sage domyślnie definiuje logarytmy o podstawie e, gdzie e jest tzw. liczba˛ Eulera.
Należy o tym pamietać,
˛ gdyż zwykle w ksiażkach
˛ matematycznych log(a) oznacza loga-
rytm dziesietny
˛ liczby a.
Liczba e jest ważniejsza˛ liczba˛ w matematyce niż liczba π , która˛ doskonale znacie.
Odkrył ja˛ w XVI wieku szkocki matematyk John Napier (Neper), z tego powodu nazywana
jest również liczba˛ Nepera.
Neper ułożył tablice logarytmów, które były bardzo pomocne przy skomplikowanych
obliczeniach astronomicznych. Znacie zapewne nastepuj
˛ ac ˛ a˛ ciekawa˛ własność logaryt-
mów:
loga (b · c) = loga b + loga c.
Przez wiele lat wykorzystywano ja˛ do obliczania iloczynów dużych liczb. Dzieki
˛ niej
mnożenie liczb zastepujemy
˛ sumowaniem. Znajdźmy tym sposobem na przykład iloczyn
128 · 512.
log2 (128 · 512) = log2 128 + log2 512 = 7 + 8 = 15.
Majac
˛ teraz odpowiednie tablice, w których moge˛ odczytać, dla jakiej liczby logarytm przy
podstawie 2 wynosi 15 dostane˛ wynik. Oczywiście wiemy, że szukana˛ liczba˛ jest
215 = 32768.
wynik: 993558896013381860643561589195210232574666
Program Sage może nam podać wartość liczby Eulera z bardzo duża˛ dokładnościa,
˛ np.
zobaczmy dla 30 miejsc po przecinku (mógłbym zamiast 30 użyć 30000, lecz wtedy
ksiażka
˛ by zbyt mocno zwiekszyła
˛ swoja˛ objetość).
˛
sage: e = exp(1)
wynik: 2.71828182845904523536028747135
sage: e.N(digits=30)
43
ROZDZIAŁ 1. FUNKCJE
sage: var(’n’)
print N( (1 + 1/n)^n )
print N( (1 + 1/n)^n )
∞
X 1
e= .
n=0
n!
sage: e.N()
wynik: 2.71828182845905
44
1.4. ZADANIA
1.4 Zadania
Naszkicuj wykres, podaj miejsca zerowe oraz określ zbiór wartości tej funkcji.
4. Dla podanych funkcji kwadratowych podaj miejsca zerowe i postać iloczynowa˛ (o ile
istnieja)
˛ oraz współrz˛edne wierzchołka paraboli i postać kanoniczna.
˛ Nastepnie
˛
naszkicuj ich wykresy.
˛ że poniższy wykres jest wykresem funkcji kwadratowej f(x) = ax2 +bx+c,
6. Wiedzac,
znajdź współczynniki a, b, c, zapisz ja˛ w postaci kanonicznej i określ przedziały
monotoniczności tej funkcji.
45
ROZDZIAŁ 1. FUNKCJE
y
3
1
x
-2 -1 1 2 3 4
-1
-2
-3
7. Funkcja f(x) = ax2 +2x+1 posiada tylko jedno miejsce zerowe. Znajdź współczynnik
a oraz określ przedziały monotoniczności tej funkcji.
−4
8. Dla funkcji wymiernej f(x) = − 5 podaj dziedzine˛ funkcji, zbiór wartości,
x−2
określ monotoniczność i naszkicuj jej wykres.
3x − 2
9. Niech bedzie
˛ określona funkcja wzorem f(x) = . Podaj miejsce zerowe tej
4 − 2x
funkcji oraz punkt przeciecia
˛ sie˛ wykresu tej funkcji z osia˛ OY.
! Czy do wykresu tej
√
√ 3
funkcji należy punkt o współrz˛ednych A = 3 − 1, −1 ?
2
2 − 2x
10. Naszkicuj wykres funkcji f(x) = za pomoca˛ pakietu Sage i na jego podstawie
x+3
e
znajdź jej wzór w postaci f(x) = + q.
x−p
ax + 5
11. Określ dziedzine˛ funkcji homograficznej f(x) = oraz wyznacz współczynnik
3x − 2
a wiedzac,
˛ że wykres tej funkcji przechodzi przez punkt A = (2, 1).
e
12. Napisz wzór funkcji homograficznej w postaci f(x) = + q majac
˛ jej wykres
x−p
x
-6 -4 -2 2 4 6
-3
-6
46
1.4. ZADANIA
13. Dwóch traktorzystów orze to samo pole. Gdyby orali je do końca razem, wykonaliby
te˛ prace˛ w czasie 6 godzin. Gdyby natomiast każdy z nich orał to pole samodzielnie,
to pierwszy z nich skończyłby o 4 godziny wcześniej, niż drugi. Ile czasu zajełoby
˛
każdemu z traktorzystów zaoranie tego pola?
14. Oblicz
√
3
√
6 2
(a) log343 7, (b) log√8 32, (c) log 13 2712 , (d) log √1 25, (e) 3log3 123 , (f) 64log6 36 .
5
15. Naszkicuj wykresy podanych funkcji, określ ich dziedziny, zbiór wartości oraz miej-
sca zerowe
(a) f(x) = log5 x, (b) f(x) = log 12 (x−5), (c) f(x) = log3 (x+1)−4, (d) f(x) = log2 x2 .
y
4
x
-4 -3 -2 -1 1 2 3 4
-2
-4
47
ROZDZIAŁ 1. FUNKCJE
48
Rozdział 2
Rachunek prawdopodobieństwa
i statystyka matematyczna
49
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
|A|
P(A) = ,
|Ω|
gdzie
|A| – oznacza ilość zdarzeń elementarnych sprzyjajacych
˛ zdarzeniu zdarzenia A,
czyli po prostu ilość elementów tego zbioru, natomiast
|Ω| – jest liczba˛ wszystkich możliwych zdarzeń, czyli wszystkich elementów zbioru Ω.
Wzór jest prosty w zapisie, jednakże ukrywa w sobie pewna˛ problematyk˛e zwiazan
˛ a˛
ze zliczaniem elementów zbiorów A i Ω.1 Oczywiście my bedziemy
˛ zajmować sie˛ zbio-
rami, których elementy da sie˛ policzyć, gdyż bed
˛ a˛ to albo zbiory skończone albo takie,
których elementy możemy ponumerować.2
Zobaczmy to na kilku przykładach.
Przykład 1. Rzucamy dwa razy kostka˛ do gry. Określ przestrzeń zdarzeń ele-
mentarnych.
Łatwo zliczymy ilość elementów przestrzeni Ω przy pomocy tak zwanej reguły mnożenia,
która oparta jest na pojeciu
˛ iloczynu kartezjańskiego. Jeśli ktoś nie pamieta
˛ badź
˛
jeszcze nie miał okazji sie˛ dowiedzieć, co to takiego iloczyn kartezjański zbiorów, to już
przypominam. Jeśli weźmiemy sobie np. dwa zbiory A = {a1 , a2 , a3 } i B = {b1 , b2 }, to
iloczyn kartezjański 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 możliwych par, w których na pierwszym miejscu stoi element zbioru A,
a na drugim element zbioru B. Jak łatwo zauważyć, liczba tych par jest równa iloczynowi
liczby elementów pierwszego zbioru przez liczbe˛ elementów zbioru drugiego, tzn.
|A × B| = |A| · |B|.
1
Okazuje sie,
˛ że nie jest to możliwe dla dowolnych zbiorów. Dział matematyki zajmujacy
˛ sie˛ tym proble-
mem nazywa sie˛ teoria˛ miary.
2
O takich zbiorach mówimy, że sa˛ przeliczalne.
50
2.1. RACHUNEK PRAWDOPODOBIEŃSTWA
Warto podkreślić, że kolejność elementów w każdej takiej parze jest ważna, tzn, jeśli
a 6= b, to para (a, b) jest różna od pary (b, a).
Wróćmy jednak do naszego zadania. Zauważmy, że przestrzeń Ω składa sie˛ z par
(X, Y) gdzie X i Y sa˛ liczbami ze zbioru {1, 2, 3, 4, 5, 6}, czyli możemy zapisać, że
Ile takich par możemy utworzyć? Oczywiście 6·6 = 36. Pierwszy element pary, X możemy
wybrać na 6 sposobów i dla każdego wybranego już elementu X możemy wybrać Y
również na 6 sposobów. Odp. Ω = 36.
Program Sage posiada bardzo ciekawe dwie funkcje, Set oraz CartesianProduct.
Pierwsza służy do definiowania zbiorów, natomiast druga tworzy iloczyn kartezjański
zbiorów.
sage: Omega.list()
Jak widzimy, Omega zawiera wszystkie możliwe pary. Możemy zobaczyć ich ilość za
pomoca˛ polecenia
sage: Omega.cardinality()
wynik: 36
51
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
Weźmy teraz jako przykład typowa˛ sytuacje˛ w grze w karty. Zazwyczaj na poczatku
˛
gry gracze otrzymuja˛ w sposób losowy pewna˛ ilość kart, np.
52
2.1. RACHUNEK PRAWDOPODOBIEŃSTWA
sage: Kolory.cardinality()
wynik: 4
różnych wartości
sage: Wartosci.cardinality()
wynik: 13
oraz wszystkich kart
sage: Karty..cardinality()
wynik: 52
Możemy teraz zdefiniować rodzine˛ wszystkich rozdań 5 – kartowych, nastepuj
˛ aco˛
Wiemy już ile ich jest i jest ich całkiem sporo, dlatego nie bedziemy
˛ ich tu wszystkich
wyświetlać a tylko jedno losowe rozdanie:
sage: Rozdania.random_element()
wynik: {(Krol, Trefl) , (8, Pik) , (Dama, Kier) , (9, Kier) , (3, Pik)}
Sprawdźmy dla pewności czy wszystkich rozdań jest rzeczywiście tyle ile obliczyliśmy
wzorem na kombinacje.
sage: Rozdania.cardinality()
wynik: 2598960
Wszystko sie˛ zgadza. Chciałbym zwrócić uwage˛ jeszcze raz na oznaczenie
n
.
k
Jest ono znane w matematyce pod nazwa˛ symbolu Newtona. Nazywany jest też
współczynnikiem dwumianowym, a ta nazwa bierze sie˛ stad,
˛ że dowolna˛ poteg
˛ e˛
dwumianu x + y możemy obliczyć wg. wzoru
n
X n k n−k
(x + y)n = x y ,
k=0
k
53
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
zwany dwumianem Newtona. Jak widzimy, współczynniki tego dwumianu sa˛ odpowied-
nimi symbolami Newtona. Już na przełomie XI i XII w. Chińczycy odkryli, że współczynniki
˛ tzw. trójkat
te układaja˛ sie˛ symetrycznie, tworzac ˛ Pascala. Możemy go wygenerować
w Sage-u za pomoca˛ poleceń
wsp = [binomial(n,k)
for k in [0..n,step=1] ]
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
Teraz możemy łatwo zapisać wzór np. na sześcian sumy dwóch liczb biorac
˛ współczyn-
niki z czwartego poziomu od góry:
Widzimy, że liczba zdarzeń jest nieskończona. Może sie˛ przecież zdarzyć, że orzeł nigdy
nie wypadnie. Przestrzeń zdarzeń elementarnych składa sie˛ z nastepuj
˛ acych
˛ ciagów
˛
Ω = (O), (R, O), (R, R, O), (R, R, R, O), . . . .
54
2.1. RACHUNEK PRAWDOPODOBIEŃSTWA
Możemy te˛ sytuacje˛ zilustrować rysunkiem, który wykonam w Sage-u. Najpierw zdefi-
niujmy sobie pieć
˛ punktów, które bed
˛ a˛ wierzchołkami kwadratu oraz trójkata.
˛
sage: W = (1.7, 2)
fill=False, thickness=2)
color=(0.9,0.9,0.9))
1.5
0.5
0.5 1 1.5 2
55
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
|Ω| = 2 · 2 = 4.
2 1
P(A) = = .
4 2
56
2.1. RACHUNEK PRAWDOPODOBIEŃSTWA
poprzestawiać na
n! = 1 · 2 · . . . · (n − 1) · n
możliwości, mówimy ładniej, że istnieje n! (“n silnia”) permutacji tego zbioru. Zatem
dostajemy
|Ω| = 5! = 1 · 2 · 3 · 4 · 5 = 120.
W Sage-u możemy te˛ silnie˛ obliczyć poleceniem factorial(5). Zobaczmy, jak two-
rzymy permutacje w programie Sage:
sage: p = Permutations([’A’,’B’,’C’,’D’,’E’])
wynik: 120
Musimy teraz obliczyć, na ile sposobów może ta piatka
˛ wejść do tramwaju, ale kobiety
maja˛ wejść pierwsze. Asia i Basia oczywiście moga˛ wejść na dwa sposoby. Natomiast
chłopcy na 3! = 6 sposobów.
sage: p = Permutations([’C’,’D’,’E’])
sage: p.list()
|A| = 2 · 6 = 12.
Obliczamy wiec
˛ prawdopodobieństwo, że chłopcy okazali sie˛ dżentelmenami:
12 1
P(A) = = .
120 10
57
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
Przykład 6. W urnie mamy trzy kule białe i cztery czarne. Losujemy trzy
kule bez zwracania. Jakie jest prawdopodobieństwo, że kule bed
˛ a˛ tego samego
koloru?
sage: Urna.list()
Możemy te podzbiory policzyć z rysunku, lecz wiemy, że jest ich binomial(7, 3), czyli
7
|Ω| = = 35.
3
Policzmy teraz ile jest podzbiorów, które zawieraja˛ kule tego samego koloru. Musimy
wtedy losować albo tylko ze zbioru kul białych albo czarnych, tzn.
58
2.1. RACHUNEK PRAWDOPODOBIEŃSTWA
wynik: [{3c, 1c, 4c} , {3c, 1c, 2c} , {3c, 4c, 2c} , {1c, 4c, 2c}]
Widzimy wiec,
˛ że jest ich łacznie
˛ 5, zatem |A| = 5. Można oczywiście obliczyć wzorem
3 4
|A| = + = 5.
3 3
Dostajemy wiec
˛ odpowiedź, że prawdopodobieństwo wylosowania kul tego samego ko-
loru wynosi
5 1
P(A) = = .
35 7
sage: Podzb.list()
wynik: [{} , {1} , {2} , {3} , {1, 2} , {1, 3} , {2, 3} , {1, 2, 3}]
Rodzina podzbiorów tego zbioru zawiera już
sage: PPodzb.cardinality()
wynik: 256
elementów, a rodzina podzbiorów uzyskanego zbioru zawiera aż tyle
sage: PPPodzb.cardinality()
wynik: 11579208923731619542357098500868790785326998466564056403945758400791312963993
elementów. Liczba ta składa sie˛ z nastepuj
˛ acej
˛ liczby cyfr:
59
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
sage: PPPodzb.cardinality().ndigits()
wynik: 78
Dzieje sie˛ tak gdyż liczba podzbiorów zbioru trzy elementowego składa sie˛ z 23
3
podzbiorów, rodzina jej podzbiorów składa sie˛ z 22 = 256 podzbiorów, no i ta duża
liczba to
23
22
(2, 5, 2, 3).
{1, 2, 3, 4, 5}.
60
2.1. RACHUNEK PRAWDOPODOBIEŃSTWA
Wnk = nk .
Teraz musimy zliczyć wszystkie sytuacje, w których każda osoba wysiada na innym
pietrze.
˛ Oznaczmy zbiór tych zdarzeń litera˛ A. Jak łatwo sie˛ domyślacie, możemy je sobie
zilustrować również za pomoca˛ powyższych ciagów,
˛ tylko teraz wymagamy, aby numer
pietra
˛ sie˛ nie powtórzył, np. ciag
˛
(2, 3, 1, 5)
Dzieki
˛ temu, możemy obliczyć
5! 5!
|A| = = = 120.
(5 − 4)! 1!
sage: A = factorial(5)
wynik: 120
Ilość elementów zdarzenia A, możemy obliczyć jeszcze inaczej bez używania waria-
˛ na 5 sposobów, druga ma już 4 pietra
cji. Zauważmy, że pierwsza osoba może wysiaść ˛
do wyboru, trzeciej pozostaja˛ 3 pietra
˛ no i czwarta ma już tylko 2 do wyboru. Posługujac
˛
sie˛ reguła˛ mnożenia, otrzymujemy
|A| = 5 · 4 · 3 · 2 = 120.
61
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
|A| 120 24
P(A) = = = .
|Ω| 625 125
a nastepnie
˛ zbiór ciagów
˛ jako poczwórny iloczyn kartezjański pieter
˛
Pietra, Pietra)
Nie bed
˛ e˛ wyświetlał wszystkich elementów zbioru Omega gdyż jest ich zbyt dużo,
wiemy z poprzednich obliczeń ile? Zobaczmy tylko przykładowy element wylosowany
przez komputer
sage: Omega.random_element()
wynik: [4, 1, 1, 3]
Sprawdźmy, czy liczba wszystkich zdarzeń zbioru Omega jest taka sama jak obli-
czona Ω.
sage: Omega.cardinality()
wynik: 625
Jak widzimy wszystko sie˛ zgadza.
a = 2, b = 1, c = 4, d = 0
62
2.1. RACHUNEK PRAWDOPODOBIEŃSTWA
x1 + x2 + . . . + xn = k
W programie Sage możemy bardzo łatwo sobie takie rozmieszczenia zdefiniować pole-
ceniem
3
Rozwiazania
˛ tego równania cz˛esto interpretujemy, jako liczbe˛ rozmieszczeń k – nierozróżnialnych ele-
mentów w n – komórkach. Rozmieszczenia tego typu nazywamy kombinacjami z powtórzeniami.
63
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
sage: Rozwiazania.list()
sage: Rozwiazania.cardinality()
wynik: 120 czyli dokładnie tyle ile obliczyliśmy wyżej. Teraz musimy obliczyć na
ile sposobów możemy rozdać tych 7 paczków,
˛ aby każda osoba otrzymała co najmniej
jeden.
Rozwiażmy
˛ to zadanie najpierw z pomoca˛ Sage-a.
sage: A.list()
64
2.1. RACHUNEK PRAWDOPODOBIEŃSTWA
sage: A.cardinality()
wynik: 20
Bez pomocy programu można też w miare˛ łatwo zliczyć elementy zbioru A. Chcemy,
aby każda osoba otrzymała paczek,
˛ zatem na poczatku
˛ dajmy każdemu po jednym. Zo-
staja˛ nam jeszcze trzy paczki,
˛ które rozdajemy już zupełnie losowo. Możemy je wiec
˛
zliczyć tak, jak zliczyliśmy wszystkie elementy zbioru |Ω|, czyli wszystkie całkowite nie-
ujemne rozwiazania
˛ równania
a + b + c + d = 3.
Obliczymy je wzorem
4+3−1 6
|A| = = = 20.
3 3
Rozwiażmy
˛ teraz pewne zadanie tylko za pomoca˛ programu Sage. Zachecam
˛ jednak
do samodzielnego rozwiazania
˛ tego zadania.
65
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
Zadanie jest troszeczk˛e podobne do poprzedniego, gdyż również możemy pytać ile
rozwiaza
˛ ń nieujemnych całkowitych posiada równanie
sage: kwota230.list()
4 1
P(A) = = .
52 13
66
2.2. STATYSTYKA
2.2 Statystyka
d1 + d2 + . . . + dn
S=
n
[13, 5, 16, 12, 9, 17, 8, 23, 11, 24, 15, 21, 7, 8, 17, 23, 13, 16, 17, 20, 21, 14, 16, 22]
sage: S = mean(Dane); S
46
wynik:
3
Zatem
46
S=
3
sage: n = len(Dane);n
wynik: 24
Czyli liczba elementów naszego zbioru to n = 24. Cz˛esto sie˛ zdarza, że żadna z danych
nie przyjmuje wartości równej średniej jak w naszym przypadku. Jak widzimy dane sa˛
dość mocno rozrzucone, tzn. jest duża rozbieżność miedzy
˛ najmniejsza˛ wartościa,
˛ a
najwieksz
˛ a.
˛
67
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
Ogólnie średnia arytmetyczna nie mówi nam, że wszystkie czy wiekszość
˛ wartości
naszych danych sa˛ bliskie tej średniej, lecz, że położenie środka tych danych leży w jej
pobliżu.
Pamietamy
˛ przecież z geometrii jak wyznacza sie˛ środek S odcinka na osi liczbowej
o końcach A = xA oraz B = xB . Jest to punkt
xA + xb
xS = ,
2
czyli średnia arytmetyczna końców tego odcinka. Dość dobra˛ miara˛ mówiac
˛ a˛ nam jak
mocno dane sa˛ oddalone od średniej arytmetyczne j jest odchylenie standardowe. Im
mniejsza jest wartość odchylenia standardowego, tym dane sa˛ mniej rozrzucone. Ogólny
wzór dla danych d1 , d2 , . . . , dn jest nastepuj
˛ acy˛
r r
(d1 − S)2 + (d2 − S)2 + . . . + (dn − S)2 d21 + d22 + . . . + d2n
σ= = − S2 .
n n
r
2098
wynik:
69
Zapiszmy wynik w postaci numerycznej.
wynik: 5.514
Czyli możemy stwierdzić, że średnio o 5.5 nasze dane odbiegaja˛ od średniej arytmetycz-
nej.
68
2.2. STATYSTYKA
Wiemy, że aby obliczyć wariancje˛ wystarczy ostatni wynik podnieść do kwadratu,
jednakże Sage posiada osobna˛ do tego celu funkcje˛
2098
wynik:
69
Zapiszmy wynik w postaci numerycznej.
wynik: 30.41
˛ Dla dwóch liczb a i b jest
Znamy zapewne ze szkoły jeszcze średnia˛ geometryczna.
ona pierwiastkiem kwadratowym z iloczynu tych liczb, tzn.
√
Sg = a · b.
Ma ona wiele ciekawych interpretacji geometrycznych, np. jest równa wysokości trójkata
˛
prostokatnego
˛ opuszczonej z wierzchołka kata
˛ prostego, tzn.
h b
= .
a h
Po przekształceniu otrzymujemy
√
h= a · b.
Inna interpretacja mówi, że średnia geometryczna jest równa długości odcinka łacz
˛ acego
˛
środki ramion trapezu o podstawach a i b, tzn.
69
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
p
n
Sg = d1 · d2 · . . . · dn .
sage: Sg = stats.gmean(Dane)
wynik: 14.2211529148
oraz
d n2 + d n2 +1
m= dla n parzystych.
2
sage: n = len(Dane); n
wynik: 24
n = 24
sage: Dane.sort()
70
2.2. STATYSTYKA
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]
wynik: 16, 16
A wiec
˛
d12 = 16, d13 = 16
Zwróćmy uwage,
˛ że zmniejszyłem indeksy o jeden, ponieważ Sage rozpoczyna indeksy
od zera a nie od jeden, czyli u nas pierwszy element to Dane[0], a ostatni, to Dane[23].
Obliczmy wiec
˛ mediane˛
16 + 16
m= = 16
2
sage: m = median(Dane); m
wynik: 16
W statystyce wykorzystuje sie˛ jeszcze wiele innych miar, jednakże nie bed
˛ e˛ o nich
teraz mówił. W szkole średniej mogliście jeszcze poznać jedna˛ z nich, tzw. dominante˛
inaczej zwana˛ mode.
˛ Dominanta jak nazwa wskazuje, jest to wartość, która dominuje,
czyli najcz˛eściej wystepuje
˛ w rozważanych danych. Zatem aby ja˛ obliczyć, należy obli-
czyć ilość wystapie
˛ ń każdej wartości w danych, a nastepnie
˛ wybrać te˛ najcz˛eściej sie˛
pojawiajac
˛ a.
˛ Wydajmy w Sage-u nastepuj
˛ ace˛ polecenia
Zobaczymy nastepuj
˛ ace˛ informacje
71
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
sage: mode(Dane)
Średnia˛ arytmetyczna˛ liczymy wtedy wzorem na tzw. średnia˛ ważona˛ czyli dzielimy
sume˛ iloczynów wszystkich kolumn naszej tabeli przez sume˛ drugiego wiersza.
5 · 1 + 7 · 1 + 8 · 2 + . . . + 24 · 1 368 46
S= = = .
1 + 1 + 2 + ... + 1 24 3
Wspomniałem wcześniej, że statystyka zajmuje sie˛ też prezentowaniem danych. Naj-
cz˛eściej używanym sposobem prezentacji jest histogram, który obrazuje za pomoca˛
wykresu rozkład liczebności badanych danych w ustalonych przedziałach.
72
2.2. STATYSTYKA
[1,1,2,2,2,2,3,3,3,3,3,3,3,3,3,\
4,4,4,4,4,4,4,5,5,5,5,6,6])
normalize=False)
0
1 2 3 4 5 6
73
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
Rozwiażmy
˛ teraz kilka zadań.
Odpowiedz na pytania:
1. Jaka średnia ilość przeczytanych ksiażek
˛ przypadała na jednego ucznia tej klasy?
2. Jak duże było odchylenie liczby przeczytanych ksiażek
˛ od tej średniej?
3. Ilu uczniów przeczytało wiecej
˛ ksiażek
˛ niż średnia?
4. Jaka była mediana i dominanta przeczytanych ksiażek
˛ tego roku?
5. Naszkicuj histogram na podstawie tych danych.
W rozwiazaniu
˛ pomożemy sobie programem Sage. Najpierw musimy sobie zdefiniować
dane. Można to zrobić na kilka sposobów. Jeden najprostszy, to utworzyć recznie
˛ liste˛
ksiażek
˛ przeczytanych przez wszystkich uczniów, tzn.
9,9,9,9,9,9,9,11,11,14]
dane = []
for i in [1..para[1]]:
Efekt bedzie
˛ ten sam
wynik: [0, 0, 2, 2, 2, 2, 6, 6, 6, 6, 6, 9, 9, 9, 9, 9, 9, 9, 9, 11, 11, 14]
74
2.2. STATYSTYKA
Drugi sposób jest może troche˛ skomplikowany na pierwszy rzut oka. Zauważmy jednak,
że gdyby uczniów było sporo wiecej
˛ oraz liczba ksiażek
˛ przypadajaca
˛ na jednego ucznia
była by wieksza,
˛ to z pewnościa˛ poprzednia metoda byłaby uciażliwa.
˛ Wyobraźmy sobie,
że mamy analogiczne dane jak w zadaniu ale z kilku lat i dla uczniów całej szkoły i
mielibyśmy np. wpisać dwadzieścia pieć
˛ razy liczbe˛ 7, 32 razy liczbe˛ 12, itp.
sage: S = mean(dane)
wynik: 6.636
73
S= = 6.636.
11
wynik: 3.861
r
41
σ=2 = 3.861.
11
[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]
75
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
Sortowanie widzimy znacznie ułatwia zadanie, jednak przy takiej ilości danych mimo
wszystko mieli byśmy troszk˛e pracy. Można jednak wykorzystać do tego celu Sage-a.
sage: liczba_el = 0
sage: S = mean(dane)
if x >= S:
liczba_el = liczba_el + 1
sage: liczba_el
wynik: 11
Otrzymaliśmy wiec
˛
liczba_el = 11.
Ad. 4. Dominante˛ najlepiej widać w tabelce podanej w treści zadania. Widzimy, że jest
nia˛ 9, która wystapiła
˛ aż osiem razy. Mamy 22 dane, wiec
˛ mediana jest równa
d11 + d12 15
m= = = 7.5.
2 2
Ad. 5. Sporzadźmy
˛ histogram za pomoca˛ programu Sage.
8
7
6
5
4
3
2
1
2 4 6 8 10 12 14
76
2.2. STATYSTYKA
sage: d = finance.TimeSeries(dane)
sage: d.plot_histogram(bins=6,fill=False,normalize=False)
sage: liczba_godzin = [0, 5, 10, 15, 20, 25, 30, 35, 40]
77
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
Gdybyśmy chcieli wykonywać inne obliczenia statystyczne, warto byłoby utworzyć sobie
liste˛ godzin wszystkich uczniów. Można ja˛ przygotować za pomoca˛ nastepuj
˛ acych
˛ pole-
ceń:
sage: lista_godz = []
sage: j = -1
j = j+1
for i in [1..lu]:
78
2.2. STATYSTYKA
ZADANIA
2. Zapomnieliśmy PIN-u do naszego telefonu, o którym wiemy, że składał sie˛ z czte-
rech cyfr. Przypominamy sobie tylko, że składał sie˛ on z cyfr nastepuj
˛ acego
˛ zbioru
{0, 3, 4, 6, 8, 9}.
5. Rzucamy pieć
˛ razy symetryczna˛ moneta.
˛ Jakie jest prawdopodobieństwo, że za
pierwszym i za piatym
˛ razem wypadnie orzeł?
7. Rozwiaż
˛ równania w zbiorze liczb całkowitych nieujemnych
8. Pieć
˛ kobiet i pieciu
˛ meżczyzn
˛ zasiadaja˛ przy okragłym
˛ stole. Jakie jest prawdopo-
dobieństwo, że meżczyzna
˛ nie usiadzie
˛ obok meżczyzny?
˛
9. Igor w dniu swoich imienin zabiera do przedszkola paczk˛e cukierków aby podzielić
sie˛ nimi z kolegami, koleżankami oraz pania.
˛ Jakie jest prawdopodobieństwo, że
każdy otrzyma przynajmniej dwa cukierki, jeżeli paczka zawiera 30 cukierków a
grupa przedszkolna liczy 12 dzieci.
79
ROZDZIAŁ 2. RACHUNEK PRAWDOPODOBIEŃSTWA I STATYSTYKA
MATEMATYCZNA
10. Jakie jest prawdopodobieństwo, że z losowo wybranych trzech liczb danego zbioru
{1, 2, 3, 4, 5, 6, 7}
bedzie
˛ można utworzyć trójkat?
˛
Odpowiedz na pytania:
13. Wygeneruj w programie Sage przykładowe dane poleceniem Oblicz dla tych danych
(d) Sporzadź
˛ histogram.
80
Rozdział 3
Stereometria
sage: tetrahedron()
sage: octahedron(frame=False, \
color=[’red’,’green’,’blue’,’yellow’])
81
ROZDZIAŁ 3. STEREOMETRIA
sage: octahedron(color=[’red’,’green’,’blue’,’yellow’],\
frame=False).stickers(0.2, 0.2)
Za pomoca˛ trójkatów
˛ równobocznych można zbudować jeszcze jeden wielościan
foremny – dwudziestościan (łac. ikosaedr). W tym przypadku, narożnik zbudowany jest
82
3.1. BRYŁY PLATOŃSKIE
za pomoca˛ pieciu
˛ trójkatów
˛ 5 · 600 = 3000 < 3600 . Wiecej
˛ z pomoca˛ trójkatów
˛ nie da sie˛
zbudować wielościanów foremnych, gdyż 6 · 600 = 3600 ≥ 3600 .
Zobaczmy jak wyglada
˛ dwudziestościan foremny.
sage: icosahedron(frame=False)
Za pomoca˛ kwadratu możemy zbudować jedynie sześcian (łac. heksaedr), gdyż 3·900 =
2700 < 3600 , ale z czterech kwadratów jest to już nie możliwe, gdyż (4·900 = 3600 ≥ 3600 ).
Do narysowania czworościanu służy polecenie cube.
sage: cube(color=[’red’,’blue’,’green’],frame=False)
sage: dodecahedron(frame=False)
Filozof grecki Platon traktował wielościany foremne w szczególny sposób, tzn. porów-
nywał je z żywiołami. Czworościanowi przypisywał ogień, sześcianowi Ziemie,
˛ ośmiościa-
nowi powietrze, a dwudziestościanowi wode.
˛ Dwunastościan traktował jako coś co łaczy
˛
wszystko – utożsamiał do z Wszechświatem. Z tego powodu wielościany foremne cz˛esto
83
ROZDZIAŁ 3. STEREOMETRIA
określa sie˛ mianem brył platońskich. Jednak nie on był ich odkrywca,
˛ lecz starożytny
matematyk grecki Teajtetos.
84
3.2. GRANIASTOSŁUPY I OSTROSŁUPY
(0, 0, 0), (2, 0, 0), (3, 1.5, 0), (2, 3, 0), (0, 3, 0), (−1, 1.5, 0),
natomiast druga
(0, 0, 2), (2, 0, 2), (3, 1.5, 2), (2, 3, 2), (0, 3, 2), (−1, 1.5, 2).
[2,3,0],[0,3,0],[-1,1.5,0]]
[2,3,2],[0,3,2],[-1,1.5,2]]
sage: gr.show()
Minusem tej metody jest to, że musimy sami definiować liste˛ punktów. Jednakże nie jest
to takie trudne, gdyż przyjrzyjcie sie˛ uważnie punktom, które wyżej zdefiniowałem. Wi-
dzimy, że każdy punkt pierwszej podstawy ma trzecia˛ współrz˛edna˛ równa˛ zero, co ozna-
85
ROZDZIAŁ 3. STEREOMETRIA
cza, że leży ona w płaszczyźnie Oxy, natomiast druga jest kopia˛ pierwszej, tylko trzecia
współrz˛edna każdego punktu wynosi 2. Otrzymaliśmy tym samym graniastosłup pro-
sty, tzn. jego ściany boczne sa˛ prostokatami.
˛ Zatem aby tworzyć takie listy wierzchołków
możemy sobie najpierw zdefiniować liste˛ wierzchołków wielokata
˛ na płaszczyźnie, na-
stepnie
˛ dołożyć do każdego punktu jako trzecia˛ współrz˛edna˛ raz 0 i raz liczbe˛ niezerowa,
˛
np. 2. Zobaczmy jak wygladaj
˛ a˛ punkty pierwszej podstawy na płaszczyźnie.
sage: points(podst1,gridlines=True,size=30)\
1.5
-1 1 2 3
86
3.2. GRANIASTOSŁUPY I OSTROSŁUPY
sage: os.show(frame=False,opacity=0.3,color=’blue’)
1
Współrz˛edne środka masy wielokata
˛ wypukłego na płaszczyźnie wyznaczamy jako średnie arytme-
tyczne współrz˛ednych jego wierzchołków.
87
ROZDZIAŁ 3. STEREOMETRIA
rowej. Jednakże brakuje jej opcji zaznaczania dowolnych odcinków czy numerowania
wierzchołków, co jak wiecie jest bardzo pomocne przy rozwiazywaniu
˛ zadań.
sage: h = 2 # wysokosc
# wierzcholki podstaw
[0.5,3,0],[-1,2,0]];
[0.5,3,h],[-1,2,h]];
Zaczałem
˛ od zdefiniowania dwóch zmiennych: h – “wysokość”, tzn. trzecia współrz˛edna
wierzchołków jednej z podstaw. Nastepnie
˛ definiujemy listy wierzchołków podstaw. Wy-
starczy teraz połaczyć
˛ odpowiednio te punkty liniami.
# krawedzie boczne
color=’blue’,thickness=3)
# obramowanie podstaw
color=’blue’,thickness=3)
color=’blue’,thickness=3)
sage: gr5.show(frame=False)
Już wyjaśniam powyższe polecenia. Otóż gr5 = None powoduje utworzenie pew-
88
3.2. GRANIASTOSŁUPY I OSTROSŁUPY
nego obiektu o nazwie gr5 ale na razie niczego mu nie przypisujemy. Później bedzie
˛ tam
zapisany nasz graniastosłup. Nastepnie
˛ instrukcja for i in range(0,5): powoduje,
że zmienna i przyjmuje kolejno wartości 0, 1, 2, 3, 4 i za każdym 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 końcach [0, 0, 0], [0, 0, 2],
[vp1[1], vp2[1]] oznacza odcinek o końcach [2, 0.5, 0], [2, 0.5, 2], itd.
aż do [vp1[4], vp2[4]] oznacza odcinek o końcach [−1, 2, 0], [−1, 2, 2].
Na końcu rysujemy obramowanie podstaw przechodzac
˛ po sasiednich
˛ wierzchołkach.
Zauważmy, że użyłem operatora %, który zwraca w wyniku reszte˛ z dzielenia liczby
stojacej
˛ z lewej strony przez liczbe˛ stojac
˛ a˛ z prawej, tzn. (i+1) % 5. Zobaczmy jak
wygladaj
˛ a˛ wartości tego wyrażenia dla i przechodzacego
˛ 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.
Dlatego użyłem tego operatora, aby połaczyć
˛ ostatni wierzchołek vp1[4] z poczatko-
˛
wym, czyli vp1[0]. Podobnie dla drugiej podstawy.
Majac
˛ zdefiniowane wierzchołki podstaw, możemy łatwo pokolorować podstawy.
# kolorowe podstawy
89
ROZDZIAŁ 3. STEREOMETRIA
+ polygon3d(vp1,color=’blue’,opacity=0.1) \
+ polygon3d(vp2,color=’blue’,opacity=0.1)
sage: gr5.show(frame=False)
# kolorowe podstawy
sage: gr5.show(frame=False)
Widzicie wiec,
˛ że możemy łatwo tworzyć dowolne bryły i je modyfikować. Ponieważ
nie ma gotowej funkcji, która potrafi rysować dowolne graniastosłupy z możliwościa˛
pokazywania przekatnych
˛ oraz opisywaniem wierzchołków, postanowiłem taka˛ funkcje˛
napisać. Definicje˛ tej funkcji możecie zobaczyć w dodatku A tej ksiażki,
˛ oraz skorzystać
z niej w notatniku dołaczonym
˛ również do tej ksiażki.
˛ 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)
90
3.2. GRANIASTOSŁUPY I OSTROSŁUPY
sage: g = graniastoslup(5,przekatne_sb=True)
sage: g.show(frame=False)
sage: g = graniastoslup(3,przekatne_sb=True)
sage: g.show(frame=False)
sage: g = graniastoslup(4,przekatne_gr=True,\
przekatne_sb=True)
91
ROZDZIAŁ 3. STEREOMETRIA
sage: g.show(frame=False)
sage: g = graniastoslup(6,przekatne_gr=True)
sage: g.show(frame=False)
Rozwiażmy
˛ teraz kilka zadań z graniastosłupami.
sage: g = graniastoslup(4,przekatne_gr=True)
sage: g.show(frame=False)
Z danych zadania wynika, że ∡(A3 , A1 , B3 ) = 600 oraz |A1 B3 | = 5cm. Zatem trójkat
˛
92
3.2. GRANIASTOSŁUPY I OSTROSŁUPY
A1 , B3 , A3 jest trójkatem
˛ prostokatnym
˛ odpowiednio o katach
˛ 300 , 600 , 900 , który widoczny
jest na rysunku po prawej stronie. Każdy kto rozwiazywał
˛ zadania ze stereometrii czy
planimetrii w szkole średniej z pewnościa˛ dosyć cz˛esto miał z nim styczność, dlatego
warto znać jego podstawowe własności. Narysowałem go poleceniami:
sage: v = [A,B,C]
sage: tr = tr \
sage: tr.show(axes=False)
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 dowiedzieliście sie˛ jak definiuje sie˛ funkcje w programie Sage.
Przygotujmy wiec
˛ sobie funkcje˛ , za pomoca˛ której później obliczymy szukane pole.
sage: var(’b,H’)
93
ROZDZIAŁ 3. STEREOMETRIA
˛ A1 , B3 , A3 , możemy wiec
Z własności trójkata ˛ obliczyć wysokość |A3 B3 | = H. Skoro
2a = |A1 B3 | = 5 cm,
˛ a = 2.5 cm oraz
wiec
√ √
H = a 3 = 2.5 3 cm.
√
Odcinek a = |A1 A3 | = 2.5 cm jest przekatn
˛ a˛ kwadratu o boku b, zatem b 2 = 2.5
√
(przekatna
˛ kwadratu o boku b ma długość b 2). Stad˛
√
2.5 5 2
b= √ = cm.
2 4
sage: b = 5*sqrt(2)/4
sage: H = 5*sqrt(3)/2
sage: P(b,H)
25 √ √ √
wynik: 2 4 3+ 2
8
94
3.2. GRANIASTOSŁUPY I OSTROSŁUPY
sage: graniastoslup(6,przekatne_gr=True).show(Frame=false)
|A2 B5 | = 2|A2 A4 | = 6.
95
ROZDZIAŁ 3. STEREOMETRIA
oraz √ √
a2 3 3a2 3
V = Pp · H = 6 · ·H= H.
4 2
√
a2 3
˛ równobocznego o boku a wynosi
Wiemy, że pole trójkata .
4
Widzimy z powyższego rysunku, że
√
|A2 A4 | = a 3 = 3.
√
Zatem a = 3. Musimy jeszcze obliczyć wysokość graniastosłupa. Jak zapewne zauwa-
˛ A2 , A5, B5 :
żyliście, wystarczy zastosować twierdzenie Pitagorasa do trójkata
√
Ponieważ |A2 A5 | = 2a = 2 3, |A2 B5 | = 6 i |A5 B5 | = H, wiec
˛
√ 2 √ √ √
2 3 + H2 = 62 ⇒ H = 36 − 12 = 24 = 2 6.
sage: var(’H’)
sage: assume(H>0)
Wiecej
˛ wiadomości na temat rozwiazywania
˛ równań w programie Sage dowiecie sie˛
w rozdziale 4. Chciałbym zwrócić tu uwage˛ na instrukcje˛ assume. Powoduje ona, że
zmienna H może przyjmować tylko wartości dodatnie (jest to przecież długość odcinka).
Zapewne zauważyliście, że bez tej instrukcji program zwróciłby dwa rozwiazania.
˛
sage: var(’H’)
96
3.2. GRANIASTOSŁUPY I OSTROSŁUPY
Wróćmy jednak do naszego zadania. Skoro mamy już obliczone podstawe˛ a oraz
wysokość H możemy obliczyć pole i objetość.
˛
sage: a = sqrt(3)
sage: H = 2*sqrt(6)
sage: V = 3*a^2*sqrt(3)*H/2
sage: cz = polygon3d([A,B,C],color="blue",opacity=0.2)
97
ROZDZIAŁ 3. STEREOMETRIA
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)
Po uproszczeniu otrzymujemy a = 6.
q √ 2 √ √ √
H2 + |SC|2 = a2 ⇒ H = 62 − 2 3 = 36 − 12 = 24 = 2 6.
98
3.3. BRYŁY OBROTOWE
Możemy wiec
˛ obliczyć objetość
˛ ostrosłupa:
√
1 1 62 3 √ √ √
V = Ps H = · · 2 6 = 6 18 = 18 2.
3 3 4
sage: var(’a,h,H,Pp’)
√
a2 3
sage: Pp = a^2*sqrt(3)/4 #pole podstawy Pp =
4 √
a 3
sage: h = a*sqrt(3)/2 #wysokość podstawy h =
r2
2
sage: H = sqrt(a^2-((2/3)*h)^2) #wysokość H = a2 − ( h)2
3
sage: V = (1/3) * Pp * H
sage: V = V.simplify_radical()
1 √ 3
wynik: V = 2a .
12
sage: V = V.subs(a = 6)
√
wynik: V = 18 2.
sage: sphere()
+ line3d([(0,0,0), (sqrt(3)/3,sqrt(3)/3,sqrt(3)/3)],\
99
ROZDZIAŁ 3. STEREOMETRIA
color=’green’)
+ 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)
Domyślnie środek kuli jest w punkcie (0, 0, 0), opcja size określa promień kuli. Pole-
cenia line3d, point3d, text3d już znacie. Dodatkowo dorysowałem dwa okregi
˛
jeden poleceniem circle o środku (0, 0, 0) i promieniu 1, natomiast drugi poleceniem
implicit_plot3d. To polecenie potrafi rysować dowolne krzywe w przestrzeni, trzeba
˛ o środku (0, 0, 0) i promie-
tylko znać równanie tej krzywej. Ja chciałem narysować okrag
niu 1, który leży w płaszczyźnie Oyz. Zatem zdefiniowałem równanie tego okregu
˛
y 2 + z2 = 1
i narysowałem go dla y, z ∈ h−1, 1i oraz x ∈ h0, 0.03i. Dlatego dałem dla zmiennej
x tak mały przedział, aby otrzymać okrag.
˛ Gdybyśmy zdefiniowali wiekszy
˛ przedział,
to zobaczylibyśmy walec zamiast okregu.
˛ Na przykład tak wygladałby
˛ nasz rysunek,
gdybyśmy x zdefiniowali na przedziale h−1, 1i.
Zwróćmy jeszcze uwage˛ na pewien szczegół dotyczacy
˛ funkcji show. Otóż użyłem
tym razem opcji aspect_ratio=1, która powoduje, że kształt rysowanych figur nie
ulegnie deformacji, podczas łaczenia
˛ kilku figur na jednym wykresie. Spróbujcie wykonać
ostatni rysunek bez tej opcji.
Do rysowania stożków również mamy zdefiniowana˛ gotowa˛ funkcje˛ o na-
100
3.3. BRYŁY OBROTOWE
sage: Cone(1, 2)
+ circle((0,0,0), 1, color=’red’)\
+ 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 już narysować, gdyż użyłem odpowiedniego polecenia podczas kre-
101
ROZDZIAŁ 3. STEREOMETRIA
ślenia okregu
˛ na kuli. Chodzi tu o polecenie implicit_plot3d. Narysujmy walec, wy-
znaczony przez okrag
˛ o równaniu
x2 + y2 = 9,
sage: implicit_plot3d(x^2+y^2-9,\
(x,-4,4),(y,-4,4),(z,-2,0))
⊲ walec
Pw = πR2 + 2πRH, Vw = πR2 H.
⊲ stożek
1
Ps = πR2 + 2πRt, Vs = πR2 H.
3
⊲ kula
4
Pk = 4πR2 , Vk = πR3 .
3
Oznaczenia przyjałem
˛ takie jak na powyższych rysunkach. Możemy zdefiniować sobie te
wzory w programie Sage, co ułatwi późniejsze rozwiazywanie
˛ zadań.
sage: var(’R,H,Pw,Ps,Pk,Vw,Vs,Vk’)
102
3.3. BRYŁY OBROTOWE
O tworzeniu i rozwiazywaniu
˛ równań dowiecie sie˛ wiecej
˛ w rozdziale czwartym
tej ksiażki.
˛ Jednak chciałbym tu wyjaśnić kilka szczegółów. Otóż powyższymi in-
strukcjami utworzyliśmy sobie sześć równań, które nazwaliśmy sobie odpowiednio
Polew alca, Objetoscw alca, Poles tozka, itd. Jeszcze raz podkreślam, że sa˛ to tylko nazwy
naszych równań. Teraz możemy łatwo wyświetlić wzór na pole powierzchni stożka
poleceniem
sage: Pole_stozka
wynik: Dla R = 2, H = 3, V = 12 π
Poza tym możemy sobie z tych równań wyznaczać inne niewiadome. Przypuśćmy, że w
zadaniu podane jest pole powierzchni całkowitej p i promień r podstawy stożka, tzn.
P = p, R = r.
sage: solve(Pole_stozka, t)
πR2 − P
wynik: t = −
2 πR
Rozwiażmy
˛ teraz kilka przykładowych zadań dotyczacych
˛ brył obrotowych.
103
ROZDZIAŁ 3. STEREOMETRIA
Korzystajac
˛ ze zdefiniowanych wcześniej wzorów zadanie to możemy łatwo rozwiazać.
˛
Zanim jednak przystapicie
˛ do obliczeń, warto do każdego zadania ze stereometrii spo-
rzadzić
˛ odpowiedni rysunek.
sage: solve(Pole_stozka.subs(P=33*pi,R=3), t)
wynik: [t = 4]
√
H2 + R2 = t2 ⇒ H = t2 − R2 .
sage: H = sqrt(4^2-3^2)
√
wynik: 7
Możemy wiec
˛ obliczyć objetość.
˛
Wykonajmy na poczatku
˛ odpowiedni rysunek.
104
3.3. BRYŁY OBROTOWE
Rozwiazanie:.
˛ Przyjmijmy oznaczenia zgodnie z rysunkiem, zatem d = d1 + d2 . Aby
obliczyć objetość
˛ kuli musimy znać jej promień R.
Z treści zadania wynika, że jeśli r1 = n, gdzie n jest pewna˛ liczba˛ naturalna,
˛ to
r2 = n + 1 oraz d = n + 2 (sa˛ to trzy kolejne liczby naturalne). Ich suma ma dać 21
zatem
n + (n + 1) + (n + 2) = 21 ⇒ 3n + 3 = 21 ⇒ 3n = 18 ⇒ n = 6.
Otrzymujemy wiec
˛
r1 = 6, r2 = 7, d = 8.
sage: var(’r1,r2,d1,d2’)
105
ROZDZIAŁ 3. STEREOMETRIA
Ponieważ d = 8, wiec
˛ d2 = 8 − d1 . Wstawmy wiec
˛ do powyższego równania za d2
wyrażenie 8 − d1 oraz za r1 i r2 obliczone wcześniej wartości.
Recznie
˛ musielibyśmy wykonać nastepuj
˛ ace˛ czynności:
62 + d21 = 72 + (8 − d1 )2 ,
16d1 = 77,
77
d1 = .
16
sage: assume(R>0)
Na koniec objetość
˛ kuli obliczymy poleceniem:
sage: Objetosc_kuli.subs(R=1/16*sqrt(15145))
15145 √
wynik: V = 15145π
3072
3.4 Zadania
106
3.4. ZADANIA
2. Oblicz objetość
˛ graniastosłupa prawidłowego czworokatnego,
˛ którego przekatna
˛
ma długość 5 cm i tworzy z przekatn ˛ 300 .
˛ a˛ podstawy kat
6. Oblicz objetość
˛ graniastosłupa prostego, którego podstawa jest rombem o polu rów-
nym 30 cm2 . Dłuższa przekatna
˛ tego rombu ma długość 12 cm i tworzy z przekatn
˛ a˛
˛ 300 . Oblicz pole powierzchni całkowitej tego graniastosłupa.
graniastosłupa kat
107
ROZDZIAŁ 3. STEREOMETRIA
√
12. Stożek o tworzacej
˛ długości 4 3 został przedzielony płaszczyzna˛ prostopadła˛ do
wysokości stożka, która przedzieliła go na dwie bryły. Jedna z tych brył jest stoż-
√
kiem o promieniu podstawy 2 3 i powierzchni bocznej trzykrotnie mniejszej od po-
wierzchni wyjściowego stożka. Oblicz objetość
˛ bryły, która powstała po podziale i
która nie jest stożkiem.
3.5 Dodatek A
sage: g = graniastoslup(6)
sage: g.show()
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()
sage: g4 = graniastoslup(4,przekatne_gr=True,\
przekatne_sb=True)
sage: g4.show()
108
3.5. DODATEK A
#graniastosłup n - katny
˛
def graniastoslup(n=3, wierzcholki=[],
przekatne_gr=False, przekatne_sb=False):
h = 2 #wysokość graniastosłupa
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]
gr0 = text3d(’Graniastosłup nie istnieje.’,\
[0,0,0], color=(0,0,0), size=14)
if n < 3:
print ’Liczba wierzchołków musi być wi˛
eksza od 2’
return gr0
elif (not n) and (not wierzcholki):
n = 3
if not wierzcholki:
v = dv[0] #domyślnie rysujemy gr. trójkatny
˛
elif n>2 and n < 7:
if not wierzcholki:
v = dv[n-3]
else:
if len(wierzcholki) >= n:
v = wierzcholki
else:
print ’Liczba wierzchołków musi być równa ’ , n
return gr0
else:
if not wierzcholki:
print ’Jeśli n > 6, to trzeba podać list˛
e wierzchołków’
return gr0
else:
if len(wierzcholki) >= n:
v = wierzcholki
else:
109
ROZDZIAŁ 3. STEREOMETRIA
110
3.5. DODATEK A
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 ],\
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)
#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)\
111
ROZDZIAŁ 3. STEREOMETRIA
112
Rozdział 4
1
http://www.sagemath.org
2
Stein, William. SAGE: A Computer System for Algebra and Geometry Experimentation. Retrieved 30
March 2012.
3
http://pl.wikipedia.org/wiki/GNU_General_Public_License
4
http://pl.wikipedia.org/wiki/Python
113
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
Biblioteki Przeznaczenie
GAP, Maxima, Singular Algebra
Singular Geometria algebraiczna
MPIR, MPFR, MPFI, NTL, mpmath Obliczenia arytmetyczne dowolnej precyzji
Maxima, SymPy, GiNaC Rachunek różniczkowy
Symmetrica, Sage-Combinat Kombinatoryka
GSL, SciPy, NumPy, ATLAS Obliczenia numeryczne
PARI/GP, FLINT, NTL Teoria liczb
R, SciPy Obliczenia statystyczne
4.1 Instalacja
114
4.1. INSTALACJA
Po kliknieciu
˛ na wybrana˛ ikone˛ – ja osobiście skorzystałem z konta Google – zobaczymy
okno logowania.
115
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
sage-5.12-linux-64bit-ubuntu_12.04.3_lts-x86_64-Linux.tar.lzma
116
4.1. INSTALACJA
cd /ścieżka/do/katalogu/sage-5.12
./sage
cp /ścieżka/do/katalogu/sage-5.12/sage /usr/local/bin/
Nastepnie
˛ otwieramy plik /usr/local/bin/sage w swoim ulubionym edytorze tekstu, i
zmieniamy wartość zmiennej SAGE_ROOT, na ścieżk˛e do katalogu, gdzie rozpakowaliśmy
program, tzn.
SAGE_ROOT=/ścieżka/do/katalogu/sage-5.12
Dzieki
˛ tym zabiegom, z dowolnego miejsca na dysku, możemy wydać polecenie sage
(bez kropki i slasha) i mamy uruchomiony program. Możemy już korzystać z wszelkich
dobrodziejstw, które nam dostarcza.
Zaraz po uruchomieniu interaktywnego wiersza poleceń na ekranie pojawi nam sie˛ kilka
informacji, m. in. wersja programu oraz podpowiedź, że poleceniem notebook() uru-
chomimy interfejs notatnika programu Sage. Polecenia wpisujemy po napisie sage:.
117
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
Aby zobaczyć wynik polecenia, wciskamy klawisz Enter. Jak widzimy, polecenie
notebook() uruchamia tzw. notatnik programu Sage. Można go też uruchomić wydajac
˛
bezpośrednio w terminalu systemowym polecenie sage -n.
118
4.1. INSTALACJA
Domyślnie mamy do dyspozycji konto użytkownika admin z hasłem sage. Jeśli próba
zalogowania sie˛ nie uda (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
˛ można utworzyć konto nowego użytkownika.
119
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
Z opisu instalacji dowiedzieliście sie˛ już jak uruchomić interaktywny wiersz pole-
ceń oraz notatnik programu Sage. Myśle,
˛ że 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
Arkusz składa sie˛ z komórek, w które wpisujemy polecenia. Polecenia w notatniku i w inte-
raktywnym wierszu poleceń sa˛ takie same. Dodatkowo w notatniku możemy wprowadzać
kilka poleceń w jednej komórce. Aby wykonać obliczenia z danej komórki naciskamy przy-
cisk Evaluate lub wciskamy Shift+Enter. Pamietajmy,
˛ że wyświetlany jest zawsze wynik
ostatniego polecenia w komórce.
120
4.2. ROZPOCZYNAMY PRACE˛ Z PROGRAMEM SAGE
Widzimy, że komentarze poprzedzamy symbolem #. Warto je dodawać, gdyż okaża˛ sie˛
bardzo cenne gdy bedziemy
˛ chcieli skorzystać z naszego arkusza za kilka miesiecy
˛ czy
może lat.
121
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
122
4.3. OBLICZENIA ARYTMETYCZNE
sage: 7 + 5 - 4 * 2 / 5
52
wynik:
5
Oprócz tych czterech operatorów, mamy do dyspozycji duża˛ ilość innych funkcji mate-
matycznych odpowiadajacych
˛ potegowaniu,
˛ pierwiastkowaniu, logarytmowaniu, funkcje
trygonometryczne, itd. Zobaczmy to na przykładach.
123
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
sage: 3^4
wynik: 81
Widzimy, że symbol “^” oznacza poteg ˛ tzn. 3^4 = 34 . Sage potrafi pracować na bardzo
˛ e,
dużych liczbach i do tego robi to bardzo szybko. Mówiac
˛ o bardzo dużych liczbach mam
na myśli liczby składajace
˛ sie˛ z tysiecy
˛ a nawet milionów cyfr. Przyjrzyjmy sie˛ uważnie
obrazkowi poniżej.
1234567891234567
sage: sqrt(121)
wynik: 11
√
Zatem sqrt(121) = 121 = 11. Nie ma zaimplementowanych funkcji obliczajacych
˛
pierwiastki innych stopni. Jednakże nie sa˛ nam potrzebne, gdyż mamy operator potego-
˛
1
wania “^”. Wiemy przecież, że pierwiastek stopnia m, to potega
˛ , tzn.
m
√
m 1
a = am .
√
q
5
72 + 3 12
124
4.3. OBLICZENIA ARYTMETYCZNE
piszemy
sage: log(16,2)
wynik: 4
sage: log(100)
wynik: 4.605
Sage zwykle stara sie˛ zwracać jak najdokładniejsza˛ wartość wyników obliczeń.
Spójrzmy na prosty przykład.
sage: sqrt(53)
√
wynik: 53
sage: N(sqrt(53))
wynik: 7.28010988928052
wynik: 7.28
wynik: 7.28010988928051827109730249152703279377766968257647743837818
125
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
sage: N(sqrt(1323232323232))
2
1323232323232 > 1.1503 × 106 = 1.3232 × 1012 = 1323200000000.
2
1.15031835733939 × 106 = 1.32323232323200 × 1012 = 1323232323232.
Jeśli liczba jest mniejsza od jedności, to metoda N liczbe˛ cyfr zlicza od przecinka, tzn.
sage: (2/3).N(digits=3)
wynik: 0.667
Powiedziałem wyżej “przecinka”, jednak widzimy, że cz˛eść ułamkowa˛ liczby rzeczywistej
oddzielamy kropka.
˛
sage: 12 > 16
wynik: False
wynik: True
126
4.3. OBLICZENIA ARYTMETYCZNE
wynik: False
wynik: True
Poza wymienionymi wyżej działaniami mamy do dyspozycji jeszcze wiele innych, ale je
chciałbym zwrócić szczególna˛ uwage˛ na jeszcze jeden, który zdefiniowany jest za po-
moca˛ symbolu procenta %. Zobaczmy jak on działa.
sage: 7 % 5
wynik: 2
sage: 7 == 5 * 1 + 2
wynik: True
sage: 12 % 3
wynik: 0
sage: 12 == 3 * 4 + 0
127
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
wynik: True
oraz
0 ≤ r < b.
Otrzymaliśmy tym samym operator, z pomoca˛ którego możemy sprawdzić, czy dana
liczba całkowita jest podzielna przez inna˛ liczbe˛ całkowita,
˛ np.
wynik: False
Rozwiażmy
˛ nastepuj
˛ ace˛ zadanie:
sage: lista = []
if n % 73 == 0:
lista = lista + [ n ]
sage: lista
wynik: [146, 219, 292, 365, 438, 511, 584, 657, 730, 803, 876, 949]
128
4.3. OBLICZENIA ARYTMETYCZNE
podzielna przez 73. Jeśli tak, to wykonywana jest instrukcja w kolejnym wierszu, tzn.
lista = lista + [ n ], która dodaje liczbe˛ n do naszej listy.
Aby odpowiedzieć na pytanie postawione w zadaniu, wystarczy policzyć elementy naszej
listy, albo wydać polecenie:
sage: len(lista)
wynik: 12
sage: pi
wynik: π
wynik: 3.14
wynik: 3.14159265358979323846264338327950288419716939937510582097494
sage: sin(pi/3)
1√
wynik: 3
2
sage: x = 3/5
3
W powyższym przykładzie zdefiniowałem zmienna˛ x i przypisałem jej wartość. Przy-
5
pisania dokonujemy operatorem “=”. Zauważmy, że w wyniku tego polecenia Sage nie
wyświetlił żadnego wyniku. Aby go zobaczyć należy wydać jeszcze jedno polecenie za-
wierajace
˛ tylko nazwe˛ zmiennej lub użyć funkcji print, tzn.
sage: x
3
wynik:
5
sage: print(x)
wynik: 3/5
129
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
sage: x.N(digits=2)
wynik: 0.60
sage: wyn
√
wynik: 3
Jak widzimy można w jednym wierszu wydać wiele instrukcji, ale każda musi być oddzie-
lona średnikiem. Można też nadpisywać wartości zmiennych (wcześniej jak pamietamy
˛ x
3
było równe ) czy też przypisywać im wyniki innych obliczeń. Dodatkowo Sage sam wy-
5
krywa, jaki rodzaj liczb przypisujemy zmiennym i nadaje im odpowiedni typ. Zobaczymy
to przy pomocy polecenia type.
sage: type(x)
sage: type(y)
sage: type(z)
sage: type(1.73)
130
4.3. OBLICZENIA ARYTMETYCZNE
sage: 12
wynik: 12
sage: 012
wynik: 10
sage: 0123
wynik: 83
3 · 80 + 2 · 81 + 1 · 82 = 3 + 16 + 64 = 83.
Jeśli w zapisie liczby pojawi sie˛ kropka, to Sage potraktuje te˛ liczbe˛ jako dziesietn
˛ a.˛
sage: 01.23
wynik: 1.23000000000000
sage: type(01.23)
sage: 029
gdyż liczby w systemie ósemkowym moga˛ sie˛ składać tylko z wymienionych wyżej cyfr
od 0 do 7.
131
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
sage: x = (log(8,sqrt(2))+log(4,1/2))/log(sqrt(8),2)
sage: x
log(4) log(8)
log( 2
+ √ log (2)
1
) log( 2)
wynik: √
log 2 2
sage: x.simplify()
4 log (8) 2 log (4)
wynik: −
3 log (2) 3 log (2)
Pewnie zauważyliście teraz, że to wyrażenie można jeszcze bardziej uprościć. Użyjmy
wiec
˛ innej metody o nazwie simplify_radical.
sage: x.simplify_radical()
8
wynik:
3
Tym razem widzimy, że otrzymaliśmy satysfakcjonujacy
˛ wynik. Oczywiście mogliśmy użyć
poznanej już metody N aby uzyskać wartość numeryczna˛ tego wyrażenia, jednakże nie
byłaby to wartość dokładna.
sage: x.N()
wynik: 2.66666666666666
Sage posiada też 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łożone. Możemy na przykład łatwo sprawdzić, czy liczba 12324241 jest pierwsza.
Wystarczy wydać polecenie:
sage: is_prime(12324241)
wynik: False
Otrzymaliśmy w wyniku informacje˛ False czyli “Fałsz”, zatem jest to liczba złożona.
Znajdźmy zatem liczbe˛ pierwsza˛ wystepuj
˛ ac ˛ a˛ zaraz po niej.
132
4.3. OBLICZENIA ARYTMETYCZNE
sage: next_prime(12324241)
wynik: 12324253
wynik: True
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]
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]
sage: nth_prime(12)
wynik: 37
sage: nth_prime(21)
wynik: 73
sage: factor(30030)
wynik: 2 · 3 · 5 · 7 · 11 · 13
Rozwiażmy
˛ nastepuj
˛ ace˛ zadanie.
√
Przykład 2. Wyłacz
˛ cz˛eść całkowita˛ z pierwiastka: 343035.
133
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
sage: factor(343035)
wynik: 34 · 5 · 7 · 112
Zatem
√ √ √ √ √ √
343035 = 34 · 5 · 7 · 112 = 34 · 5 · 7 · 112 = 99 35.
sage: sqrt(343035)
√
wynik: 99 35
√ 2
12 +
18
4· 3
3 −7
3 √ 3
2+4
100
do najprostszej postaci.
Zauważmy, że w tym wyrażeniu w liczniku w nawiasie znajduje sie˛ wyrażenie z poprzed-
niego przykładu, które w programie Sage nazwaliśmy sobie w1. Możemy wiec
˛ wykorzy-
stać go w definicji nowego wyrażenia co z pewnościa˛ uprości nam zapis.
134
4.3. OBLICZENIA ARYTMETYCZNE
((sin(pi/3))^2 + 1)
2√ 1
wynik: 2+
7 7
Tym razem widzimy, że Sage zwrócił nam bardzo ładny wynik, którego z pewnościa˛ nie
musimy bardziej upraszczać. Zauważmy, że przy definiowaniu powyższego wyrażenia,
mianownik przeniosłem do nowego wiersza. Jeśli instrukcja jest bardzo długa, to mo-
żemy ja˛ podzielić znakiem "\" ustawionym na końcu dzielonej linii. Ewentualnie, gdy
wyrażenie jest bardzo skomplikowane, to możemy go podzielić na kilka wyrażeń przypi-
sanych do różnych zmiennych i na koniec zapisanie wyrażenia za ich pomoca.
˛ Zobaczmy
jak możemy powyższe wyrażenie w ten sposób zbudować.
135
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
sage: w3
2√ 1
wynik: 2+
7 7
4.3.1 Zadania
sin π3 + cos 2π
p
(d) 151293 , (h) 3
.
sin2 π4 + cos2 (π)
2. Wyłacz
˛ całość przed pierwiastek
√
(a) 20164824181593,
√3
(b) 7535933164375,
√4
(c) 35113033753497567.
136
4.4. WYRAŻENIA ALGEBRAICZNE
sage: (z^2+3*z)/z
Natomiast po zadeklarowaniu
sage: var(’z’)
sage: (z^2+3*z)/z
z2 + 3 z
wynik:
z
Możemy to wyrażenie przypisać do innej zmiennej czy też uprościć, podobnie jak to
robiliśmy z wyrażeniami arytmetycznymi.
sage: wyr1.simplify_radical()
wynik: z + 3
Zwróćmy uwage,
˛ że zmiennej wyr1 nie deklarowałem i program nie protestował. Otóż
w momencie gdy nowo utworzonej zmiennej przypiszemy wyrażenie algebraiczne, tzn.
zawierajace
˛ inna˛ zmienna˛ już zadeklarowana,
˛ to ta zmienna staje sie˛ również zadeklaro-
wana. Sprawdźmy to za pomoca˛ poleceń:
sage: type(z)
sage: type(wyr1)
Widzimy, że zarówno z jak i wyr1 sa˛ wyrażeniami symbolicznymi. Natomiast gdy zmien-
nej przypiszemy liczbe,
˛ to jak wiemy z poprzedniego rozdziału przyjmie ona typ tej liczby,
np.
137
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
sage: var(’d’)
sage: type(d)
sage: d = 5
sage: type(d)
138
4.4. WYRAŻENIA ALGEBRAICZNE
sage: var(’x’)
sage: wyr2
x2 + 2 x − 1
wynik:
x+1
sage: wyr2.substitute(x = 4)
23
wynik:
5
Czyli w wyniku otrzymaliśmy wartość wyrażenia dla x = 4. Możemy też dokonywać
podstawień innych wyrażeń algebraicznych.
sage: var(’y’)
sage: wyr2.simplify_radical()
x2 + 2 x − 1
wynik:
x+1
sage: wyr3.simplify_radical()
y4 − 4 y2 + 2
wynik:
y2 − 2
Wyrażenia z ostatnich przykładów określamy mianem wymiernych, tzn. sa˛ ułamkami oraz
w liczniku i w mianowniku zawieraja˛ pewne wielomiany. Sage posiada funkcje specjalnie
przeznaczone do tego typu wyrażeń. Możemy przykładowo wyrażenie wymierne rozłożyć
na sume˛ ułamków
sage: wyr3.expand_rational()
y4 4 y2 2
wynik: 2 − 2 + 2
y −2 y −2 y −2
sage: wyr3.partial_fraction()
139
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
2
wynik: y2 − −2
y2 − 2
wynik: y4 − 4 y2 + 2
wynik: y2 − 2
Rozwiażmy
˛ nastepuj
˛ ace˛ zadanie.
sage: var(’n’)
sage: roznica.simplify_radical()
wynik: 2 n + 1
Każda liczba postaci 2n+1 gdzie n jest całkowita jest oczywiście liczba˛ nieparzysta.
˛
Wyświetlmy kilka takich różnic dla n z zakresu od -2 do 6 włacznie.
˛
print( roznica.subs(n=x) )
140
4.5. RÓWNANIA I NIERÓWNOŚCI
4.4.1 Zadania
x − 3x3 + 2 √
5
(a) 2x3 − 3x2 + 5, (b) 2
, (c) 37x3 + 5x,
x +1
Rozwiażmy
˛ na poczatek
˛ równanie, które zapewne każdy z czytelników potrafi rozwiazać,
˛
otóż
2x + 6 = 0.
2x = −6.
wynik: 2 x + 6 = 0
141
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
142
4.5. RÓWNANIA I NIERÓWNOŚCI
sage: rownanie.subtract_from_both_sides(6)
wynik: 2 x = (−6)
sage: rownanie.divide_both_sides(2)
wynik: x = (−3)
sage: solve(rownanie, x)
wynik: [x = (−3)]
sage: rownanie.substitute(x=-3)
wynik: True
ax + b = 0.
sage: var(’a,b’)
sage: solve(r_lin, x)
143
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
b
wynik: x = −
a
wynik: [x = (−4)]
Rozwiazuj
˛ ac˛ równanie
ax2 + bx + c = 0
sage: var(’a,b,c’)
sage: solve(r_kw, x)
√ √
b + b2 − 4 ac b − b2 − 4 ac
wynik: x = − ,x = −
2a 2a
Rozwiażmy
˛ teraz troszeczk˛e bardziej skomplikowane równanie
Zauważmy, że nie przyrównałem wyrażenia do zera. W takiej sytuacji polecenie solve
domyślnie przyjmuje zero. Zdajemy sobie sprawe,
˛ że tym razem mielibyśmy sporo wiecej
˛
pracy aby rozwiazać
˛ to równanie. Zapewne uczono was, że najpierw powinniśmy lewa˛
strone˛ takiego równania (wielomian), w miare˛ możliwości rozłożyć na czynniki liniowe.
Znamy różne sposoby aby tego dokonać, np. przez grupowanie wyrazów i wyłaczanie
˛
144
4.5. RÓWNANIA I NIERÓWNOŚCI
145
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
sage: f.factor()
2
wynik: −(3 x + 4)(x + 3)(x − 2) (x − 5)
Narysujmy teraz wykres tego wielomianu i zaznaczmy wszystkie jego pierwiastki punk-
tami w kolorze czerwonym.
points( pkt,size=15,color=’red’)
400
300
200
100
x
-4 -2 2 4 6
-100
-200
-300
146
4.5. RÓWNANIA I NIERÓWNOŚCI
wynik: x3 − 8 2 x + 4 = x2 − 4
√
itd...
sage: r_nie1.right()
wynik: x2 − 4
sage: r_nie2.left()
√
2x+ 4
wynik:
x2 − 4
Widzimy, że równanie drugie jest wymierne. Oznacza to, że powinniśmy zbadać jego
dziedzine.
˛ Przyrównajmy wiec
˛ jego mianownik do zera i rozwiażmy
˛ to równanie.
wynik: x2 − 4
sage: solve(mianownik == 0, x)
wynik: [x = (−2) , x = 2]
√
2x + 4
Otrzymujemy wiec,
˛ że dziedzina˛ wyrażenia 2 jest zbiór R \ {−2, 2}.
x −4
147
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
wynik: 2 x2 + 7 x − 11 ≤ −x2 − 2 x + 19
sage: solve(nierownosc, x)
Otrzymaliśmy wiec
˛ rozwiazanie:
˛ x ∈ h−5, 2i. Zilustrujmy to rozwiazanie
˛ na wykresie.
sage: show(f1+f2)
20
10
x
-7 -6 -5 -4 -3 -2 -1 1 2 3 4
-10
3x − 2y = 1,
2x − 5y = −3
sage: var(’x,y’)
Zilustrujmy to rozwiazanie
˛ na wykresie. Moglibyśmy wyznaczyć z każdego z równań
tego układu y i narysować wykresy powstałych funkcji liniowych przy pomocy znanej już
148
4.5. RÓWNANIA I NIERÓWNOŚCI
funkcji plot. Jednakże nie musimy tego robić, ponieważ Sage ma specjalna˛ funkcje˛ do
ilustrowania równań o nazwie implicit_plot. Zobaczmy jak sie˛ jej używa.
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")\
-1
-2
-2 -1 0 1 2
Myśle,
˛ że moge˛ pozostawić te polecenia bez komentarza. Rozwiażmy
˛ inny przykład,
troche˛ bardziej złożony.
√ √
y − 3x = 2 3,
x2 + y2 = 4.
sage: var(’x,y’)
Zwróćmy uwage,
˛ że w tym przypadku nie udałoby sie˛ zilustrować drugiego równania
funkcja˛ plot ponieważ nie można w sposób jednoznaczny wyznaczyć z tego równania
zmiennej y. Widzimy, że
√ √
y= 4 − x2 , lub y = − 4 − x2 .
149
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
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")\
-1
-2
-3
-3 -2 -1 0 1 2 3
y < x2 ,
y > x.
150
4.5. RÓWNANIA I NIERÓWNOŚCI
bordercol=’blue’, incol=’lightgray’)
x
-2 -1 1 2
-1
-2
3 − 2x >= 6 − 4x − 2 .
5 3
151
ROZDZIAŁ 4. PODSTAWOWE INFORMACJE O SAGE
Rozwiażmy
˛ teraz nastepuj
˛ ace˛ zadanie:
print(x)
4.5.1 Zadania
1. Rozwiaż
˛ równania:
(a) logx 125 = 5,
(a) x + 2 = 3x − 5,
(b) 3x (x2 − 4) = 0,
(b) x2 + 3x − 1 = 0,
√ x+2 3
3 (c) = ,
(c) 2x2 − 4x − 4 = 0, x−1 2x − 5
r
2x − 1
(d) log3 (x + 1) = 7, (d) = 3x − 1.
x+2
152
4.5. RÓWNANIA I NIERÓWNOŚCI
2. Rozwiaż
˛ nierówności i zilustruj rozwiazanie
˛ na wykresie.
x2 − 3x − 4
(b) x − 2 ≤ (x + 3)(x − 1), (b) > 0,
x+1
√ 4x − 5 3x + 2
(c) 3
4x + 6 < 2x + 8, (c) ≤ .
2x − 1 2x − 5
3. Rozwiaż
˛ układy równań i zilustruj rozwiazanie
˛ na wykresie.
5x + 2y = 4
(a) x2 + y = 5
x − 4y = −2,
(a)
√x − 4y = 0,
x − 2y + 3z = 6
x2 + 2x + y2 − 4x = 20
(b) −2x − 4y − 3z = 0 (b)
2x − y = 0.
x + y − z = 3,
4. Rozwiaż
˛ układy nierówności graficznie.
x + 2y ≤ 2
(a) 2x2 − y ≥ 6
x + 3y ≥ −2,
(a)
0.5x − y < −6,
x + 2y < 6
√
x − 2y > 3,
(b) −2x − y ≥ 0 (b)
x − 2y ≤ −3.
5x + 2y > 3,
5. Rozwiaż
˛ analitycznie układy nierówności.
x − 3x2 ≤ 5
(a) x2 − 4x ≥ 0
x + 3√x ≥ −2,
(a)
0.5x + log x < 0,
2
x2 + 2x < 6
√
x+2
x − 2x = 3
,
√
(b) −3x − x ≥ 0 (b) x−1
x2 − 2 = x − √x + 2.
5x > 3,
153