Mathematica niecierpliwych



Podobne dokumenty
Wprowadzenie do programu Mathematica

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Obliczenia Symboliczne

Wykorzystanie programów komputerowych do obliczeń matematycznych

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

FUNKCJA LINIOWA - WYKRES

Obliczenia iteracyjne

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Funkcje Andrzej Musielak 1. Funkcje

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Tworzenie prezentacji w MS PowerPoint

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Zaznaczanie komórek. Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

Następnie przypominamy (dla części studentów wprowadzamy) podstawowe pojęcia opisujące funkcje na poziomie rysunków i objaśnień.

Równania liniowe i nieliniowe

Wykorzystanie programów komputerowych do obliczeń matematycznych, cz. 2/2

1 Funkcje elementarne

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(

FUNKCJE. Kurs ZDAJ MATURĘ Z MATEMATYKI MODUŁ 5 Teoria funkcje cz.1. Definicja funkcji i wiadomości podstawowe

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Zagadnienia do małej matury z matematyki klasa II Poziom podstawowy i rozszerzony

Zajęcia nr. 3 notatki

FUNKCJE LICZBOWE. Na zbiorze X określona jest funkcja f : X Y gdy dowolnemu punktowi x X przyporządkowany jest punkt f(x) Y.

Próbny egzamin z matematyki dla uczniów klas II LO i III Technikum. w roku szkolnym 2012/2013

(a b 1 2); : ( b a + b ab 2 + c ). : a2 2ab+b 2. Politechnika Białostocka KATEDRA MATEMATYKI. Zajęcia fakultatywne z matematyki 2008

Nawigacja po długim dokumencie może być męcząca, dlatego warto poznać następujące skróty klawiszowe

Co to jest arkusz kalkulacyjny?

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

Formatowanie komórek

Wykorzystanie programów komputerowych do obliczeń matematycznych, cz. 2/2

3a. Wstęp: Elementarne równania i nierówności

MATHCAD Obliczenia symboliczne

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

WYRAŻENIA ALGEBRAICZNE

FUNKCJA LINIOWA - WYKRES. y = ax + b. a i b to współczynniki funkcji, które mają wartości liczbowe

III. Wstęp: Elementarne równania i nierówności

4.Arkusz kalkulacyjny Calc

========================= Zapisujemy naszą funkcję kwadratową w postaci kanonicznej: 2

Granice funkcji. XX LO (wrzesień 2016) Matematyka elementarna Temat #8 1 / 21

Indukcja matematyczna

2. DZIAŁANIA NA WIELOMIANACH

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Maciej Grzesiak Instytut Matematyki Politechniki Poznańskiej. Całki nieoznaczone

Mathematica III Równania różniczkowe, układy równań różniczkowych, wykresy, badanie funkcji, importowanie danych, instrukcje warunkowe, pętle

Przekształcanie wykresów.

2) R stosuje w obliczeniach wzór na logarytm potęgi oraz wzór na zamianę podstawy logarytmu.

BIBLIOTEKA LOKALNE CENTRUM WIEDZY PRAKTYCZNEJ PRZEWODNIK PO NARZĘDZIACH WARSZTAT NR 1: ARKUSZE KALKULACYJNE - MINI SKRYPT

Całka nieoznaczona, podstawowe wiadomości

3. FUNKCJA LINIOWA. gdzie ; ół,.

Szybka instrukcja tworzenia testów dla E-SPRAWDZIAN-2 programem e_kreator_2

Logarytmy. Historia. Definicja

Zadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych. 8a 3,54 8b 5,25 8c 4,21 8d 4,85

Zadanie 8. Dołączanie obiektów

PLAN WYNIKOWY PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY

Ćwiczenie 6 Animacja trójwymiarowa

Dodawanie grafiki i obiektów

KRYTERIA OCENIANIA Z MATEMATYKI W OPARCIU O PODSTAWĘ PROGRAMOWĄ I PROGRAM NAUCZANIA MATEMATYKA 2001 DLA KLASY DRUGIEJ

PRZEDMIOTOWY SYSTEM OCENIANIA PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska

Programowanie w języku Python. Grażyna Koba

Arkusz kalkulacyjny EXCEL

Programowanie i techniki algorytmiczne

Egzamin ustny z matematyki semestr II Zakres wymaganych wiadomości i umiejętności

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

Skrypt 7. Funkcje. Opracowanie: L1

1 Układy równań liniowych

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Zadanie 3 Oblicz jeżeli wiadomo, że liczby 8 2,, 1, , tworzą ciąg arytmetyczny. Wyznacz różnicę ciągu. Rozwiązanie:

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY III

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Przenoszenie, kopiowanie formuł

1. Opis okna podstawowego programu TPrezenter.

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

Wprowadzenie do Mathcada 1

Dział I FUNKCJE I ICH WŁASNOŚCI

Trik 1 Edycja wykresu bezpośrednio w dokumencie Worda

Na podstawie informacji zdobytych na poprzednich zajęciach proszę wykonać następujące zadania:

III. Funkcje rzeczywiste

3. Instrukcje warunkowe

Temat 5. Programowanie w języku Logo

Cykl lekcji informatyki w klasie IV szkoły podstawowej. Wstęp

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Programowanie strukturalne i obiektowe. Funkcje

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

najlepszych trików Excelu

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Zakres na egzaminy poprawkowe w r. szk. 2013/14 /nauczyciel M.Tatar/

Praktyczne wykorzystanie arkusza kalkulacyjnego w pracy nauczyciela część 1

SCENARIUSZ LEKCJI. Wielomiany komputerowe wykresy funkcji wielomianowych

EXCEL Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący

KLASA II LO Poziom rozszerzony (wrzesień styczeń)

1. Skopiować naswój komputer: (tymczasowy adres)

Obsługa programu Paint. mgr Katarzyna Paliwoda

Temat (rozumiany jako lekcja) Propozycje środków dydaktycznych. Liczba godzin. Uwagi

Szybki start SAMOOCENA W NOR-STA

Tematy lekcji informatyki klasa 4a luty/marzec 2013

Zakres materiału obowiązujący do próbnej matury z matematyki

Transkrypt:

Mathematica dla niecierpliwych Miros aw Majewski Fragment tekstu ksi ki przygotowywanej do druku. M.M Konferencja MathPAD 2010 Wydzia Matematyki i Informatyki Uniwersytet Miko aja Kopernika Toru, 15-19 sierpnia, 2010

Spis rzeczy 1 Wprowadzenie do programu Mathematica... 1 1.1 Mathematica jako podręczny kalkulator...3 1.1.1 Arytmetyka... 3 1.1.2 Funkcje trygonometryczne, logarytmiczne...5 1.2 Rozwiązujemy równania... 8 1.3 Zmienne...9 1.4 Funkcje...12 1.4.1 Problemy z deklaracjami... 13 1.5 Operacje na wyrażeniach matematycznych...15 1.6 Elementy analizy matematycznej...18 1.7 Szukamy pomocy...20 1.7.1 Duże i małe litery... 20 1.7.2 Nawiasy... 21 1.7.3 Równość nie jest równa równości...21 1.7.4 Kolor ma też jakieś znaczenie...22 1.7.5 Pomoc w programie...22 2 Grafika 2D w programie Mathematica...25 2.1 Wykresy funkcji jednej zmiennej... 25 2.2 Wykresy równań parametrycznych...28 2.2.1 Proporcje i zakres wykresu... 29 2.2.2 Osie układu współrzędnych, siatka i ramka...30 2.2.3 Styl wykresów w 2D...32 2.3 Wykresy krzywych parametrycznych...37 2.4 Wykresy we współrzędnych biegunowych...41 2.5 Wykresy równań w postaci uwikłanej...45 3 Grafika 3D w programie Mathematica...47 3.1 Wykresy funkcji dwu zmiennych... 47 3.2 Wykresy równań parametrycznych...51 3.3 Wykresy równań uwikłanych i nierówności...54 3.4 Wykresy we współrzednych sferycznych...59 3.5 Wykresy otrzymane z obrotu krzywych... 61 3.6 Wykresy funkcji dwu zmiennych inaczej...63 4 Animacja i manipulacja... 67 4.1 Podstawy procedury Manipulate... 67 4.2 Różne twarze procedury Manipulate... 72 I

M. Majewski 4.3 Panele z suwakami 2D i kolorem...75 4.4 Organizacja informacji na panelach Manipulate...77 4.5 Panele z zakładkami...79 4.6Hybrydy Manipulate i TabView... 80 Literatura...82 II

Przedmowa Od wielu lat zajmuję się tak zwanymi Systemami Algebry Komputerowej (ang. Computer Algebra Systems, lub krótko CAS). Programy te mogą uczynić zarówno nauczanie matematyki, jak i uczenie się matematyki, znacznie bardziej efektywnym oraz, co jest również ważne, bardziej interesującym. Na codzień używam programu Scientific Notebook jako mojej tablicy elektronicznej do wykładania takich przedmiotów jak algebra liniowa, rachunek różniczkowy czy matematyka skończona. Od wielu lat nie biorę do ręki kredy czy pisaka. Każdy mój wykład powstaje w sali wykładowej na laptopie i jest rzutowany na ekran. Bezpośrednio po wykładzie moi studenci mogą otrzymać notatki z wykładu w postaci elektronicznej, jako plik PDF, lub drukowanej. W sytuacjach, gdy zachodzi potrzeba zrobienia bardziej skomplikowanej ilustracji do wykładu, lub napisania krótkiego programu, zazwyczaj używam programu MuPAD, znanego obecnie jako Matlab Symbolic Maths Toolbox. Program Mathematica jest ostatnim dodatkiem do arsenału moich narzędzi dydaktycznych. Przyczyn jesttukilka MuPAD nie istnieje już w wersji niezależnej, a startowanie go z wnętrza programu Matlab zabiera zbyt wiele czasu; Mathematica jest idealnym środowiskiem do operowania strukturami matematycznymi, nawet tymi bardziej skomplikowanymi, oraz ma wręcz niezwykłe możliwości graficzne. Na dodatek Mathematica posiada tę niezwykłą procedurę Manipulate, która pozwala w kilka sekund zamienić każdy przykład w interaktywne laboratorium. Przedstawiony tu materiał powstał z doświadczeń i materiałów zgromadzonych przez lata nauczania z komputerem. Pewne z pokazanych tu przykładów pochodzą z moich wcześniejszych książek, z notatek do wykładów, oraz licznych eksperymentów z różnymi programami matematycznymi. Wiele z załączonych tu zadań, podobnie jak tytuł tego tekstu, zostało wzięte z mojej książki MuPAD dla niecierpliwych. Pokazanetu środowisko i przykłady pochodzą z programu Mathematica wersja 7. Wszystkie omówione tu przykłady zostały wielokrotnie przetestowane w różnych sytuacjach i z różnymi parametrami. Nie wykluczam jednak możliwych pomyłek podczas kopiowania przykładów z programu Mathematica oraz formatowania tekstu. Wreszcie warto wspomnieć co czytelnik może znaleźć w tym opracowaniu i jak to może wykorzystać. Mathematica jest programem bogatym w liczne narzędzia, funkcje i wiele subtelności. Jest to niezmierzone morze wiadomości, które jest w stanie oszołomić, lub nawet zniechęcić, początkującego użytkownika. Trzeba wielu lat na to, aby poznać ten program dogłębnie. Tymczasem nauczyciel czy student potrzebuje niewielki fragment tej wiedzy, tylko najpotrzebniejsze rzeczy, te których będzie używał na lekcji czy do rozwiązania stosunkowo prostego problemu matematycznego. Jak tytuł tego opracowania wskazuje, mam zamiar omówić tu wybrane i tylko najpotrzebniejsze elementy programu. Przedstawiony tu tekst jest fragmentem książki tego samego autora przygotowywanej do druku. W tym opracowaniu czytelnik znajdzie tylko cztery rozdziały. We wprowadzeniu omówimy najpotrzebniejsze rzeczy, które są potrzebne do tego aby moc rozpocząć pracę z programem Mathematica. Jest to absolutne minimum, bez którego trudno byłoby czytać pozostałe rozdziały. Czasem czytelnik może odczuwać brak pewnych wiadomości. Pewne z nich z zostaną omówione w dalszych rozdziałach.

M. Majewski Wiele rzeczy można znaleźć w bogatej pomocy programu Mathematica. Rozdział drugi jest wprowadzeniem do grafiki 2D w programie Mathematica. Jeszcze raz, jest to tylko absolutne minimum wystarczające do tego, aby zrobić podstawowe wykresy szkolne czy uniwersyteckie do takich przedmiotów jak rachunek różniczkowy czy algebra. Tu, przy okazji, omawiam sposoby ręcznej edycji wykresów dodawanie napisów, strzałek, zmiany kolorów itp. Po długim czasie wykładania z CAS uważam, że jest to bardzo użyteczna funkcja w przypadku, gdy chcemy szybko poprawić wykres tak, aby uczeń lub student mógł lepiej zrozumieć co wykres przedstawia. Rozdział trzeci poświęcam grafice w 3D. Tu naszym głównym zadaniem będzie poznanie sposobów wizualizacji powierzchni i krzywych zadanych za pomocą różnego rodzaju równań i układów współrzędnych. Wykresy w przestrzeni wymagają znacznie większej znajomości szczegółów technicznych, np. sposobów posługiwaniasię kolorem, przezroczystością wykresu, itp. Tylko najbardziej niezbędne elementy tej wiedzy zostaną tu omówione. Rozdział czwarty jest pewnego rodzaju odskocznią od niezbędności jaką sobie postawiłem przy pisaniu tego tekstu. Omawiam tu manipulację obiektami graficznymi, choć nie tylko, ich animację i tworzenie interaktywnych paneli, które mogą być wspaniałą pomocą dydaktyczna w eksploracjach matematycznych. Inne tematy pojawią się w pełnej wersji tej książki. Na koniec jeszcze parę słów o tym jak czytać ten tekst. Jak wiem z doświadczenia, samo czytanie nie wystarcza aby poznać możliwości programu. W tym, jak i wielu innych przypadkach, czytanie powinno być aktywne czytajmy zatem z włączonym programem Mathematica. Każdy fragment kodu przepisujemy samodzielnie do programu. Wbrew wszelkim pozorom samodzielnie wpisywanie kodu do programu też nas wiele uczy i jest to akurat najbardziej niezbędny kawałek wiedzy. Następnie powodujemy wykonanie kodu i sprawdzamy jaki otrzymaliśmy wynik. To jest drugi bardzo ważny element doświadczenia. Jeśli coś nam nie wyszło tak jak się spodziewaliśmy, to zastanówmy się dlaczego. Często czerwone tło wykresu lub czerwone napisy są pierwszą informacją o błędach w kodzie. Sprawdźmy również co się stanie jak zmienimy parametry w naszym przykładzie. Takie eksperymenty pomogą nam później wydobyć z programu wiele specyficznych rzeczy. Każdy ważniejszy fragment tego tekstu zawiera kilka przykładów do samodzielnego wykonania. W takim przypadku radzę nie kopiować wcześniej zrobionych przykładów, tylko wpisać nowy kod bez zaglądania na wcześniejsze strony tego tekstu. W ten sposób możemy sprawdzić ile zapamiętaliśmy z lektury tego tekstu. Jest to również ważny element utrwalania zdobytej wiedzy. Mirek Majewski, Abu Dhabi, maj 2010 IV

1 Wprowadzenie do programu Mathematica Zaczynając pracę z jakimkolwiek programem warto poświęcić kilka chwil na poznanie otoczenia, w którym będziemy pracować. W przypadku programu Mathematica jest to bogaty zestaw palet i oferta wielopoziomowej pomocy, które w tej chwili możemy spokojnie pominąć i pozostawić na odpowiedniejszy moment. Dla nas w tej chwili najważniejszy jest pusty notatnik na ekranie. Tu będziemy wpisywać nasze polecenia i tu będziemy oczekiwać wyników. Na wielu typach ekranów domyślny notatnik używa zbyt małych znaków aby można było wygodnie pracować. Dobrym i sprawdzonym rozwiązaniem jest wyszukanie w menu Format Screen Environment opcji Presentation. W wyniku takiego wyboru otrzymujemy notatnik, który idealnie nadaje się do pracy indywidualnej, jak również do prezentacji w trakcie lekcji czy wykładu. 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 rozwiązał nam jakieś proste równanie, coś w rodzaju x 2 5x 1 0. Polecenie rozwiązania takiego równania może mieć postać: Solve[x^2 5 x 1 0, x Aby uniknąć pomyłek już na samym początku zauważmy kilka istotnych rzeczy. Mathematica rozróżnia pomiędzy dużymi i małymi literami. Polecenie Solve będzie zrozumiane przez program, natomiast polecenie solve już nie. Wszystkie polecenia zdefiniowane w programie Mathematica, nazwy funkcji i operatorów zaczynają się od dużej litery, np. Solve, Simplify, Expand, Sin, Cos, etc. Drugą istotną sprawą jest nawias przy Solve, jest to nawias kwadratowy. W każdym poleceniu, czy funkcji, używamy nawiasów kwadratowych do wpisania argumentów polecenia czy funkcji. Mamy zatem Sin[x, Cos[x, Expand[(x 1)^3, Simplify[Sin[x^4 Cos[x^4, itd. Do tych spraw będziemy wracać jeszcze wielokrotnie. A oto kolejne istotne elementy występujące w naszym poleceniu. Wyrażenie x^2 oznacza x 2,natomiast 5 x oznacza 5 x lub po prostu 5x. W tym ostatnim przypadku nie musimy pisać symbolu mnożenia, wystarczy spacja. Zauważmy ponadto, że równości w równaniach wpisujemy używając symbolu " ". Pojedynczy symbol " " ma nieco inne znaczenie w programie Mathematica.

Mirosław Majewski Teraz jesteśmy gotowi do wykonania naszego pierwszego polecenia. Ustawmy wskaźnik myszy gdzieś na obszarze linii z poleceniem Solve i jednocześnie wciśnijmy dwa klawisze [Shift[Enter. Jeśli wpisaliśmy nasze polecenie poprawnie, to na ekranie powinien pojawić się wynik. Jeśli były jakieś błędy w naszym poleceniu, to albo otrzymamy komunikat o błędzie, albo nasze polecenie zostanie powtórzone bez zmian. Poniższy obrazek pokazuje notatnik programu z wpisanymi i wykonanymi kilkoma poleceniami. Uwaga techniczna Polecenia w programie Mathematica częstoużywają pewnych, zgóry ustalonych słów np. Solve, Expand, itd.. Słowa takie nazywać będziemy nazwami procedur lub krótko procedurami. Procedury są programami, które zostały napisane przez twórców programu Mathematica lub przez jego użytkowników. Zazwyczaj użytkownik nie zna lub nie chce znać zawartości procedury. Wystarczy, że zna nazwę procedury i wie jakjejużywać.w dalszej części tej książki będziemy odróżniać nazwy procedur od poleceń ich używających. Zauważmy przy tym, że dana procedura może być użyta na wiele sposobów, częstodo różnych typów obiektów matematycznych, np. procedura Solve może być użyta do rozwiązywania różnych typów równań. Zanim pójdziemy dalej w poznawaniu programu, przyjrzyjmy się jeszcze przez chwilę pewnym specyficznym elementom notatnika. Każda linia kodu i wyników poprzedzona jest wyrażeniem In[nr: lub Out[nr:. Linie In[nr oznaczają input czyli wpisane przez nas polecenia, linie Out[nr oznaczają wyniki obliczone i wyświetlone przez program Mathematica. Każde polecenie, jak i wynik, ma numer pokazujący w jakiej kolejności wpisywaliśmy i wykonywaliśmy polecenia. Kolejność ta nie koniecznie musi zgadzać się z kolejnością w jakiej polecenia występują na ekranie. Drugą widoczną na obrazku cechą notatnika są nawiasy kwadratowe na prawym obrzeżu notatnika. Każdy z tych nawiasów wskazuje obszar jakiegoś bloku elementów 2

Mathematica dla niecierpliwych notatnika, np. blok danego polecenia, blok wyniku, blok polecenia i odpowiadającego mu wyniku, blok rozdziału, itd. Każdy blok może być skasowany poprzez wybranie odpowiadającego mu nawiasu na prawym marginesie i wciśnięcie klawisza [Delete. Pomiędzy dwa kolejne bloki możemy wstawić nowe polecenie lub tekst. Wystarczy w tym celu ustawić wskaźnik myszy w odpowiednie miejsce, a kiedy zamieni się w poziomą kreskę, kliknąć i zacząć wpisywać nowe polecenie. Podobnie postępujemy jeśli chcemy wpisać w notatniku dowolny tekst. Ustawiamy wskaźnik myszy w odpowiednim miejscu, klikamy aby rozpocząć wpisywanie i następnie wciskając [Alt[7 zamienić dany blok w tekst. Jeśli chcemy, aby nasz notatnik był podobny do dokumentów jakie tworzymy w MS Word, czy innym programie do edycji tekstów, to kolejne sekwencje klawiszy z [Alt mają następujący 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 własności ale mogą różnić się wyglądem na ekranie. Po tych bardzo wstępnych uwagach możemy przystąpić do poznawania możliwości programu Mathematica. 1.1 Mathematica jako podręczny kalkulator 1.1.1 Arytmetyka Na początek zauważmy, że Mathematica posiada bardzo bogatą kolekcję funkcji do obliczeń, jak te wykonywane przez nas codziennie z użyciem kalkulatora. Mamy zatem wszelkie funkcje arytmetyczne:,,, /, potęgę(wyrażenie2 3 zapisujemy jako 2^3), oraz pierwiastek (wyrażenie 2 zapisujemy jako Sqrt[2). Mamy do dyspozycji często używaną w matematyce operację silnia "!". Z pomocą tych operacji możemy tworzyć dowolnie skomplikowane wyrażenia i obliczać ich wartości,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 wyrażenia pierwiastkowe zapisujemy używając symbolu potęgi, np. 3 1 2 2 2 2 3 2 4 2 5 zapiszemy jako 3

Mirosław Majewski (1 2 2^2 2^3 2^4 2^5)^(1/3) 3 2/3 3 7 To samo wyrażenie może być zapisane z użyciem polecenia Power, tak jak poniżej: Power[1 2 2^2 2^3 2^4 2^5, 1/3 3 2/3 3 7 Zauważmy przy tym, że wyrażenie do obliczenia może być podane w postaci liniowej, jak powyżej, lub w postaci dwuwymiarowego wyrażenia jakie zazwyczaj widzimy w podręcznikach matematyki, np. 234 456 752 345 23 34 75 32 78 99 Pisanie wyrażeń w tej postaci jest możliwe za pomocą odpowiednich palet symboli. Możemy je znaleźć w menu Palettes idalejnp.classroom Assistant, lubbasic Math Assistant. Ponieważ na dalszych stronach tego tekstu będziemy używać licznych poleceń korzystających głównie z zapisu liniowego, opis palet i ich wykorzystania zostawimy sobie na inną okazję. Wreszcie zauważmy dość istotną cechę programu Mathematica. Jak każdy inny CAS, Mathematica stara się podawać wyniki w postaci symbolicznej, a więc 23 2 zamiast 4. 9411, 1 zamiast 0.1, itd.jeślizatemchcemyabyprogrampodawałnam 10 wyniki w postaci numerycznej, to musimy go do tego w jakiś sposób zachęcić. Sposobów zachęty jest conajmniej trzy. Możemy zapisać jedną z liczb w postaci dziesiętnej, np. zamiast 234 napisać 234.0, to wystarczy aby Mathematica podała cały wynik w postaci dziesiętnej. (234.0 456)*(752 345)/((23 34)*(75 32) (78*99)) Możemy użyć polecenia N[wyrażenie N[(234 456)*(752 345)/((23 34)*(75 32) (78*99)) lub (234 456)*(752 345)/((23 34)*(75 32) (78*99)) //N Każde z tych poleceń wyprodukuje wynik 23. 9393. Na szczególną jednak uwagę zasługuje polecenie środkowe. Tu możemy zażądać dodatkowej precyzji wyniku, np. wynik z dokładnością do 50 miejsc po przecinku otrzymamy przez użycie dodatkowego parametru. N[(234 456)*(752 345)/((23 34)*(75 32) (78*99)), 50 23. 939250958419345325862577410793276319669713948688 Ostatnie z trzech powyżej podanych poleceń zostało użyte w tzw. postaci postfix, czyli 4

Mathematica dla niecierpliwych operator podany jest na końcu polecenia, tu //N. Z pewnych powodów jest to bardzo wygodny sposób wykonywania pewnych operacji nie tylko arytmetycznych. Do tego problemuwrócimyprzyinnejokazji. Na zakończenie tego krótkiego rozdziału poświeconego arytmetyce warto wspomnieć o dwu najczęściej używanych w matematyce stałych: oraz e. Zapisujemy je jako Pi oraz E. Mamy zatem: N[Pi, 50 3. 1415926535897932384626433832795028841971693993751 oraz N[E, 50 2. 7182818284590452353602874713526624977572470937000 Ćwiczenia 1. Oblicz dziesiętną wartość ułamka 123/456 zdokładnością10, 100,oraz1000 miejsc po przecinku. 2. Oblicz oraz e z dokładnością 150 miejsc po przecinku. 1.1.2 Funkcje trygonometryczne, logarytmiczne W programie Mathematica mamy do dyspozycji wszystkie znane nam funkcje trygonometryczne, logarytmiczne i potęgowe. Są tu między innymi funkcje wymienione w poniżej załączonej tabeli. Funkcja sin x cosx tanx cotx arcsinx arccosx arctanx arccotx Zapis w programie Mathematica iprzykładużycia Sin[3 Pi/15 Cos[3 Pi/15 Tan[3 Pi/15 Cot[3 Pi/15 ArcSin[1/2 ArcCos[1/2 ArcTan[Sqrt[3 ArcCot[Sqrt[3 Niezmiernie ważne jest zauważenie, że funkcje trygonometryczne używają argumentów wyrażonych w radianach, a nie stopniach. 5

Mirosław Majewski Mamy zatem dla przykładu: 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 radianów, np. ArcSin[1/Sqrt[2 4 ArcTan[Sqrt[3 3 W przypadku, gdy zamiast radianów mamy do czynienia ze stopniami, to prostym sposobem możemy spowodować aby Mathematica rozumiała nasze potrzeby. Dla przykładu obliczenie sin15 możliwe jest za pomocą polecenia: Sin[15 *Pi/180 3 1 2 2 Drugą ważną grupą funkcji w matematyce szkolnej, czy uniwersyteckiej, są funkcje wykładnicze i logarytmiczne. Mamy zatem: Funkcja lnx log 10 x log 2 x log a x e x a n Zapis w programie Mathematica iprzykładużycia Log[E*E Log[10,10234.0 Log[2,15. Log[a,x Exp[x lub E^x Power[a,n 6

Mathematica dla niecierpliwych Oto kilka przykładów pokazujących jak te funkcje mogą być stosowane. Log[E*E 2 Log[10, 10234 log 10234 log 10 Zauważmy, że jak zawsze, Mathematica stara się podać wynik w postaci symbolicznej. Jeśli jednak zależy nam na wyniku w postaci liczby dziesiętnej, to wystarczy zasugerować tę potrzebę w znany nam już sposób. Log[10, 10234. 4.01005 Log[2, 15. 3.90689 Log[a, b log b log a Exp[x e x Power[a, b a b Tu warto wspomnieć o interesującej własności programu Mathematica jeśli zamiast pojedynczych argumentów będziemy podawać argumenty w postaci list, to wynik również otrzymamy w postaci listy, w której każdy element został poddany odpowiedniej operacji. Dla przykładu podniesienie do 3 potęgi wszystkich wyrazów pewnego ciągu może być wykonane jednym poleceniem, Power[{a, b, c}, n a n,b n,c n lub tak, gdy chcemy utworzyć ciągpotęgpewnegowyrażenia 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 pamiętać, aby oba ciągi miały tę samą liczbę elementów. 7

Mirosław Majewski W podobny sposób zachowują się inne operacje i funkcje w programie Mathematica jeśli zastosujemy je do ciągów wyrażeń. Dla przykładu mamy: {a, b, c} {d, e, f} a d,b e,c f {a, b, c}/{d, e, f} a d, b e, c f Log[{a, b, c} log a,log b,log c Sin[{a, b, c} sin a,sin b,sin c Do operacji na ciągach wrócimy w innym odpowiedniejszym momencie. 1.2 Rozwiązujemy równania Drugą ważną operacją, jaka nie zawsze występuje w kalkulatorach, jest rozwiązywanie równań lub nawet układów równań. Rozwiązywanie równań jest bardzo bogatym tematem i w tym rozdziale ograniczymy się tylko do kilku elementarnych przykładów. Zacznijmy zatem od tego, że każde równanie powinno być podane w postaci: lewa strona prawa strona Piszemy zatem x^2 1 0, aniex^2 1 0. Dalej, do rozwiązania większości równań, wystarczy nam polecenie Solve z drobnymi modyfikacjami. Oto kilka prostych przykładów. Solve[x^2 3 x 1 0, x x 1 3 5, x 1 3 5 2 2 Solve[x^3 3 x 1 x^2 2 x 3, x x 2, x 3 1, x 1 2/3 W podobny sposób rozwiązujemy układy równań. Zauważmy, że to bardzo przypomina to co zobaczyliśmy przy okazji funkcji Power. Tu również grupujemy równania, oraz zmienne dla których chcemy otrzymać rozwiązania, używając nawiasów klamrowych. Solve[{x y 1, x 2 y 2}, {x, y} x 4 3,y 1 3 A oto nieco bardziej skomplikowany przykład 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 może mieć wiele interesujących zastosowań. Dla przykładu, punkty przecięcia okręgu x 2 y 2 1 z prostą y 1 x 1 można otrzymać za pomocą 2 2 prostego polecenia, Solve[{x^2 y^2 1, y x/2 1/2}, {x, y} x 1,y 0, x 3 5,y 4 5 Na zakończenie tego bardzo krótkiego wstępu do rozwiązywania równań z programem Mathematica zauważmy pewną ważną rzecz. W każdym z powyższych przypadków rozwiązania mają postać x a. Jest to bardzo dogodne w sytuacji pojedynczych przykładów, gdzie od razu widzimy jakie wartości otrzymujemy dla poszczególnych niewiadomych. Jeśli jednak chcemy te wyniki wykorzystać wdalszych obliczeniach to wygodniejsze byłoby otrzymanie ich w postaci listy, gdzie każdy element jest wartością odpowiedniego rozwiązania. Inaczej mówiąc chcemy aby wykonanie polecenia Solve[{x 2*y z 2, x y z 4, 2*x y z 5},{x, y, z} dałonamwynik 3,0,1. To jednak wymaga zapoznania się ze zmiennymi i funkcjami w programie Mathematica. Ćwiczenia Rozwiąż następujące równania lub układy równań w programie Mathematica. 1. x 2 49 0 2. x 2 x 6 0 3. 20x 2 31x 9 0 4. x 2 3x 1 0 5. x 2 6x 1 0 6. x 2 7x 9 0 7. x 2 y 2 4xy 1 0, rozwiąż ze względu na zmienną x, a następnie jeszcze raz ze względu 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 9

Mirosław Majewski 1.3 Zmienne Każdemu obiektowi w programie Mathematica możemy przyporządkować jakąś zmienną, lub inaczej mówiąc możemy mu nadać nazwę. W takim przypadku zamiast za każdym razem wpisywać cały obiekt, np. system równań, łatwiej będzie posłużyć sięjegonazwą.otojaktowyglądawprzypadkurównań. Nasz układ równań otrzymuje nazwę równania. Zauważmy, że nazwa może zawierać specyficzne polskie litery. Niestety system w którym edytuję ten tekst nie pozwalami na to. rownania {x y 1, x 2 y 2} x y 1,x 2y 2 Teraz nazywamy nasze zmienne i dokładamy średnik na końcu polecenia, aby Mathematica nie wyświetlała niepotrzebnego na ekranie wyniku. zmienne {x, y}; Po tych nazwaniach możemy rozwiązać system równań bez wypisywania od nowa równań i zmiennych. rozwiazania Solve[rownania, zmienne x 4 3,y 1 3 Otrzymany wynik jest zbiorem/listą zawierającym listę z dwu reguł x 4 3 y 1. Naszym zadaniem będzie wyłuskanie z tego liczb 4 oraz 1. 3 3 3 oraz WprogramieMathematica mamy operację podstawiania. Działa ona w następujący sposób, polecenie f(x)/. x a zamieni w f(x) wszystkie wystąpienia zmiennej x na a. Możemywięczastosowaćje do pojedynczej zmiennej, pary zmiennych, lub innej struktury zwierającej zmienną x. Oto jak to wygląda w naszym przypadku, r1 x /. rozwiazania 4 3 r2 y/. rozwiazania 1 3 A następnie odrzucamy zbędne nawiasy klamrowe, r1 r1[[1 4 3 10

Mathematica dla niecierpliwych r2 r2[[1 1 3 Teraz możemy już bez problemu operować naszymi rozwiązaniami dalej, np. r1 r2 5 3 Polecenia z podwójnym nawiasem kwadratowym mogą się wydawać dziwne, ale w gruncie rzeczy łatwe do wyjaśnienia. Symbol [1 oznacza indeks czyli pozycję elementu na liście, natomiast zewnętrzny nawias [ jest niczym innym jak nawiasem wewnątrz, którego wpisujemy argument [1. Mamy tu więc jakby operację listy lub zbioru na argumentach. Oto nieco szerszy przykład pokazujący jak to działa. Tworzymy listę A, a następnie wybieramy z niej jeden z elementów, w naszym przykładzie 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 działa operacja podstawiania w nieco bardziej złożonej 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 Załóżmy, że chcemy jednocześnie wydobyć z niej wszystkie rozwiązania. W tym celu używamy nowej zmiennej u i jej przypisujemy otrzymane rozwiązania. u {x, y} /. rozw 1 0 3 5 4 5 To co otrzymaliśmy jest już macierzą, ale i w jej przypadku mamy dostęp do każdego elementu, x1 u[[1, 1 1 x2 u[[2, 1 3 5 y1 u[[1, 2 0 11

Mirosław Majewski y2 u[[2, 2 4 5 Teraz należy tylko zapamiętać, że pierwszy numer w parze [n,m oznacza wiersz macierzy, a drugi kolumnę, w której znajduje się dane rozwiązanie. Kolumny zazwyczaj odpowiadają kolejnym zmiennym x, y, itd., numery wierszy są numerami poszczególnych par (trójek, itd.) rozwiązań. Ćwiczenia Wpisz deklaracje następujących wyrażeń 1. pierwiastek x 1 2. drugipierwiastek 2 1 x 1 x 3. wielomian 3x 3 2x 2 x 1 4. ułamki b 1 1 a 1 x b 1 a 1 x 1 c 1 b 1 a 1 x 5. dużopierwiastków a a a a x 1.4 Funkcje Funkcje i relacje są istotą matematyki. Używamy ich w każdej dyscyplinie matematycznej. Możemy je również definiować w programie Mathematica. Otokilka przykładów 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 używamy w naszych dalszych obliczeniach, f[a 1 a 1 2 3 a 1 2 g[pi/4 2 3 2 Zwróćmy uwagę na kilka istotnych rzeczy w tych deklaracjach. W naszych przykładach po lewej stronie mamy litery f lub g. Są to nazwy naszych funkcji. Możemy mieć tu dowolne inne nazwy. Wybierając nazwy dla naszych funkcji, lub zmiennych, warto przestrzegać pewnych konwencji. Ponieważ wszystkie funkcje w 12

Mathematica dla niecierpliwych programie Mathematica zaczynają się od dużej litery to, dla odróżnienia, powinniśmy zaczynać nasze funkcje od małych liter. Zazwyczaj, jeśli nie prowadzi to do niepotrzebnych komplikacji, używamy nazw bardzo krótkich. Jeśli z jakiegoś powodu nazwa funkcji musi być bardziej opisowa wówczas używamy jednego słowa lub kilku połączonych w odpowiedni sposób, np. poledwuokregow. Jak widzimy nazwa zaczyna się od małej litery, ale każde kolejne słowo już od dużej. W deklaracji funkcji zmienna, lub zmienne, po lewej stronie mają znak podkreślenia. Są to zmienne, za które możemy podstawić dowolne wyrażenia. Wreszcie symbol : powoduje, że wyrażenie po prawej stronie pozostanie bez wartości w momencie deklaracji, a jego wartość za każdym razem zostanie wyliczona od nowa w zależności od wartości jakie podstawimy za zmienne. Oto kilka innych przykładów deklaracji funkcji i ich użycia, 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 sposób deklaracji funkcji pozwala również na łatwe deklaracje funkcji rekurencyjnych. Oto jak możemy szybko utworzyć sobie deklarację funkcji rekurencyjnej produkującej wyrazy ciągu Fibonacciego. Zaczynamy od deklaracji dwu pierwszych wyrazów, fibo[1 1; fibo[2 1; i dalej deklaracja już całej funkcji, fibo[n_ : fibo[n 1 fibo[n 2 Teraz możemy wyliczyć dowolny wyraz ciągu Fibonacciego. fibo[17 1597 Tak zdefiniowana funkcja rekurencyjna nie jest zbyt szybka i ma ograniczenia odnośnie liczby kroków rekurencji, dlatego powinna być stosowana raczej dla małych wartości argumentu. Bardziej efektywna metoda deklaracji funkcji rekurencyjnych pojawi się przy innej okazji. Na zakończenie omawiania deklaracji funkcji warto wspomnieć jak można szybko utworzyć pewną liczbę wyrazów ciągu mając jego wzór. Dla przykładu pierwsze 15 wyrazów ciągu Fibonacciego utworzymy za pomocą następującego polecenia. 13

Mirosław 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 którym pracujemy przez dłuższy czas, może w pewnym momencie zacząć sprawiać nam kłopoty. Są to najczęściej problemy wynikające z istnienia, już niepotrzebnych, starych deklaracji. Oto przykład, pokazujący jak ten mechanizm działa. Deklarujemy dwie zmienne x i y przypisując im odpowiednio wartości 1 i 2. x 1; y 2; W tej sytuacji wykonanie polecenia, w którym występują x i y zastępuje te zmienne ich aktualnymi wartościami, np. x y 3 Dalej możemy zadeklarować funkcję używającą symboli x i y. Tu jeszcze nic złego się nie dzieje. f[x_ : x^2 3 x 1 Natomiast jeśli w tym momencie zechcemy sprawdzić jak nasza funkcja wygląda, lub użyć jej do zbudowania bardziej złożonej funkcji, to już zaczyna działać istnienie deklaracji dla x. f[x 2 f[x^2 21 Mogą nas np. spotkać takie niespodzianki jak ta poniżej, Solve[f[x 0, x General::ivar: 1 is not a valid variable Solve[False,1 Otrzymaliśmy tutaj komunikat informujący nas o błędzie oraz wynik, który nie ma dla nas już większego znaczenia. Aby uniknąć takich niespodzianek warto od czasu do czasu zlikwidować stare deklaracje i uwolnić zmienne, których najczęściej używamy. Polecenie Clear[x uwolni zmienną x od jej aktualnej wartości. Polecenie Clear[x,y zrobi to samo ale dla obu zmiennych. Mamy zatem, Clear[x i dalej już wszystko działa jak tego oczekujemy. Solve[f[x 0, x x 1 3 13, x 1 13 3 2 2 14

Mathematica dla niecierpliwych Ćwiczenia Napisz deklaracje poniżej wymienionych funkcji, a następnie wylicz ich wartości dla x 2 oraz x 3. 1. f x 1 2x 1 2. g x 1 3x 2 3x 5 3. h x x 4 2x 2 4 4. Fr x 1 1 1 1 x 1 1 1 1 1 x 5. Rts x x 2x 3x 4x x 1.5 Operacjenawyrażeniach matematycznych Jednym z najbardziej podstawowych elementów pracy w matematyce jest przekształcanie wyrażeń algebraicznych i trygonometrycznych. Mamy tu doczynienia z rozkładaniem i zwijaniem wielomianów, upraszczaniem funkcji wymiernych i wieloma innymi operacjami zaliczanymi często do matematyki elementarnej. W tym krótkim rozdziale omówimy pewne podstawowe procedury występujące w programie Mathematica. Na początek zadeklarujmy sobie wielomian A, a następnie zobaczmy co Mathematica może z nim zrobić. A (x 3)^2*(x 1)^3*(x 5) x 5 x 3 2 x 1 3 Teraz możemy rozwinąć nasz wielomian, B Expand[A x 6 14x 5 75x 4 196x 3 263x 2 174x 45 Otrzymany wynik możemy zwinąć do postaci wyjściowej, Factor[B x 5 x 3 2 x 1 3 Mathematica uprości większość elementarnych wyrażeń matematycznych, Simplify[Sin[2*x^2 Cos[2*x^2 1 15

Mirosław Majewski Simplify[Sin[3*x * Cos[3*x 1 2 sin 6x Simplify[Exp[x*Exp[3*x Exp[x*Exp[2*x e 3x e x 1 Mathematica może również uprościć dowolne wyrażenie korzystając z podanych jej założeń. Tu, dla przykładu, pokazujemy jak uprościć wyrażenie uwzględniając znak zmiennej występującej w wyrażeniu. Simplify[Sqrt[x*(Sqrt[x x)^2 x x x 3 To samo polecenie, ale z dodatkowym założeniem x 0 daje zupełnie inny wynik. Simplify[Sqrt[x*(Sqrt[x x)^2, x 0 x 3/2 x Na zakończenie zajmijmy się jeszcze przez chwilę wielomianami. Oto wielomian dwu zmiennych P x,y xy axy x 2 y axy 2 x ax. Wielomian ten może być zwinięty względem dowolnej zmiennej w nim występującej lub względem wszystkich zmiennych. Oto jak to wygląda 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 zależności od potrzeb używamy procedury Collect z odpowiednim parametrem. Collect[P, x x ay 2 ay a y 1 x 2 y Collect[P, y y ax x 2 x axy 2 ax x Collect[P, {x, y} x ay 2 a 1 y a 1 x 2 y W rachunku całkowym jak i w algebrze przekształcamy czasem wyrażenia wymierne do postaci tzw. ułamków prostych, czyli sumy wyrażeń wymiernych, w których mianownik jest wielomianem nierozkładalnym, co najwyżej stopnia drugiego, a licznik jest wielomianem stopnia zerowego, lub co najwyżej pierwszego. W programie Mathematica rozkładanie wyrażeń wymiernych na ułamki proste wykonujemy za pomocą procedury Apart. Zacznijmy, zatem od zadeklarowania wyrażenia wymiernego a następnie zobaczmy, co z niego otrzymamy za pomocą procedury Apart. 16

Mathematica dla niecierpliwych w x^2/(x^3 3*x 2) x 2 x 3 3x 2 Apart[w 4 9 x 2 5 9 x 1 1 3 x 1 2 Ćwiczenia 1. Rozwiń następujące wyrażenia: a. 2x 3 2 b. 4x 2 1 2 c. x 1 2 x 3 4 d. x 2 x 3 5 x 4 2 e. 1 x n, dla n 2,3,4,5. 2. Rozwiń następujące wyrażenia z funkcjami trygonometrycznymi: a. sinx cosx 3 b. 1 sinx cosx 5 c. tan x 1 d. cot x 2 1 3. Zapisz w postaci iloczynu dwumianów: 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 e. 1 1 y 1 2 x 1 1 2 1 y 1 2 x 1 2 4. Uprość następujące wyrażenia: a. cosxsiny cosysinx b. 5x 10x 2 10x 3 5x 4 x 5 1 c. 1 1 y 1 2 x 1 1 1 2 1 y 2 x 1 2 1 3x d. 5 1 3x 3 9x e. 2 3 2 3 5. Rozwiń na ułamki częściowe: a. x 7 x 2 x 6 17

Mirosław Majewski b. 50x 2 20x 6 x 3 2x 2 x 1.6 Elementy analizy matematycznej Różniczkowanie i całkowanie są podstawowymi czynnościami w analizie matematycznej. Mamy tam jeszcze parę innych czynności, o których wspomnimy dalej. Na początek zacznijmy od zdefiniowania wyrażenia wymiernego z jedną zmienną x. w x^2/(x^3 x 1) x 2 x 3 x 1 Teraz wyliczmy jego pierwszą pochodną, D[w, x 2x x 3 x 1 x2 3x 2 1 x 3 x 1 2 W podobny sposób możemy wyliczyć drugą pochodną i kolejne, D[w,x,x 6x 3 x 3 x 1 2 2 x 3 x 1 2x2 3x 2 1 2 x 3 x 1 3 4x 3x2 1 x 3 x 1 2 Oto inny przykład gdzie wyliczamy trzecią pochodną wyrażenia trygonometrycznego. h Sin[x/(x 1)^2 sin x x 1 2 D[h, x, x, x 6sin x x 1 24sin x cos x 3 x 1 5 x 1 2 18cos x x 1 4 Pochodne cząstkowe funkcji wielu zmiennych otrzymujemy w identyczny sposób jak pochodne funkcji jednej zmiennej. u (Sin[x Cos[y)*(Cos[x Sin[y) sin x cos y cos x sin y Teraz możemy wyliczyć drugą pochodna mieszaną. D[u, x, y sin x sin y cos x cos y Mathematica równie łatwo wylicza całki zarówno oznaczone, jak i te nieoznaczone. 18

Mathematica dla niecierpliwych Integrate[x^2 3*x 1, x x 3 3 3x2 2 x Dotychczas przeprowadzaliśmy operacje na wyrażeniach matematycznych, te same operacje możemy wykonywać na wcześniej zadeklarowanych funkcjach. Jest tu kilka istotnych różnic, o których warto pamiętać. Zacznijmy zatem od zadeklarowania funkcji. f[x_ : 1/(1 x^3) No, a teraz, skoro już zdefiniowaliśmy sobie funkcję, to możemy wyliczyć jej pochodną i całkę. Mamy zatem pochodną, D[f[x, x 3x 2 x 3 1 2 całkę nieoznaczoną, Integrate[f[x, x 1 6 log x2 x 1 1 3 log x 1 tan 1 2x 1 3 3 całkę oznaczoną w granicach od x 0 do x 5, Integrate[f[x, {x, 0, 5} 1 18 3 3log 12 7 6 3 tan 1 3 3 oraz całkę oznaczoną w granicach od zera do nieskończoności. Integrate[f[x, {x, 0, Infinity} 2 3 3 Inną czynnością na lekcjach rachunku różniczkowego jest znajdowanie granic funkcji i ciągów. Na początek zajmijmy się granicami funkcji. Zbadajmy granice funkcji znanej z poprzedniego przykładu, w dwu punktach, dla x 0, orazdlax 1, gdzie występuje nieciągłość drugiego rodzaju. f[x_ : 1/(1 x^3) Dla x 0 dostajemy wynik bez większego problemu. Limit[f[x, x 0 1 Otogranicatejfunkcjiwpunkciex 1 z lewej strony, Limit[f[x, x 1, Direction 1 19

Mirosław Majewski anastępnie granica tej samej funkcji z prawej strony Limit[f[x, x 1, Direction 1 Zauważmy jak określa się tu granice lewostronne i prawostronne. Kierunek określa 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 ciągów. Dla przykładu, granica ciągu e n 1 1/n n dla n zmierzającego do nieskończoności ma postać, e[n_ : (1 1/n)^n Limit[e[n, n Infinity e Zauważmy, że mogliśmy zadeklarować nasz ciąg używając małej litery e. Togłównie dlatego, że Mathematica używa dużych liter do oznaczania swoich stałych i procedur. Ćwiczenia Napisz polecenia deklarujące, a następnieobliczające,pochodneicałkipodanych poniżej funkcji. 1. y x 3 x 2 x 1 2. y sinx cosx 3. y tanx cotx 4. y e 1 x x2 5. y 1 x 1 x x 2 1.7 Szukamy pomocy Nazwy, a szczególnie mało znane nazwy poleceń języka programu komputerowego, dość często wylatują nam z głowy. Tak jest również w przypadku nazw procedur jak również składni poleceń w programie Mathematica. Warto zatem poznać parę sposobów jak ustrzec się błędów. Na początek przypomnijmy sobie pewne, już wcześniej poznane, rzeczy. Większość z nich jest niezmiernie ważna dla początkującego użytkownika programu Mathematica. 1.7.1 Duże imałe litery Wszystkie nazwy procedur i tzw. słów kluczowych w programie Mathematica zaczynają się od dużej litery. Nazwy składające się z kilku słów pisane są w taki 20

Mathematica dla niecierpliwych sposób, że poszczególne słowa pisane są razem i każde z zaczyna się z dużej litery, np. PlotStyle, ColorData, ControlType, itd. Jeśli deklarujemy nasze własne nazwy zmiennych czy procedur to powinniśmy zaczynać je od małej litery aby odróżnić je od tych już istniejących w programie. 1.7.2 Nawiasy Mathematica używa różnych rodzajów nawiasów do zupełnie różnych celów. Wpisanie złego nawiasu powoduje, że program nie rozumie naszego polecenia poprawnie i nawet jeśli otrzymamy wynik to będzie on zły. 1. Nawiasy kwadratowe używane są do wpisywania argumentów poleceń czy funkcji, np. Sin[x, Solve[x^2 1 0,x. Używamy ich również do oznaczania indeksów wyrazów w ciągach lub bardziej złożonych strukturach. 2. Nawiasy klamrowe używane są do tworzenia list, np. {x,0,1}, {n, 1, 15}, itd. 3. Nawiasy okrągłe używane są do grupowania wyrażeń we wzorach, np. (1 x)^2, (Sin[x/(Cos[x 1))^2 4. Nawiasy okrągłe z gwiazdką są ignorowane przez program, a zatem mogą służyć jako komentarz, np. (* A ten tekst nic nie znaczy *).Taki fragment wpisany na obszarze dowolnego polecenia Mathematica zignoruje. 5. /. jest używany w celu zastosowania określonych reguł do wyrażenia po prawej stronie, np. x^2 /. x 5 podstawi wartość 5 wwyrażeniux^2. Zauważmy przy tym, że to podstawienie jest tymczasowe. Jeśli za chwilę zechcemy użyć zmiennej x to okaże się, że ma ona ciągle swoją dotychczasową wartość. 6. // pozwala otrzymać wartość wyrażenia po lewej stronie przekształconego funkcją użytą po prawej stronie, np. polecenie x^2 1 0 //Solve spowoduje rozwiązanie równania po lewej stronie. 1.7.3 Równość nie jest równa równości Podobnie jak w przypadku nawiasów, równości mogą być pisane na kilka sposobów i za każdym razem będą spełniały inną rolę. 1. Znak równości " " używany jest do przypisania danej nazwie wartości, również wyrażenia ze zmienną, np. A 1, B x^2 5. Wyrażenie po lewej stronie jest tylko etykietą wyrażenia po prawej stronie. Nie jest ono funkcją w żadnym przypadku. Dlatego nie możemy takiego wyrażenia użyć w postaci A[x czy A[2.5. 2. Znak podwójnej równości używany jest jako symbol relacji równości, np. x^2 1 x. Używamy go miedzy innymi do konstruowania równań. 21

Mirosław Majewski 3. Znak": " używany jest do deklarowania funkcji, np. f[x_ : 1/(1 x^3). W takim przypadku wyrażenie po lewej stronie jest nazwą funkcji, zmienna z podkreśleniem jest zmienną, za którą możemy podstawiać wartości, wyrażenie po prawej stronie jest definicją naszej funkcji. 1.7.4 Kolor ma też jakieś znaczenie Pisząc nawet proste polecenia w programie Mathematica zauważyliśmy, że dość często zmienia się kolor poszczególnych elementów polecenia. 1. Niebieski kolor oznacza zawsze wyrażenia nieznane w danym momencie w programie. Dla przykładu wpisując zmienną x lub słowo solve Mathematica wyświetli je na niebiesko. Dlatego, jeśli coś wyświetla się nam na niebiesko powinniśmy zastanowić się, czy jest tam błąd i jaki. Zmienne wolne, czyli takie, które nie mają przypisanej wartości powinny być zatem niebieskie. 2. Kolor czarny zawsze oznacza wyrażenia znane programowi Mathematica,w tym zmienne wyświetlane na czarno są zmiennymi z przypisanymi już wcześniej wartościami. Dla przykładu podczas wpisywania słowa Solve Mathematica wyświetla je na niebiesko aż do momentu, gdy wpiszemy ostatnią literę. Po wpisaniu ostatniej litery słowo Solve będzie już wyświetlone na czarno. Inny przykład, zmienna x po wykonaniu polecenia przypisującego jej jakąś wartość, np. x 2 będzie wyświetlona na czarno. Wartość przypisaną zmiennej możemy usunąć za pomocą polecenia Clear,np.Clear[x, Clear[x,y,itd. 3. Nawiasy bez pary są wyświetlane kolorem zbliżonym do różowego. Natychmiast po zamknięciu danej pary nawiasów 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 najczęściej przeszukiwaną opcją jest tzw. Function Navigator. Tuznajdziemy listę wszystkich procedur programu Mathematica pogrupowanych tematycznie. Po wybraniu tematu, a następnie odpowiedniej procedury dostaniemy szczegółową informację o procedurze oraz wiele interesujących przykładów zastosowania procedury. Każdy z tych przykładów może być skopiowany do naszego notatnika i użyty do naszych eksperymentów. Rysunek 1.1 pokazuje pomoc dla procedury Plot. 22

Mathematica dla niecierpliwych Rys 1.1 Nawigator funkcji w programie Mathematica W wielu przypadkach, gdy składnia naszych poleceń odbiega od poprawnej, Mathematica wyświetla komunikat informujący co jest źle w naszym poleceniu. Komunikatzakończonyjestznakiem, który jest odnośnikiem do odpowiedniego miejsca w pomocy. Dla przykładu polecenie Plot[x^2, {} spowoduje wyświetlenie komunikatu Plot::pllim: Range specification {} is not of the form {x, xmin, xmax}. Wciśnięcie skieruje nas do odpowiedniej strony w pomocy, gdzie jest dokładniejsza informacja dotycząca naszego problemu. Wreszcie na koniec warto wspomnieć o użytecznym skrócie do systemu pomocy. Przypuśćmy, że znamy nazwę procedury, lub się jej domyślamy, której chcemy użyć, ale nie pamiętamy dokładnie składni polecenia dla tej procedury. W takim przypadku wpisujemy? i nazwę procedury lub słowa kluczowego. Dla przykładu, załóżmy że chcemy otrzymać wykres funkcji cosx, cosx 2, cosx 3 oraz cosx 4 i domyślamy się, że procedura wykonująca ten wykres może mieć nazwę Plot lub coś w tym rodzaju. Wpisując polecenie?plot otrzymamy szczegółową informację jak napisać polecenie wykonujące wykres naszych funkcji. Tu, na stronie pomocy zauważymy interesujący wykres, na którym obszar pod funkcją jest wypełniony kolorem szarym i odbywa się to za sprawą parametru Filling. Kolejne polecenie?filling pokaże nam dokładniej jak zastosować ten parametr i dalej już możemy samodzielnie napisać poleceniewykonującenaszwykres. 23

Mirosław Majewski Plot[{Cot[x,Cot[x^2,Cot[x^3,Cot[x^4}, {x, Pi,Pi},Filling Axis No i w ten sposób doszliśmy do wykresów w programie Mathematica, atojużjest tematem następnego rozdziału. Ćwiczenia Znajdź w pomocy programu Mathematica informację o poniżej wymienionych procedurach. Napisz kilka poleceń ilustrujących działanie tych procedur. TrigExpand PowerExpand TrigReduce 24

2 Grafika 2D w programie Mathematica Jednym z najważniejszych zastosowań CAS jest wizualizacja matematyczna. Możliwość precyzyjnego pokazania obiektów matematycznych na rysunku jest tym czego brakowało w tradycyjnych narzędziach matematycznych. Program Mathematica posiada bardzo interesujące możliwości graficzne. Mamy tu nie tylko bogactwo procedur do wykresów funkcji, zarówno tych w 2D jak i 3D, ale również bardzo interesujące rozwiązania do wizualizacji obiektów złożonych, które nie są wyrażone za pomocą funkcji. Nasz przegląd zaczniemy od grafiki na płaszczyźnie i skupimy się na tych rodzajach wykresów, które mają znaczenie w nauczaniu matematyki. Najprostsza forma polecenia wykonującego wykres funkcji ma postać: Plot[Funkcja[x,{x,xmin,xmax} Podstawą polecenia jest bardzo uniwersalna funkcja Plot. W nawiasie kwadratowym mamy wymienioną funkcję. Jest to albo wyrażenie ze zmienną, albo nazwa wcześniej zdefiniowanej funkcji. Dalej następują parametry. W najprostszym przypadku jest to tylko, tak jak powyżej, deklaracja zakresu zmiennej względem której robimy wykres. Mamy tu wymienioną zmienną, potem dolną granicę tej zmiennej, a następnie jej górną granicę zgrupowane nawiasem kwadratowym. Oto prosty przykład, Plot[x^2,{x, 1,1} Jeśli zechcemy zrobić wykres kilku funkcji to grupujemy je, również nawiasem klamrowym, w jeden obiekt, np. Plot[{x,x^2,x^3,x^4},{x, 1,1} W miarę przybywania parametrów, polecenie robiące wykres może się bardzo skomplikować, ale o tym za chwile. Teraz zajmijmy się konkretami. 2.1 Wykresy funkcji jednej zmiennej Na początek zajmiemy się wykresami funkcji i składnią poleceń do robienia wykresów funkcji. Przypuśćmy zatem na początek, że mamy do czynienia z dość tajemniczo wyglądającą funkcją f x 2 xcos 10 x. Użyjemy tej funkcji do kilku eksperymentów pokazujących jak Mathematica może nam wykreślić i zmodyfikować wykres odpowiednio do naszych potrzeb. Aby jakoś podkreślić fakt, że cały czas mamy do czynienia z tą samą funkcją damy jej nazwę oscylator i dalej, w miarę potrzeby, będziemy używać zawsze tej nazwy.

Mirosław Majewski oscylator[x_ : 2^( x*cos[10 Pi x) Plot[oscylator[t, {t, 0, Pi} 5 4 3 2 1 0.5 1.0 1.5 2.0 2.5 3.0 Skoro mamy już wykres funkcji oscylator, to możemy zobaczyć co się stanie jeśli dołożymy do tego wykresu parę innych rzeczy, np. funkcje y x, y 2 x, y 2 x. Plot[{oscylator[x, x, 2^( x), 2^(x)}, {x, 0, Pi} 8 6 4 2 0.5 1.0 1.5 2.0 2.5 3.0 Tu Mathematica wykonała za nas parę czynności, których zakodowanie wymagałoby trochę czasu. Mamy wykresy czterech funkcji, każda w innym kolorze. W druku, wszystkie one będą niestety szare lub czarne. Patrząc na ten wykres, nawet ten wydrukowany, możemy się jednak domyślić wielu rzeczy, np. linia u góry dotykająca wierzchołków oscylatora jest wykresem funkcji y 2 x, linia dotykająca dolnych wierzchołków wykresu jest wykresem funkcji y 2 x, i wreszcie linia prosta przecinająca wykres na ukos to y x. Co jednak zrobić, gdy mamy mieszaninę wykresów nakładających się na siebie? Rozwiązaniem są narzędzia Graphics Inspector i Drawing Tools. Znajdziemy je wciskając prawy przycisk myszy na grafice i wybierając dalej z menu. Pokazaliśmy je na załączonym rysunku 2.1. 26

Mathematica dla niecierpliwych Rys. 2.1 Drawing Tools i Graphics Inspector Tu z łatwością zauważymy, że panel Drawing Tools zawiera bardzo podobne narzędzia, jak te w prostych programach do rysowania na komputerze. Mamy więc wybieranie poszczególnych elementów wykresu, dorysowywanie linii, strzałek, prostokątów, okręgów, wielokątów, itp. Graphics Inspector pozwala na pokolorowanie w odpowiedni sposób wybranych elementów, nadanie im odpowiedniej grubości linii, itp. Mając te narzędzia możemy z łatwością uzupełnić wykres odpowiednimi napisami, strzałkami, i innymi rzeczami. Na rysunku 2.2 pokazujemy jeszcze raz nasz wykres, ale z licznymi poprawkami i dodatkami. Wzory tu widoczne zostały utworzone odpowiednimi poleceniami w programie, a następnie skopiowane na wykres. Zauważmy również, że przy edycji wzorów na wykresach bardzo użyteczna może być paleta Writing Assistant. No i jeszcze jedna ważna sprawa, jeśli zechcemy ponownie wykonać polecenie, które nam wykonało ten wykres, to w odróżnieniu od paru innych programów CAS, nic złego się nie stanie. Nowy wykres zostanie wykonany, ale ten z poprawkami zostanie dalej w notatniku. W ten sposób możemy wykonać serię rysunków, a następnie wybrać ten optymalny dla nas. Uwaga techniczna Zarówno ta, jak i inne ilustracje na dalszych stronach tego tekstu, zostały zapisane bezpośrednio z programu Mathematica jako pliki wektorowe EPS.Wpewnych przypadkach, gdy grafika była bardzo skomplikowana z licznymi przezroczystymi wypełnieniami, wykres byłzapisany jako TIF (format rastrowy). W każdym przypadku wciśnięcie prawego guzika myszy na rysunku do zapisania pokazuje menu gdzie wybieramy Save Graphics as i dalej wybieramy odpowiedni format dla naszego pliku graficznego. 27

Mirosław Majewski 8 2 x cos 10 x 2.466, 2.453 6 y 2 x 4 y = x 2 0.5 1.0 1.5 2.0 2.5 3.0 Rys. 2.2 Wykres po poprawkach z użyciem narzędzi Po zapoznaniu się z narzędziami do modyfikacji grafiki, możemy przystąpić do systematycznego przeglądu poleceń graficznych i ich parametrów. 2.2 Wybrane parametry użyteczne w wykresach 2D Parametry w poleceniach wykresów przychodzą zawsze po deklaracji zakresu zmiennej, względem której robimy wykres. Możemy tu mieć dwie grupy parametrów te dotyczące ogólnego kształtu wykresu oraz te dotyczące poszczególnych funkcji jakie wykreślamy. Jeśli wykreślamy kilka funkcji na raz to parametry każdej z nich powinny być zgrupowane nawiasem klamrowym. W takim przypadku, polecenia grafiki robią się dość rozbudowane i skomplikowane. Możemy zapobiec temu dzieląc polecenie na kilka linii. Efekt ten uzyskamy wciśnięciem klawisza [Enter wmiejscu gdzie chcemy podzielić nasz kod. Struktura takiego polecenia może wyglądać jak poniżej. Plot[{f1[x,f2[x,f3[x},{x,a,b}, PlotStyle { {parametry dla funkcji f1}, {parametry dla funkcji f2}, {parametry dla funkcji f3} }, parametr ogolny wykresu, inny parametr ogolny wykresu, jeszcze inny parametr ogolny wykresu Jeśli mamy wykres tylko jednej funkcji to sytuacja się znacznie upraszcza, znikają nam pewne nawiasy klamrowe. 28

Mathematica dla niecierpliwych 2.2.1 Proporcje i zakres wykresu WprawdziejużwmomenciepisaniapoleceniaPlot musimy zadeklarować zakres zmiennej dla której robimy wykres, ale ciągle jeszcze pozostają wartości funkcji, które też czasem chcemy jakoś ograniczyć lub powiększyć. Robimy to za pomocą parametru PlotRange {y min,y max} W pewnych sytuacjach możemy sobie uprościć zadanie podając parametr PlotRange liczba, i w takim przypadku wykres jest robiony od liczba do liczba. Oto jak to wygląda w przypadku wykresu funkcji oscylator i jej dodatków. Plot[{oscylator[x, x, 2^( x), 2^(x)}, {x, 0, Pi}, PlotRange {0, Pi} 3.0 2.5 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 Wielokrotnie wykresy otrzymane w CAS mają zniekształcone proporcje jednostek jednej osi w stosunku do drugiej osi. Jest to spowodowane tym, że programy CAS starają się wykonać rysunek jak najbardziej użyteczny do dalszych zastosowań najczęściej do drukowania. Dla przykładu, czytelnik może z łatwością zauważyć, że każdy z wykresów w tym rozdziale ma inne długości jednostek na osi OX iosioy. Możemy tego z łatwością uniknąć deklarując w odpowiedni sposób AspectRatio. Plot[{oscylator[x, x, 2^( x), 2^(x)}, {x, 0, Pi}, PlotRange {0, Pi}, AspectRatio Automatic 29

Mirosław Majewski 3.0 2.5 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 Tu otrzymaliśmy wykres w którym jednostki na każdej osi mają tę samą długość. Inne wartości AspectRatio powodują otrzymanie wykresów o specyficznych proporcjach wymiarów. Parametr AspectRatio proporcje wykresu AspectRatio Automatic osie mają równe jednostki AspectRatio 1 1:1 AspectRatio 3/4 4:3 (jak ekran TV) AspectRatio a/b b:a 2.2.2 Osie układu współrzędnych, siatka i ramka W licznych przypadkach zachodzi potrzeba dokonania zmian w tym jak wykreślane są osie układu współrzędnych, dołożenia do wykresu siatki czy ramki. Siatkę dla naszego wykresu możemy zdefiniować bardzo precyzyjnie podając punkty, gdzie powinny wystąpić linie siatki, np. tak GridLines {{1, 2, 3}, {0.5, 1, 1.5, 2, 2.5, 3}} Tu pierwszy nawias klamrowy zawiera przecięcia się linii siatki z osią 0X, drugi nawias przecięcia się siatki z osia 0Y. A oto całe polecenie i otrzymany wykres. Plot[{oscylator[x, x, 2^( x), 2^(x)}, {x, 0, Pi}, PlotRange {0, Pi}, AspectRatio 3/4, GridLines {{1, 2, 3}, {0.5, 1, 1.5, 2, 2.5, 3}} 30