You are on page 1of 24

1

Wprowadzenie do programu
Mathematica
Zaczynajc prac z jakimkolwiek programem warto powici kilka chwil na poznanie
otoczenia, w ktrym bdziemy pracowa. W przypadku programu Mathematica jest to
bogaty zestaw palet i oferta wielopoziomowej pomocy, ktre w tej chwili moemy
spokojnie pomin i pozostawi na odpowiedniejszy moment. Dla nas w tej chwili
najwaniejszy jest pusty notatnik na ekranie. Tu bdziemy wpisywa nasze polecenia i
tu bdziemy oczekiwa wynikw. Na wielu typach ekranw domylny notatnik uywa
zbyt maych znakw aby mona byo wygodnie pracowa. Dobrym i sprawdzonym
rozwizaniem jest wyszukanie w menu FormatScreen Environment opcji Presentation.
W wyniku takiego wyboru otrzymujemy notatnik, ktry idealnie nadaje si do pracy
indywidualnej, jak rwnie do prezentacji w trakcie lekcji czy wykadu.
Aby zapozna si ze sposobem pracy w programie Mathematica wpiszemy nasze
pierwsze polecenie i wykonamy je. Zacznijmy od najbardziej naturalnego polecenia
jakie zadajemy programom komputerowym, np. aby rozwiza nam jakie proste
rwnanie, co w rodzaju x 2 5x 1 0. Polecenie rozwizania takiego rwnania
moe mie posta:
Solve[x^2 5 x 1 0, x]

Aby unikn pomyek ju na samym pocztku zauwamy kilka istotnych rzeczy.


Mathematica rozrnia pomidzy duymi i maymi literami. Polecenie Solve bdzie
zrozumiane przez program, natomiast polecenie solve ju nie. Wszystkie polecenia
zdefiniowane w programie Mathematica, nazwy funkcji i operatorw zaczynaj si od
duej litery, np. Solve, Simplify, Expand, Sin, Cos, etc. Drug istotn spraw jest
nawias przy Solve, jest to nawias kwadratowy. W kadym poleceniu, czy funkcji,
uywamy nawiasw kwadratowych do wpisania argumentw polecenia czy funkcji.
Mamy zatem Sin[x], Cos[x], Expand[(x1)^3], Simplify[Sin[x]^4Cos[x]^4],
itd. Do tych spraw bdziemy wraca jeszcze wielokrotnie. A oto kolejne istotne
elementy wystpujce w naszym poleceniu. Wyraenie x^2 oznacza x 2 , natomiast 5 x
oznacza 5 x lub po prostu 5x. W tym ostatnim przypadku nie musimy pisa symbolu
mnoenia, wystarczy spacja.
Zauwamy ponadto, e rwnoci w rwnaniach wpisujemy uywajc symbolu "".
Pojedynczy symbol "" ma nieco inne znaczenie w programie Mathematica.

Mirosaw Majewski

Teraz jestemy gotowi do wykonania naszego pierwszego polecenia. Ustawmy


wskanik myszy gdzie na obszarze linii z poleceniem Solve i jednoczenie wcinijmy
dwa klawisze [Shift][Enter]. Jeli wpisalimy nasze polecenie poprawnie, to na ekranie
powinien pojawi si wynik. Jeli byy jakie bdy w naszym poleceniu, to albo
otrzymamy komunikat o bdzie, albo nasze polecenie zostanie powtrzone bez
zmian. Poniszy obrazek pokazuje notatnik programu z wpisanymi i wykonanymi
kilkoma poleceniami.

Uwaga techniczna Polecenia w programie Mathematica czsto uywaj pewnych, z gry


ustalonych sw np. Solve, Expand, itd.. Sowa takie nazywa bdziemy nazwami procedur
lub krtko procedurami. Procedury s programami, ktre zostay napisane przez twrcw
programu Mathematica lub przez jego uytkownikw. Zazwyczaj uytkownik nie zna lub nie
chce zna zawartoci procedury. Wystarczy, e zna nazw procedury i wie jak jej uywa. W
dalszej czci tej ksiki bdziemy odrnia nazwy procedur od polece ich uywajcych.
Zauwamy przy tym, e dana procedura moe by uyta na wiele sposobw, czsto do
rnych typw obiektw matematycznych, np. procedura Solve moe by uyta do
rozwizywania rnych typw rwna.

Zanim pjdziemy dalej w poznawaniu programu, przyjrzyjmy si jeszcze przez chwil


pewnym specyficznym elementom notatnika. Kada linia kodu i wynikw
poprzedzona jest wyraeniem In[nr]: lub Out[nr]:. Linie In[nr] oznaczaj
input czyli wpisane przez nas polecenia, linie Out[nr] oznaczaj wyniki obliczone i
wywietlone przez program Mathematica. Kade polecenie, jak i wynik, ma numer
pokazujcy w jakiej kolejnoci wpisywalimy i wykonywalimy polecenia. Kolejno
ta nie koniecznie musi zgadza si z kolejnoci w jakiej polecenia wystpuj na
ekranie.
Drug widoczn na obrazku cech notatnika s nawiasy kwadratowe na prawym
obrzeu notatnika. Kady z tych nawiasw wskazuje obszar jakiego bloku elementw
2

Mathematica dla niecierpliwych


notatnika, np. blok danego polecenia, blok wyniku, blok polecenia i odpowiadajcego
mu wyniku, blok rozdziau, itd. Kady blok moe by skasowany poprzez wybranie
odpowiadajcego mu nawiasu na prawym marginesie i wcinicie klawisza [Delete].
Pomidzy dwa kolejne bloki moemy wstawi nowe polecenie lub tekst. Wystarczy w
tym celu ustawi wskanik myszy w odpowiednie miejsce, a kiedy zamieni si w
poziom kresk, klikn i zacz wpisywa nowe polecenie.
Podobnie postpujemy jeli chcemy wpisa w notatniku dowolny tekst. Ustawiamy
wskanik myszy w odpowiednim miejscu, klikamy aby rozpocz wpisywanie i
nastpnie wciskajc [Alt][7] zamieni dany blok w tekst. Jeli chcemy, aby nasz
notatnik by podobny do dokumentw jakie tworzymy w MS Word, czy innym
programie do edycji tekstw, to kolejne sekwencje klawiszy z [Alt] maj nastpujcy
efekt: tytu ([Alt][1]), podtytu ([Alt][2]), podpodtytu ([Alt][3]), sekcja ([Alt][4]),
podsekcja ([Alt][5]), podpodsekcja ([Alt][6]), tekst ([Alt][7]), kod ([Alt][8]), input
([Alt][9]). Bloki input oraz kod maj podobne wasnoci ale mog rni si wygldem
na ekranie.
Po tych bardzo wstpnych uwagach moemy przystpi do poznawania moliwoci
programu Mathematica.

1.1 Mathematica jako podrczny kalkulator


1.1.1 Arytmetyka
Na pocztek zauwamy, e Mathematica posiada bardzo bogat kolekcj funkcji do
oblicze, jak te wykonywane przez nas codziennie z uyciem kalkulatora. Mamy
zatem wszelkie funkcje arytmetyczne: , , , /, potg (wyraenie 2 3 zapisujemy jako
2^3), oraz pierwiastek (wyraenie 2 zapisujemy jako Sqrt[2]). Mamy do
dyspozycji czsto uywan w matematyce operacj silnia "!". Z pomoc tych operacji
moemy tworzy dowolnie skomplikowane wyraenia i oblicza ich wartoci, np.
(234 456)*(752 345)/((23 34)*(75 32) (78*99))

81178
3391
34!

295232799039604140847618609643520000000
Sqrt[1 2 2^2 2^3 2^4 2^5]

3 7
Bardziej skomplikowane wyraenia pierwiastkowe zapisujemy uywajc symbolu
potgi, np. 3 1 2 2 2 2 3 2 4 2 5 zapiszemy jako
3

Mirosaw Majewski
(1 2 2^2 2^3 2^4 2^5)^(1/3)

3 2/3 3 7
To samo wyraenie moe by zapisane z uyciem polecenia Power, tak jak poniej:
Power[1 2 2^2 2^3 2^4 2^5, 1/3]

3 2/3 3 7
Zauwamy przy tym, e wyraenie do obliczenia moe by podane w postaci liniowej,
jak powyej, lub w postaci dwuwymiarowego wyraenia jakie zazwyczaj widzimy w
podrcznikach matematyki, np.
234 456 752 345
23 34 75 32 78 99
Pisanie wyrae w tej postaci jest moliwe za pomoc odpowiednich palet symboli.
Moemy je znale w menu Palettes i dalej np. Classroom Assistant, lub Basic Math
Assistant. Poniewa na dalszych stronach tego tekstu bdziemy uywa licznych
polece korzystajcych gwnie z zapisu liniowego, opis palet i ich wykorzystania
zostawimy sobie na inn okazj.
Wreszcie zauwamy do istotn cech programu Mathematica. Jak kady inny CAS,
Mathematica stara si podawa wyniki w postaci symbolicznej, a wic 23 2
zamiast 4. 941 1, 1 zamiast 0. 1, itd. Jeli zatem chcemy aby program podawa nam
10
wyniki w postaci numerycznej, to musimy go do tego w jaki sposb zachci.
Sposobw zachty jest conajmniej trzy.
Moemy zapisa jedn z liczb w postaci dziesitnej, np. zamiast 234 napisa 234.0, to
wystarczy aby Mathematica podaa cay wynik w postaci dziesitnej.
(234.0 456)*(752 345)/((23 34)*(75 32) (78*99))

Moemy uy polecenia N[wyraenie]


N[(234 456)*(752 345)/((23 34)*(75 32) (78*99))]

lub
(234 456)*(752 345)/((23 34)*(75 32) (78*99)) //N

Kade z tych polece wyprodukuje wynik 23. 9393. Na szczegln jednak uwag
zasuguje polecenie rodkowe. Tu moemy zada dodatkowej precyzji wyniku, np.
wynik z dokadnoci do 50 miejsc po przecinku otrzymamy przez uycie
dodatkowego parametru.
N[(234 456)*(752 345)/((23 34)*(75 32) (78*99)), 50]

23. 939250958419345325862577410793276319669713948688
Ostatnie z trzech powyej podanych polece zostao uyte w tzw. postaci postfix, czyli
4

Mathematica dla niecierpliwych


operator podany jest na kocu polecenia, tu //N . Z pewnych powodw jest to bardzo
wygodny sposb wykonywania pewnych operacji nie tylko arytmetycznych. Do tego
problemu wrcimy przy innej okazji.
Na zakoczenie tego krtkiego rozdziau powieconego arytmetyce warto wspomnie
o dwu najczciej uywanych w matematyce staych: oraz e. Zapisujemy je jako Pi
oraz E. Mamy zatem:
N[Pi, 50]

3. 1415926535897932384626433832795028841971693993751
oraz
N[E, 50]

2. 7182818284590452353602874713526624977572470937000

wiczenia
1. Oblicz dziesitn warto uamka 123/456 z dokadnoci 10, 100, oraz 1000
miejsc po przecinku.
2. Oblicz oraz e z dokadnoci 150 miejsc po przecinku.

1.1.2 Funkcje trygonometryczne, logarytmiczne


W programie Mathematica mamy do dyspozycji wszystkie znane nam funkcje
trygonometryczne, logarytmiczne i potgowe. S tu midzy innymi funkcje
wymienione w poniej zaczonej tabeli.
Funkcja Zapis w programie Mathematica i przykad uycia
sin x

Sin[3 Pi/15]

cos x

Cos[3 Pi/15]

tan x

Tan[3 Pi/15]

cotx

Cot[3 Pi/15]

arcsin x

ArcSin[1/2]

arccos x

ArcCos[1/2]

arctan x

ArcTan[Sqrt[3]]

arccot x

ArcCot[Sqrt[3]]

Niezmiernie wane jest zauwaenie, e funkcje trygonometryczne uywaj


argumentw wyraonych w radianach, a nie stopniach.

Mirosaw Majewski

Mamy zatem dla przykadu:


Sin[1] // N

0.841471
Sin[Pi]

0
Sin[Pi/2]

1
Sin[Pi/4]

1
2
Podobnie jest w drug stron. Funkcje odwrotne do funkcji trygonometrycznych
podaj wyniki w postaci radianw, np.
ArcSin[1/Sqrt[2]]

ArcTan[Sqrt[3]]

W przypadku, gdy zamiast radianw mamy do czynienia ze stopniami, to prostym


sposobem moemy spowodowa aby Mathematica rozumiaa nasze potrzeby. Dla
przykadu obliczenie sin 15 moliwe jest za pomoc polecenia:
Sin[15 *Pi/180]

3 1
2 2
Drug wan grup funkcji w matematyce szkolnej, czy uniwersyteckiej, s funkcje
wykadnicze i logarytmiczne.
Mamy zatem:
Funkcja Zapis w programie Mathematica i przykad uycia

ln x

Log[E*E]

log 10 x

Log[10,10234.0]

log 2 x

Log[2,15.]

log a x

Log[a,x]

ex

Exp[x] lub E^x

an

Power[a,n]

Mathematica dla niecierpliwych

Oto kilka przykadw pokazujcych jak te funkcje mog by stosowane.


Log[E*E]

2
Log[10, 10234]

log10234
log10
Zauwamy, e jak zawsze, Mathematica stara si poda wynik w postaci symbolicznej.
Jeli jednak zaley nam na wyniku w postaci liczby dziesitnej, to wystarczy
zasugerowa t potrzeb w znany nam ju sposb.
Log[10, 10234.]

4.01005
Log[2, 15.]

3.90689
Log[a, b]

logb
loga
Exp[x]

ex
Power[a, b]

ab
Tu warto wspomnie o interesujcej wasnoci programu Mathematica jeli
zamiast pojedynczych argumentw bdziemy podawa argumenty w postaci list, to
wynik rwnie otrzymamy w postaci listy, w ktrej kady element zosta poddany
odpowiedniej operacji. Dla przykadu podniesienie do 3 potgi wszystkich wyrazw
pewnego cigu moe by wykonane jednym poleceniem,
Power[{a, b, c}, n]

a n , b n , c n
lub tak, gdy chcemy utworzy cig potg pewnego wyraenia
Power[a, {1, 2, 3, 4, 5}]

a, a 2 , a 3 , a 4 , a 5
lub nawet tak,
Power[{a, b, c, d, e}, {1, 2, 3, 4, 5}]

a, b 2 , c 3 , d 4 , e 5
W tym ostatnim przypadku musimy pamita, aby oba cigi miay t sam liczb
elementw.
7

Mirosaw Majewski

W podobny sposb zachowuj si inne operacje i funkcje w programie Mathematica


jeli zastosujemy je do cigw wyrae. Dla przykadu mamy:
{a, b, c} {d, e, f}

a d, b e, c f
{a, b, c}/{d, e, f}

a , be , c
d
f
Log[{a, b, c}]

loga, logb, logc


Sin[{a, b, c}]

sina, sinb, sinc


Do operacji na cigach wrcimy w innym odpowiedniejszym momencie.

1.2 Rozwizujemy rwnania


Drug wan operacj, jaka nie zawsze wystpuje w kalkulatorach, jest
rozwizywanie rwna lub nawet ukadw rwna. Rozwizywanie rwna jest
bardzo bogatym tematem i w tym rozdziale ograniczymy si tylko do kilku
elementarnych przykadw.
Zacznijmy zatem od tego, e kade rwnanie powinno by podane w postaci:
lewa strona prawa strona
Piszemy zatem x^210, a nie x^210. Dalej, do rozwizania wikszoci rwna,
wystarczy nam polecenie Solve z drobnymi modyfikacjami. Oto kilka prostych
przykadw.
Solve[x^2 3 x 1 0, x]

1
2

3 5 , x

1
2

3 5

Solve[x^3 3 x 1 x^2 2 x 3, x]

x 2, x 3 1 , x 1 2/3
W podobny sposb rozwizujemy ukady rwna. Zauwamy, e to bardzo
przypomina to co zobaczylimy przy okazji funkcji Power. Tu rwnie grupujemy
rwnania, oraz zmienne dla ktrych chcemy otrzyma rozwizania, uywajc
nawiasw klamrowych.
Solve[{x y 1, x 2 y 2}, {x, y}]

4
3

, y 13

A oto nieco bardziej skomplikowany przykad z algebry liniowej:


8

Mathematica dla niecierpliwych


Solve[{x 2 y z 2, x y z 4, 2 x y z 5},{x, y, z}]

x 3, y 0, z 1
Funkcja Solve moe mie wiele interesujcych zastosowa. Dla przykadu, punkty
przecicia okrgu x 2 y 2 1 z prost y 12 x 12 mona otrzyma za pomoc
prostego polecenia,
Solve[{x^2y^21, yx/21/2}, {x, y}]

x 1, y 0, x

3
5

,y

4
5

Na zakoczenie tego bardzo krtkiego wstpu do rozwizywania rwna z


programem Mathematica zauwamy pewn wan rzecz. W kadym z powyszych
przypadkw rozwizania maj posta x a. Jest to bardzo dogodne w sytuacji
pojedynczych przykadw, gdzie od razu widzimy jakie wartoci otrzymujemy dla
poszczeglnych niewiadomych. Jeli jednak chcemy te wyniki wykorzysta w dalszych
obliczeniach to wygodniejsze byoby otrzymanie ich w postaci listy, gdzie kady
element jest wartoci odpowiedniego rozwizania. Inaczej mwic chcemy aby
wykonanie polecenia
Solve[{x2*yz2, xyz4, 2*xyz5},{x, y, z}]

dao nam wynik 3, 0, 1. To jednak wymaga zapoznania si ze zmiennymi i funkcjami w


programie Mathematica.

wiczenia
Rozwi nastpujce rwnania lub ukady rwna w programie Mathematica.
1.
2.
3.
4.
5.
6.
7.

x 2 49 0
x2 x 6 0
20x 2 31x 9 0
x 2 3x 1 0
x 2 6x 1 0
x 2 7x 9 0
x 2 y 2 4xy 1 0, rozwi ze wzgldu na zmienn x, a nastpnie jeszcze raz
ze wzgldu na y.
8. x 3 x 2 x 1 0
9. x 2y 7 i x 2 4y 2 37
10. x y 1 i 16x 2 y 2 65
11. y x a i 2x 2 xy y 2 8

Mirosaw Majewski

1.3 Zmienne
Kademu obiektowi w programie Mathematica moemy przyporzdkowa jak
zmienn, lub inaczej mwic moemy mu nada nazw. W takim przypadku zamiast
za kadym razem wpisywa cay obiekt, np. system rwna, atwiej bdzie posuy
si jego nazw. Oto jak to wyglda w przypadku rwna.
Nasz ukad rwna otrzymuje nazw rwnania. Zauwamy, e nazwa moe zawiera
specyficzne polskie litery. Niestety system w ktrym edytuj ten tekst nie pozwala mi
na to.
rownania {x y 1, x 2 y 2}

x y 1, x 2y 2
Teraz nazywamy nasze zmienne i dokadamy rednik na kocu polecenia, aby
Mathematica nie wywietlaa niepotrzebnego na ekranie wyniku.
zmienne {x, y};

Po tych nazwaniach moemy rozwiza system rwna bez wypisywania od nowa


rwna i zmiennych.
rozwiazania Solve[rownania, zmienne]

4
3

, y 13

Otrzymany wynik jest zbiorem/list zawierajcym list z dwu regu x


y 13 . Naszym zadaniem bdzie wyuskanie z tego liczb 43 oraz 13 .

4
3

oraz

W programie Mathematica mamy operacj podstawiania. Dziaa ona w nastpujcy


sposb, polecenie
f(x)/. xa

zamieni w f(x) wszystkie wystpienia zmiennej x na a. Moemy wic zastosowa je


do pojedynczej zmiennej, pary zmiennych, lub innej struktury zwierajcej zmienn x.
Oto jak to wyglda w naszym przypadku,
r1 x /. rozwiazania
4
3

r2 y/. rozwiazania

13
A nastpnie odrzucamy zbdne nawiasy klamrowe,
r1 r1[[1]]
4
3

10

Mathematica dla niecierpliwych


r2 r2[[1]]

13
Teraz moemy ju bez problemu operowa naszymi rozwizaniami dalej, np.
r1r2
5
3

Polecenia z podwjnym nawiasem kwadratowym mog si wydawa dziwne, ale w


gruncie rzeczy atwe do wyjanienia. Symbol [1] oznacza indeks czyli pozycj
elementu na licie, natomiast zewntrzny nawias [ ] jest niczym innym jak nawiasem
wewntrz, ktrego wpisujemy argument [1]. Mamy tu wic jakby operacj listy lub
zbioru na argumentach. Oto nieco szerszy przykad pokazujcy jak to dziaa.
Tworzymy list A, a nastpnie wybieramy z niej jeden z elementw, w naszym
przykadzie jest to element czwarty.
A {1, 2, 3, 4, 5}^2 11

12, 15, 20, 27, 36


A[[4]]

27
Przyjrzyjmy si jeszcze przez moment jak dziaa operacja podstawiania w nieco
bardziej zoonej sytuacji. Polecenie
rozw Solve[{x^2 y^2 1, y x/2 1/2}, {x, y}]

daje nam nieco bardziej skomplikowan struktur


x 1, y 0, x

3
5

,y

4
5

Zamy, e chcemy jednoczenie wydoby z niej wszystkie rozwizania. W tym celu


uywamy nowej zmiennej u i jej przypisujemy otrzymane rozwizania.
u {x, y} /. rozw

1 0
3
5

4
5

To co otrzymalimy jest ju macierz, ale i w jej przypadku mamy dostp do kadego


elementu,
x1 u[[1, 1]]

1
x2 u[[2, 1]]
3
5

y1 u[[1, 2]]

0
11

Mirosaw Majewski
y2 u[[2, 2]]
4
5

Teraz naley tylko zapamita, e pierwszy numer w parze [n,m] oznacza wiersz
macierzy, a drugi kolumn, w ktrej znajduje si dane rozwizanie. Kolumny
zazwyczaj odpowiadaj kolejnym zmiennym x, y, itd., numery wierszy s numerami
poszczeglnych par (trjek, itd.) rozwiza.

wiczenia
Wpisz deklaracje nastpujcych wyrae
1. pierwiastek

x 1

2. drugiPierwiastek

2
1x

1
x

3. wielomian 3x 3 2x 2 x 1
1

4. uamki b 1 1
b a1 1
a x
c
x
5. duoPierwiastkw

1
b

1
a 1x

a a a a x

1.4 Funkcje
Funkcje i relacje s istot matematyki. Uywamy ich w kadej dyscyplinie
matematycznej. Moemy je rwnie definiowa w programie Mathematica. Oto kilka
przykadw
Tak definiujemy funkcje jednej zmiennej
f[x_] : x^2 3 x 2
g[x_] : 2 Sin[3 x] 3 Cos[5 x]

A tak ich uywamy w naszych dalszych obliczeniach,


f[a 1]

a 1 2 3a 1 2
g[Pi/4]

3
2

Zwrmy uwag na kilka istotnych rzeczy w tych deklaracjach. W naszych


przykadach po lewej stronie mamy litery f lub g. S to nazwy naszych funkcji.
Moemy mie tu dowolne inne nazwy. Wybierajc nazwy dla naszych funkcji, lub
zmiennych, warto przestrzega pewnych konwencji. Poniewa wszystkie funkcje w
12

Mathematica dla niecierpliwych


programie Mathematica zaczynaj si od duej litery to, dla odrnienia, powinnimy
zaczyna nasze funkcje od maych liter. Zazwyczaj, jeli nie prowadzi to do
niepotrzebnych komplikacji, uywamy nazw bardzo krtkich. Jeli z jakiego powodu
nazwa funkcji musi by bardziej opisowa wwczas uywamy jednego sowa lub kilku
poczonych w odpowiedni sposb, np. poleDwuOkregow. Jak widzimy nazwa zaczyna
si od maej litery, ale kade kolejne sowo ju od duej.
W deklaracji funkcji zmienna, lub zmienne, po lewej stronie maj znak podkrelenia.
S to zmienne, za ktre moemy podstawi dowolne wyraenia. Wreszcie symbol :
powoduje, e wyraenie po prawej stronie pozostanie bez wartoci w momencie
deklaracji, a jego warto za kadym razem zostanie wyliczona od nowa w zalenoci
od wartoci jakie podstawimy za zmienne.
Oto kilka innych przykadw deklaracji funkcji i ich uycia,
h[x_, y_] : 3 x^5 2 x^3
h[11, 23]

485815
s[x_, y_, n_] : Expand[(x y)^n]
s[a, b, 5]

a 5 5a 4 b 10a 3 b 2 10a 2 b 3 5ab 4 b 5


Podany tu sposb deklaracji funkcji pozwala rwnie na atwe deklaracje funkcji
rekurencyjnych. Oto jak moemy szybko utworzy sobie deklaracj funkcji
rekurencyjnej produkujcej wyrazy cigu Fibonacciego.
Zaczynamy od deklaracji dwu pierwszych wyrazw,
fibo[1] 1;
fibo[2] 1;

i dalej deklaracja ju caej funkcji,


fibo[n_] : fibo[n 1] fibo[n 2]

Teraz moemy wyliczy dowolny wyraz cigu Fibonacciego.


fibo[17]

1597
Tak zdefiniowana funkcja rekurencyjna nie jest zbyt szybka i ma ograniczenia
odnonie liczby krokw rekurencji, dlatego powinna by stosowana raczej dla maych
wartoci argumentu. Bardziej efektywna metoda deklaracji funkcji rekurencyjnych
pojawi si przy innej okazji.
Na zakoczenie omawiania deklaracji funkcji warto wspomnie jak mona szybko
utworzy pewn liczb wyrazw cigu majc jego wzr. Dla przykadu pierwsze 15
wyrazw cigu Fibonacciego utworzymy za pomoc nastpujcego polecenia.
13

Mirosaw Majewski
Table[fibo[n],{n, 1, 15}]

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610

1.4.1 Problemy z deklaracjami


Notatnik, w ktrym pracujemy przez duszy czas, moe w pewnym momencie zacz
sprawia nam kopoty. S to najczciej problemy wynikajce z istnienia, ju
niepotrzebnych, starych deklaracji. Oto przykad, pokazujcy jak ten mechanizm
dziaa. Deklarujemy dwie zmienne x i y przypisujc im odpowiednio wartoci 1 i 2.
x1;
y2;

W tej sytuacji wykonanie polecenia, w ktrym wystpuj x i y zastpuje te zmienne


ich aktualnymi wartociami, np.
xy

3
Dalej moemy zadeklarowa funkcj uywajc symboli x i y. Tu jeszcze nic zego si
nie dzieje.
f[x_] : x^2 3 x 1

Natomiast jeli w tym momencie zechcemy sprawdzi jak nasza funkcja wyglda, lub
uy jej do zbudowania bardziej zoonej funkcji, to ju zaczyna dziaa istnienie
deklaracji dla x.
f[x] 2 f[x]^2

21
Mog nas np. spotka takie niespodzianki jak ta poniej,
Solve[f[x] 0, x]

General::ivar: 1 is not a valid variable


Solve[False,1]
Otrzymalimy tutaj komunikat informujcy nas o bdzie oraz wynik, ktry nie ma dla
nas ju wikszego znaczenia. Aby unikn takich niespodzianek warto od czasu do
czasu zlikwidowa stare deklaracje i uwolni zmienne, ktrych najczciej uywamy.
Polecenie Clear[x] uwolni zmienn x od jej aktualnej wartoci. Polecenie
Clear[x,y] zrobi to samo ale dla obu zmiennych. Mamy zatem,
Clear[x]

i dalej ju wszystko dziaa jak tego oczekujemy.


Solve[f[x] 0, x]

14

1
2

3 13 , x

1
2

13 3

Mathematica dla niecierpliwych

wiczenia
Napisz deklaracje poniej wymienionych funkcji, a nastpnie wylicz ich wartoci dla
x 2 oraz x 3 .
1. fx

1 2x 1
1
2. gx
2
3x 3x 5
3. hx x 4 2x 2 4
1
1

4. Frx

5. Rtsx

x 2x 3x 4x x

1
x

1
1 1x

1.5 Operacje na wyraeniach matematycznych


Jednym z najbardziej podstawowych elementw pracy w matematyce jest
przeksztacanie wyrae algebraicznych i trygonometrycznych. Mamy tu do czynienia
z rozkadaniem i zwijaniem wielomianw, upraszczaniem funkcji wymiernych i
wieloma innymi operacjami zaliczanymi czsto do matematyki elementarnej. W tym
krtkim rozdziale omwimy pewne podstawowe procedury wystpujce w programie
Mathematica.
Na pocztek zadeklarujmy sobie wielomian A, a nastpnie zobaczmy co Mathematica
moe z nim zrobi.
A (x 3)^2*(x 1)^3*(x 5)

x 5x 3 2 x 1 3
Teraz moemy rozwin nasz wielomian,
B Expand[A]

x 6 14x 5 75x 4 196x 3 263x 2 174x 45


Otrzymany wynik moemy zwin do postaci wyjciowej,
Factor[B]

x 5x 3 2 x 1 3
Mathematica uproci wikszo elementarnych wyrae matematycznych,
Simplify[Sin[2*x]^2 Cos[2*x]^2]

15

Mirosaw Majewski
Simplify[Sin[3*x] * Cos[3*x]]

1 sin6x
2
Simplify[Exp[x]*Exp[3*x]Exp[x]*Exp[2*x]]

e 3x e x 1
Mathematica moe rwnie uproci dowolne wyraenie korzystajc z podanych jej
zaoe. Tu, dla przykadu, pokazujemy jak uproci wyraenie uwzgldniajc znak
zmiennej wystpujcej w wyraeniu.
Simplify[Sqrt[x*(Sqrt[x] x)^2]]

xx x 3
To samo polecenie, ale z dodatkowym zaoeniem x 0 daje zupenie inny wynik.
Simplify[Sqrt[x*(Sqrt[x] x)^2], x 0]

x 3/2 x
Na zakoczenie zajmijmy si jeszcze przez chwil wielomianami. Oto wielomian dwu
zmiennych Px, y xy axy x 2 y axy 2 x ax. Wielomian ten moe by zwinity
wzgldem dowolnej zmiennej w nim wystpujcej lub wzgldem wszystkich
zmiennych. Oto jak to wyglda w praktyce.
P x*y a*x*y x^2*y a*x*y^2 x a*x

axy 2 axy ax x 2 y xy x
Teraz w zalenoci od potrzeb uywamy procedury Collect z odpowiednim
parametrem.
Collect[P, x]

xay 2 ay a y 1 x 2 y
Collect[P, y]

yax x 2 x axy 2 ax x
Collect[P, {x, y}]

xay 2 a 1y a 1 x 2 y
W rachunku cakowym jak i w algebrze przeksztacamy czasem wyraenia wymierne
do postaci tzw. uamkw prostych, czyli sumy wyrae wymiernych, w ktrych
mianownik jest wielomianem nierozkadalnym, co najwyej stopnia drugiego, a
licznik jest wielomianem stopnia zerowego, lub co najwyej pierwszego. W programie
Mathematica rozkadanie wyrae wymiernych na uamki proste wykonujemy za
pomoc procedury Apart. Zacznijmy, zatem od zadeklarowania wyraenia
wymiernego a nastpnie zobaczmy, co z niego otrzymamy za pomoc procedury
Apart.

16

Mathematica dla niecierpliwych


w x^2/(x^3 3*x 2)

x2
x 3x 2
3

Apart[w]

5
4
1

9x 2
9x 1
3x 1 2

wiczenia
1. Rozwi nastpujce wyraenia:
a. 2x 3 2
b. 4x 2 1 2
c. x 1 2 x 3 4
d. x 2x 3 5 x 4 2
e. 1 x n , dla n 2, 3, 4, 5.
2. Rozwi nastpujce wyraenia z funkcjami trygonometrycznymi:
a. sin x cos x 3
1 sin x 5
b.
cos x
c. tanx 1
d. cotx 2 1
3. Zapisz w postaci iloczynu dwumianw:
a. 2x 2 3x 3
b. 4x 4 5x 2 1
c. 9x 2 21x 10
d. 6x 2 4x 4x 3 x 4 1
1x 1 1
1x 1
1
e.
2
1y 2
2
y1 2
4. Upro nastpujce wyraenia:
a. cos x sin y cos y sin x
b. 5x 10x 2 10x 3 5x 4 x 5 1
1x 1 1
1x 1
1
c.
2
1y 2
2
y1 2
5
1 3x
d.
1 3x3 9x
2 3
e.
2 3
5. Rozwi na uamki czciowe:
x7
a.
x2 x 6
17

Mirosaw Majewski
2
6
b. 50x3 20x
x 2x 2 x

1.6 Elementy analizy matematycznej


Rniczkowanie i cakowanie s podstawowymi czynnociami w analizie
matematycznej. Mamy tam jeszcze par innych czynnoci, o ktrych wspomnimy
dalej. Na pocztek zacznijmy od zdefiniowania wyraenia wymiernego z jedn
zmienn x.
w x^2/(x^3 x 1)

x2
x x1
3

Teraz wyliczmy jego pierwsz pochodn,


D[w, x]

x 2 3x 2 1
2x

2
x3 x 1
x 3 x 1
W podobny sposb moemy wyliczy drug pochodn i kolejne,
D[w,x,x]

2x 2 3x 2 1 2
4x3x 2 1
6x 3
2

x3 x 1
x 3 x 1 2
x 3 x 1 2
x 3 x 1 3

Oto inny przykad gdzie wyliczamy trzeci pochodn wyraenia trygonometrycznego.


h Sin[x]/(x 1)^2

sinx
x 1 2
D[h, x, x, x]

6 sinx
24 sinx
cosx
18 cosx

5
3
2
x 1
x 1
x 1
x 1 4
Pochodne czstkowe funkcji wielu zmiennych otrzymujemy w identyczny sposb jak
pochodne funkcji jednej zmiennej.
u (Sin[x] Cos[y])*(Cos[x] Sin[y])

sinx cosycosx siny


Teraz moemy wyliczy drug pochodna mieszan.
D[u, x, y]

sinx siny cosx cosy


Mathematica rwnie atwo wylicza caki zarwno oznaczone, jak i te nieoznaczone.

18

Mathematica dla niecierpliwych


Integrate[x^2 3*x 1, x]

x 3 3x 2 x
3
2
Dotychczas przeprowadzalimy operacje na wyraeniach matematycznych, te same
operacje moemy wykonywa na wczeniej zadeklarowanych funkcjach. Jest tu kilka
istotnych rnic, o ktrych warto pamita.
Zacznijmy zatem od zadeklarowania funkcji.
f[x_] : 1/(1 x^3)

No, a teraz, skoro ju zdefiniowalimy sobie funkcj, to moemy wyliczy jej pochodn
i cak. Mamy zatem pochodn,
D[f[x], x]

3x 2
x 1 2
3

cak nieoznaczon,
Integrate[f[x], x]

1 logx 2 x 1 1 logx 1
6
3

tan 1

2x1
3

cak oznaczon w granicach od x 0 do x 5,


Integrate[f[x], {x, 0, 5}]

1 3 3 log 12 6 3 tan 1 3 3
7
18
oraz cak oznaczon w granicach od zera do nieskoczonoci.
Integrate[f[x], {x, 0, Infinity}]

2
3 3
Inn czynnoci na lekcjach rachunku rniczkowego jest znajdowanie granic funkcji i
cigw. Na pocztek zajmijmy si granicami funkcji. Zbadajmy granice funkcji znanej z
poprzedniego przykadu, w dwu punktach, dla x 0, oraz dla x 1, gdzie wystpuje
niecigo drugiego rodzaju.
f[x_] : 1/(1 x^3)

Dla x 0 dostajemy wynik bez wikszego problemu.


Limit[f[x], x 0]

1
Oto granica tej funkcji w punkcie x 1 z lewej strony,
Limit[f[x], x 1, Direction 1]

19

Mirosaw Majewski

a nastpnie granica tej samej funkcji z prawej strony


Limit[f[x], x 1, Direction 1]

Zauwamy jak okrela si tu granice lewostronne i prawostronne. Kierunek okrela


si tu od zera do punktu x 1 lub x 1. Czyli granica lewostronna oznaczona jest
parametrem Direction 1, natomiast prawostronna parametrem Direction
1.
Podobnie wyliczamy granice cigw. Dla przykadu, granica cigu e n 1 1/n n dla n
zmierzajcego do nieskoczonoci ma posta,
e[n_] : (1 1/n)^n
Limit[e[n], n Infinity]

e
Zauwamy, e moglimy zadeklarowa nasz cig uywajc maej litery e. To gwnie
dlatego, e Mathematica uywa duych liter do oznaczania swoich staych i procedur.

wiczenia
Napisz polecenia deklarujce, a nastpnie obliczajce, pochodne i caki podanych
poniej funkcji.
1.
2.
3.
4.

x3 x2 x 1
sin x cos x
tan x cot x
2
e 1xx
1x
5. y
1 x x2
y
y
y
y

1.7 Szukamy pomocy


Nazwy, a szczeglnie mao znane nazwy polece jzyka programu komputerowego,
do czsto wylatuj nam z gowy. Tak jest rwnie w przypadku nazw procedur jak
rwnie skadni polece w programie Mathematica. Warto zatem pozna par
sposobw jak ustrzec si bdw.
Na pocztek przypomnijmy sobie pewne, ju wczeniej poznane, rzeczy. Wikszo z
nich jest niezmiernie wana dla pocztkujcego uytkownika programu Mathematica.

1.7.1 Due i mae litery


Wszystkie nazwy procedur i tzw. sw kluczowych w programie Mathematica
zaczynaj si od duej litery. Nazwy skadajce si z kilku sw pisane s w taki
20

Mathematica dla niecierpliwych


sposb, e poszczeglne sowa pisane s razem i kade z zaczyna si z duej litery, np.
PlotStyle, ColorData, ControlType, itd. Jeli deklarujemy nasze wasne nazwy
zmiennych czy procedur to powinnimy zaczyna je od maej litery aby odrni je od
tych ju istniejcych w programie.

1.7.2 Nawiasy
Mathematica uywa rnych rodzajw nawiasw do zupenie rnych celw.
Wpisanie zego nawiasu powoduje, e program nie rozumie naszego polecenia
poprawnie i nawet jeli otrzymamy wynik to bdzie on zy.
1. Nawiasy kwadratowe uywane s do wpisywania argumentw polece czy
funkcji, np. Sin[x], Solve[x^210,x]. Uywamy ich rwnie do
oznaczania indeksw wyrazw w cigach lub bardziej zoonych strukturach.
2. Nawiasy klamrowe uywane s do tworzenia list, np. {x,0,1}, {n, 1, 15},
itd.
3. Nawiasy okrge uywane s do grupowania wyrae we wzorach, np.
(1x)^2, (Sin[x]/(Cos[x]1))^2
4. Nawiasy okrge z gwiazdk s ignorowane przez program, a zatem mog
suy jako komentarz, np. (* A ten tekst nic nie znaczy *). Taki
fragment wpisany na obszarze dowolnego polecenia Mathematica zignoruje.
5. /. jest uywany w celu zastosowania okrelonych regu do wyraenia po
prawej stronie, np. x^2 /. x5 podstawi warto 5 w wyraeniu x^2.
Zauwamy przy tym, e to podstawienie jest tymczasowe. Jeli za chwil
zechcemy uy zmiennej x to okae si, e ma ona cigle swoj dotychczasow
warto.
6. // pozwala otrzyma warto wyraenia po lewej stronie przeksztaconego
funkcj uyt po prawej stronie, np. polecenie x^2 1 0 //Solve
spowoduje rozwizanie rwnania po lewej stronie.

1.7.3 Rwno nie jest rwna rwnoci


Podobnie jak w przypadku nawiasw, rwnoci mog by pisane na kilka sposobw i
za kadym razem bd speniay inn rol.
1. Znak rwnoci "" uywany jest do przypisania danej nazwie wartoci, rwnie
wyraenia ze zmienn, np. A1, Bx^25. Wyraenie po lewej stronie jest tylko
etykiet wyraenia po prawej stronie. Nie jest ono funkcj w adnym
przypadku. Dlatego nie moemy takiego wyraenia uy w postaci A[x] czy
A[2.5].
2. Znak podwjnej rwnoci uywany jest jako symbol relacji rwnoci, np.
x^21x. Uywamy go miedzy innymi do konstruowania rwna.
21

Mirosaw Majewski
3. Znak ":" uywany jest do deklarowania funkcji, np. f[x_] : 1/(1 x^3).
W takim przypadku wyraenie po lewej stronie jest nazw funkcji, zmienna z
podkreleniem jest zmienn, za ktr moemy podstawia wartoci, wyraenie
po prawej stronie jest definicj naszej funkcji.

1.7.4 Kolor ma te jakie znaczenie


Piszc nawet proste polecenia w programie Mathematica zauwaylimy, e do
czsto zmienia si kolor poszczeglnych elementw polecenia.
1. Niebieski kolor oznacza zawsze wyraenia nieznane w danym momencie w
programie. Dla przykadu wpisujc zmienn x lub sowo solve Mathematica
wywietli je na niebiesko. Dlatego, jeli co wywietla si nam na niebiesko
powinnimy zastanowi si, czy jest tam bd i jaki. Zmienne wolne, czyli takie,
ktre nie maj przypisanej wartoci powinny by zatem niebieskie.
2. Kolor czarny zawsze oznacza wyraenia znane programowi Mathematica, w
tym zmienne wywietlane na czarno s zmiennymi z przypisanymi ju
wczeniej wartociami. Dla przykadu podczas wpisywania sowa Solve
Mathematica wywietla je na niebiesko a do momentu, gdy wpiszemy ostatni
liter. Po wpisaniu ostatniej litery sowo Solve bdzie ju wywietlone na
czarno. Inny przykad, zmienna x po wykonaniu polecenia przypisujcego jej
jak warto, np. x2 bdzie wywietlona na czarno. Warto przypisan
zmiennej moemy usun za pomoc polecenia Clear, np. Clear[x],
Clear[x,y], itd.
3. Nawiasy bez pary s wywietlane kolorem zblionym do rowego.
Natychmiast po zamkniciu danej pary nawiasw ich kolor zmieni si na
czarny.

1.7.5 Pomoc w programie


Mathematica posiada do bogaty system pomocy. Wiele rzeczy znajdziemy w menu
Help. Tu najczciej przeszukiwan opcj jest tzw. Function Navigator. Tu znajdziemy
list wszystkich procedur programu Mathematica pogrupowanych tematycznie. Po
wybraniu tematu, a nastpnie odpowiedniej procedury dostaniemy szczegow
informacj o procedurze oraz wiele interesujcych przykadw zastosowania
procedury. Kady z tych przykadw moe by skopiowany do naszego notatnika i
uyty do naszych eksperymentw. Rysunek 1.1 pokazuje pomoc dla procedury Plot.

22

Mathematica dla niecierpliwych

Rys 1.1 Nawigator funkcji w programie Mathematica


W wielu przypadkach, gdy skadnia naszych polece odbiega od poprawnej,
Mathematica wywietla komunikat informujcy co jest le w naszym poleceniu.
Komunikat zakoczony jest znakiem , ktry jest odnonikiem do odpowiedniego
miejsca w pomocy. Dla przykadu polecenie
Plot[x^2, {}]

spowoduje wywietlenie komunikatu


Plot::pllim: Range specification {} is not of the form {x, xmin, xmax}.
Wcinicie skieruje nas do odpowiedniej strony w pomocy, gdzie jest
dokadniejsza informacja dotyczca naszego problemu.
Wreszcie na koniec warto wspomnie o uytecznym skrcie do systemu pomocy.
Przypumy, e znamy nazw procedury, lub si jej domylamy, ktrej chcemy uy,
ale nie pamitamy dokadnie skadni polecenia dla tej procedury. W takim przypadku
wpisujemy ? i nazw procedury lub sowa kluczowego. Dla przykadu, zamy e
chcemy otrzyma wykres funkcji cos x, cos x 2 , cos x 3 oraz cos x 4 i domylamy si, e
procedura wykonujca ten wykres moe mie nazw Plot lub co w tym rodzaju.
Wpisujc polecenie ?Plot otrzymamy szczegow informacj jak napisa polecenie
wykonujce wykres naszych funkcji. Tu, na stronie pomocy zauwaymy interesujcy
wykres, na ktrym obszar pod funkcj jest wypeniony kolorem szarym i odbywa si
to za spraw parametru Filling. Kolejne polecenie ?Filling pokae nam
dokadniej jak zastosowa ten parametr i dalej ju moemy samodzielnie napisa
polecenie wykonujce nasz wykres.
23

Mirosaw Majewski
Plot[{Cot[x],Cot[x^2],Cot[x^3],Cot[x^4]}, {x,Pi,Pi},Filling Axis]

No i w ten sposb doszlimy do wykresw w programie Mathematica, a to ju jest


tematem nastpnego rozdziau.

wiczenia
Znajd w pomocy programu Mathematica informacj o poniej wymienionych
procedurach. Napisz kilka polece ilustrujcych dziaanie tych procedur.
TrigExpand
PowerExpand
TrigReduce

24

You might also like