Państwowa Wyższa Szkoła Zawodowa
w Chełmie
Instytut Matematyki i Informatyki
Specjalność Matematyka z Informatyką
Joanna Kisielewska
Nr albumu 1860
MathCAD – możliwości
i zastosowanie w matematyce
Praca licencjacka
napisana pod kierunkiem
prof.dr hab. Krzysztofa Murawskiego
Chełm 2007
Oświadczenie o autorstwie pracy
Oświadczam, że niniejszą pracę przygotowałem/przygotowałam
∗
samodzielnie.
Wszystkie dane, definicje, wzory i sformułowania pochodzące z literatury są opa-
trzone odpowiednimi odsyłaczami. Praca przedłożona do oceny nie była dotychczas
publikowana w żadnej formie.
Imię i nazwisko autora pracy
.............................................................
(data i podpis autora pracy)
∗
niepotrzebne skreślić
Spis treści
Wstęp
5
Cel i zakres pracy
6
1 Ogólna charakterystyka programu MathCAD
7
2 Środowisko aplikacji
9
2.1 Podstawy tworzenia dokumentów . . . . . . . . . . . . . . . . . . . . 11
2.2 Definiowanie zmiennych . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Podstawowe zastosowanie MathCAD’a
15
3.1 Rozwiązywanie równań i ich układów . . . . . . . . . . . . . . . . . . 15
3.2 Operacje na macierzach . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Liczby zespolone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 Jednostki miar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4 Zaawansowane zastosowanie MathCAD’a
33
4.1 Pochodne i całki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Rozwijanie funkcji w szereg Taylora . . . . . . . . . . . . . . . . . . . 35
4.3 Możliwości programowania . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4 Tworzenie i formatowanie wykresów . . . . . . . . . . . . . . . . . . . 41
5 Projekt własny – prezentacja metody Rungego – Kutty rozwiązy-
wania równań różniczkowych
48
5.1 Opis projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.2 Kod programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Zakończenie
54
Bibliografia
55
Załączniki
56
Wstęp
Matematyka jest bardzo skomplikowaną dziedziną nauki. Rozwiązując niektóre ma-
tematyczne poblemy zdecydowaną większość czasu poświęcamy na dokonywanie ob-
liczeń. Niekiedy są one bardzo skomplikowane i żmudne. Nie zawsze również prowa-
dzą do oczekiwanych przez nas rezultatów. Mały błąd w rachunkach na początku
obliczeń sprawia, że wynik znacznie odbiega od tego, jaki chcemy uzyskać. Aby
ułatwić życie wielu osobom, które z obliczeniami matematycznymi mają styczność
na co dzień, opracowano szereg programów i pakietów matematycznych. Aplikacje
takie sprawiają, że inżynierowie nie siedzą już nad kartką z ołówkiem w ręku wyko-
nując obliczenia – teraz liczy za nich komputer i specjalistyczne oprogramowanie na
nim zainstalowane.
Opracowano już wiele aplikacji służących do dokonywania obliczeń matematycz-
nych: Mathematica, MatLab, Maxima, MathCAD. Każdy z nich w mniejszym lub
większym stopniu znajduje zastosowania w praktyce. Wszystkie mają jedną i nie-
powtarzalną właściwość, że potrafi w mgnieniu oka policzyć, coś, na co człowiek
z pewnością straciłby przynajmniej dłuższą chwilę.
W przedstawionej pracy postaram się zaprezentować możliwości jednego z wy-
mienionych wcześniej programów: MathCAD. Mam nadzieję, że po zapoznaniu się
z treścią pracy czytelnik doceni możliwości tej apkikacji i zacznie się posługiwać nią
w codziennym dokonywaniu skomplikowanych i czasochłonnych obliczeń.
Cel i zakres pracy
Popularność aplikacji typu CAD
1
zmotywowała, by uczynić programy tego typu
możliwie prostymi, a zarazem niezwykle użytecznymi przy obliczeniach matema-
tycznych. Kolejne rozdziały pracy ukazują potencjał programu MathCAD. Pre-
zentowane możliwości pakietu mają na celu przybliżenie sposobów rozwiązywania
problemów matematycznych.
Praca składa się z pięciu rozdziałów. Pierwszy rozdział jest ogólną charakterystyką
MathCAD’a. W drugim rozdziale przedstawiony jest zakres wiadomości ułatwia-
jących wykonanie prostych operacji, poznanie obsługi edytora i środowiska aplika-
cji. Trzeci rozdział stanowi przegląd podstawowych możliwości wykorzystywanych
w programie. Czwarty rozdział ukazuje zaawansowane zastosowania MathCAD’a.
W ostatnim rozdziale zaprezentowany jest projekt własny, prezentujący metodę
Rungego – Kutty rozwiązywania równań różniczkowych.
1
CAD (ang. Computer Aided Design) – komputerowe wspomaganie projektowania
Rozdział 1
Ogólna charakterystyka programu
MathCAD
MathCAD to wysokiej jakości program obliczeniowy napisany przez firmę
MathSoft r
°Inc. w 1986 roku. MathSoft r
°Inc. systematycznie rozwija kolejne i co-
raz lepsze wersje aplikacji, a ponadto upowszechnia materiały i opracowania pomoc-
ne do pracy z programem. W Polsce dystrybucją MathCAD’a i literatury dotyczącej
programu zajmuje się wyłącznie firma GAMBIT
1
. MathCAD stanowi dużo tańszą
alternatywę w porównaniu do tak wyrafinowanych narzędzi, jakimi są Mathematica
oraz Matlab. Ze względu na łatwość obsługi MathCAD jest powszechnie używa-
ny zarówno przez profesjonalnych inżynierów, profesorów, jak i studentów szkół
wyższych. Aplikacja posiada zintegrowane środowisko, które łączy funkcjonalność
aparatu obliczeniowego z możliwościami procesora tekstu. MathCAD nie oddziela
przebiegu rozwiązywania problemu matematycznego od sporządzania dokumenta-
cji oraz prezentacji danych. Wszystkie te zadania spełniane są równocześnie wraz
z tworzeniem pojedynczego aktywnego dokumentu. Wprowadzone dane wejściowe
i funkcje można dowolnie modyfikować, program dokona wszystkich poszczególnych
operacji i wyświetli nowy wynik. Co ważniejsze wartości liczbowe mogą być wpi-
sywane w dowolnych jednostkach miar. MathCAD wykona odpowiednich konwer-
sji, automatycznie przeliczy i zagwarantuje poprawny wynik. Najwygodniejsze jest
jednak definiowanie zmiennych i deklarowanie równań. MathCAD kontrastowo do
innych programów matematycznych, języków programowania, czy arkuszy kalkula-
1
Największy w Polsce dystrybutor oprogramowania naukowo-technicznego.
1. OGÓLNA CHARAKTERYSTYKA PROGRAMU MATHCAD
8
cyjnych nie wymusza od użytkownika znajomości specjalistycznych formuł. Sposób
wprowadzania liczb, wzorów, równań w obszarze roboczym MathCAD’a niewiele
odbiega od zapisów odręcznych lub stosowanych w większości podręczników. Z ra-
cji całkowicie obiektowej budowy dokumentu, wszelkie wyrażenia można sytuować
w dowolnym miejscu, lub wykorzystać w innych aplikacjach. Na porównywalnej za-
sadzie wstawia się do arkusza pliki z zewnętrznych programów m.in. wygenerowane
rysunki, które posiadają parametry zależne od danych znajdujących się w dokumen-
cie MathCAD’a. Mimo wszystko należy podkreślić szerokie możliwości programu
w tworzeniu wykresów 2D i 3D. Aplikacja potrafi przedstawić wizualizacje obliczeń
numerycznych, a ponadto pozwala na oglądanie wykresu lub animacji z dowolnej
perspektywy. Program wykorzystuje imponujący aparat matematyczny, dzięki któ-
remu można rozwiązywać standardowe obliczenia numeryczne, a także operować
na symbolach. Zanim wartość wyrażenia zostanie wyznaczona, najpierw trzeba
podstawić wartości zmiennych do uprzednio wyprowadzonego wzoru. Ponadto dwa
procesory MathCAD’a numeryczny i symboliczny są w stanie ze sobą współdziałać.
Oznacza to, że przed rozpoczęciem przybliżonych obliczeń numerycznych program
wcześniej sprowadzi wzór do jego najprostszej postaci. Aplikacja zawiera również
potężną bibliotekę funkcji matematycznych. Wbudowane funkcje mogą okazać się
użyteczne w kombinatoryce, statystyce, finansach, logice, trygonometrii i w wielu in-
nych dziedzinach. Program potrafi dokonywać operacji na liczbach zespolonych, na
wektorach i macierzach, może rozwiązywać układy równań liniowych i nieliniowych,
wyznaczać transformaty Fouriera i Laplace’a, rozwiązywać równania różniczkowe
zwyczajne i cząstkowe. Ale to nie wszystkie możliwości MathCAD’a – doskona-
le sprosta również obsłudze ciągu znaków, sortowaniu, zaokrąglaniu i generowaniu
liczb losowych. Udostępnia instrukcje warunkowe, iteracyjne oraz nadzorujące bez-
błędność wykonania.
Podsumowując ogólną charakterystykę programu, można bez wątpienia stwierdzić,
że MathCAD jest doskonałym narzędziem ułatwiającym pracę w zakresie skompli-
kowanych operacji zarówno matematycznych jak i zagadnień technicznych.
Rozdział 2
Środowisko aplikacji
MathCAD wykazuje podobieństwo do standardowego interfejsu użytkownika zna-
nego ze środowiska Windows. Korzystanie z suwaków, menu i paska narzędzi jest
niemalże identyczne, jak w innych aplikacjach. Stosuje się także zbliżony, choć
o wiele bardziej uproszczony, sposób edycji wyrażeń matematycznych jak w edy-
torze równań Microsoft Equation z pakietu Microsoft Office. Praca w polu edycji
programu MathCAD jest w pełni intuicyjna. Trafną analogią dla nowego dokumen-
tu jest „tabula rasa
1
”, na której umieszczane są dane, wzory, definicje i komentarze
dotyczące poszczególnych etapów rozwiązań. Menu główne programu umieszczone
jest u góry okna. Znajduje się na nim zestaw poleceń potrzebnych do kreowania
arkuszy obliczeniowych (Rys. 2.1).
Rysunek 2.1: Obszar roboczy
1
łac. „niezapisana tablica”.
2. ŚRODOWISKO APLIKACJI
10
Po uruchomieniu aplikacji dodatkowo mogą otworzyć się okna z tzw. „Poradą
dnia” (Tip of the Day) oraz Centrum Zasobów Pomocy (Resource Center) - oferu-
jące m.in. dostęp do samouczków (Tutorials) i przykładów (Quick Sheets). Można
zamknąć te okienka, a w razie potrzeby otworzyć z menu Help. Użytkownik ma
do dyspozycji trzy paski narzędzi (Toolbars). Pasek Standard służy do wykonywa-
nia podstawowych operacji na dokumentach (nowy, otwórz, zapisz, drukuj), schow-
ku (cofnij, wytnij, kopiuj, wklej), sprawdzaniu ortografii, wyrównywaniu regionów,
wstawianiu funkcji oraz jednostek. Pasek Formatting służy do formatowania akapi-
tów i obszarów tekstowych. Natomiast przy pomocy przycisków znajdujących się na
pasku Math (Rys. 2.2) można wykonać wszystkie operacje matematyczne. Dostępny
jest również pasek stanu – Status Bar i linijka – Ruler.
Rysunek 2.2: Pasek do włączania widoczności poszczególnych palet sym-
boli matematycznych
Symboli na palecie Math jest wiele. Najważniejsze będą wyjaśnione przy oma-
wianiu poszczególnych operacji. Poniżej zostaną wymienione podstawowe nazwy
palet, grup symboli i operacji:
• Calculator – działania takie jak na kalkulatorze,
2. ŚRODOWISKO APLIKACJI
2.1 Podstawy tworzenia dokumentów
11
• Matrix – operacje wektorowe i macierzowe,
• Calculus – analiza matematyczna (całki, pochodne, sumy, iloczyny, granice),
• Programming – operatory programowania,
• Symbolic – przekształcenia symboliczne (działania na wzorach),
• Greek – litery greckie,
• Boolean – relacje i operacje logiczne,
• Evaluation – m.in. symbole przypisywania zmiennym wartości,
• Graph – wstawianie różnego rodzaju wykresów.
2.1
Podstawy tworzenia dokumentów
MathCAD umieszcza wszystkie wyrażenia, komentarze, wyniki i wykresy funkcji
w prostokątnych polach, które nazywamy regionami.
Dokument MathCAD’a można sporządzać używając czterech typów regionów
2
:
• tekstowych – wstawianych klawiszem cudzysłowu i zawierających dowolne tek-
sty istotne dla czytelności dokumentu, lecz zupełnie nie mające wpływu na
obliczenia;
• matematycznych – zawierających m.in.: nazwy wektorów i macierzy, liczne
operatory, funkcje, symbole potęg, pierwiastków, sum, pochodnych, całek,
a także jednostki miar, wyznaczniki, tabele i mnóstwo innych;
• wykresów – dwu i trój-wymiarowych;
• obrazów – importowanych z innych programów.
Każdy region w dokumencie można dowolnie przesuwać, kasować lub kopiować,
aby uzyskać stosowną postać dokumentu. Edytowanie regionu po kliknięciu na niego
myszką powoduje, że w tym obszarze pojawia się pionowa kreska będąca punktem
wstawienia. Nawigacja wewnątrz regionu odbywa się za pomocą strzałek i klawiszy
2
http://adam.imir.agh.edu.pl/dydakt/mcad/wpr mcad.pdf
2. ŚRODOWISKO APLIKACJI
2.2 Definiowanie zmiennych
12
Home, End. Do zmiany zakresu edycji regionu używany jest klawisz spacji, na-
tomiast klawiszem Insert ustalane jest początkowe lub końcowe położenie punktu
wstawiania w edytowanym regionie. Podczas pracy z programem należy pamiętać
o kolejności i sposobie rozmieszczania regionów. Realizowane czynności powinny być
dostosowane do przyjętego algorytmu obliczeniowego. W aplikacji w niedokończo-
nych definicjach równań, zmiennych bądź wykresach pojawia się w postaci małego
prostokąta znacznik braku (Rys. 2.3). Region taki należy wówczas uzupełnić braku-
jącymi elementami.
Rysunek 2.3: Znacznik braku
2.2
Definiowanie zmiennych
Definiowanie zmiennej w programie przypomina typowy zapis stosowany w mate-
matyce i niektórych językach programowania. Zmienna jest obiektem posiadającym
nazwę – identyfikator, który odróżnia go od innych zmiennych oraz przechowuje
wartość – daną określonego typu. Wartość ta może się zmieniać, zachowując ten
sam typ. Typ wartości określony jest przez rodzaj i strukturę danych.
Najważniejsze typy danych:
• skalar – pojedyncza liczba,
• zakres – ciąg typu postęp arytmetyczny,
• tablica – wektor lub macierz,
• łańcuch znaków – tekst ujęty w cudzysłowy.
Zmienna osiąga określony typ przy pierwszym nadaniu jej wartości:
• zmienna skalarna
x1 := 24.51,
2. ŚRODOWISKO APLIKACJI
2.2 Definiowanie zmiennych
13
• zmienna zakresowa
x2 := 0.2, 0.4 .. 1.6,
• zmienna tablicowa
x3 :=
4 −2.5
3
0
2
−1
• zmienna znakowa
x4 := „To jest przykładowe zdanie”.
Instrukcje przypisywania wartości zmiennym są najczęściej występującymi regio-
nami w dokumencie, używane są w bloku danych, we wzorach i obliczeniach. Każda
definicja zmiennej składa się z trzech części:
nazwa zmiennej; znak przypisania; wyrażenie
Wyróżniamy:
• definicję zmiennej o zasięgu lokalnym, używającą znaku „:=”,
• definicje o charakterze globalnym, zawierającą znak „≡”.
Deklaracja zmiennej lokalnej ma postać:
zmienna := wyrażenie
W wyrażeniu zapisanym po prawej stronie definicji należy użyć tylko tych zmien-
nych, które posiadają już konkretne wartości. To znaczy określonych w poprzedniej
części dokumentu (powyżej bądź na lewo od miejsca, w którym jest to wyrażenie).
Wynika to z faktu, że wartość każdej zmiennej zdefiniowanej lokalnie jest dostępna
tylko dla następnych regionów – umieszczonych na prawo lub poniżej. Przeważnie
dla obliczeń stosowane są definicje lokalne, ponieważ mają one wpływ na logiczny
porządek dokumentu, a ponadto sprzyjają jego poprawności. Jeśli jednak istnieje
konieczność podstawienia wartości danych nie na początku, lecz na końcu dokumen-
tu, to należy zastosować globalną definicję zmiennej.
Deklaracja zmiennej globalnej ma postać:
zmienna ≡ wyrażenie
Wartość zmiennej globalnej jest widoczna przez program w całym dokumencie.
Podobnie jak w przypadku użycia zmiennej lokalnej, również i tu obowiązuje ko-
lejność: najpierw wpisywane są dane, a potem obliczenia. Takie cechy definicji
globalnej wynikają z faktu, że po uruchomieniu obliczeń najpierw wykonywane są
2. ŚRODOWISKO APLIKACJI
2.2 Definiowanie zmiennych
14
po kolei wszystkie definicje globalne. Następnie wykonywane są kolejno definicje
lokalne
3
.
MathCAD wymusza dostosowywanie się do jednakowych reguł tworzenia nazw
dla wszystkich typów. Ważne jest przestrzeganie następujących zasad
4
:
• nazwy zmiennych muszą zaczynać się od litery (mogą być wieloliterowe, mo-
gą zawierać tylko duże i małe litery alfabetu angielskiego oraz cyfry i znak
podkreślenia),
• wszystkie znaki w nazwie zmiennej muszą mieć ten sam format (rodzaj, wiel-
kość czcionki), MathCAD rozróżnia zmienne napisane różnymi czcionkami,
• program rozróżnia małe i wielkie litery,
• nazwy zmiennych muszą być inne niż nazwy funkcji, nazwy stałych i nazwy
jednostek miar.
Jeżeli zmienna zostanie nieprawidłowo zdefiniowana lub nie została wcześniej
określona, pojawi się komunikat o błędzie. W tej sytuacji algorytm nie będzie re-
alizowany. Należy wówczas zweryfikować wprowadzone formuły i użyć właściwego
zapisu.
3
Bodnar A., Dziewiałtowski W., Ziębakowski T., MathCAD instrukcja do ćwiczeń laboratoryj-
nych z informatyki, Politechnika Szczecińska, Wydział Mechaniczny, Szczecin 2002
4
http://adam.imir.agh.edu.pl/dydakt/mcad/wpr mcad.pdf
Rozdział 3
Podstawowe zastosowanie
MathCAD’a
W poniższym rozdziale zostaną zaprezentowane możliwości MathCAD’a na przy-
kładach zagadnień z podstaw algebry. Przegląd zdolności programu rozpocznie się
od przedstawienia sposobów rozwiązywania równań i ich układów. Następnie omó-
wione będą operacje macierzowe, działania na liczbach zespolonych oraz dostępny
w aplikacji wbudowany system jednostek miar.
3.1
Rozwiązywanie równań i ich układów
Problematyka rozwiązywania równań i układów równań to jedno z podstawowych
zagadnień algebry liniowej. MathCAD dysponuje dość silnymi narzędziami, które
pozwalają użytkownikowi znaleźć rozwiązanie równania. Program oferuje różne spo-
soby rozwiązywania równań. Najważniejsze i najbardziej pomocne metody zostaną
omówione i zaprezentowane na prostych przykładach poniżej.
Przy rozwiązywaniu równań z jedną niewiadomą, wystarczająco skuteczna może
być funkcja solve, która wywoływana jest z palety Symbolic.
¥ solve, ¥ →
Po lewej stronie słowa kluczowego solve powinno znajdować się wyrażenie, po stronie
prawej, po przecinku, wpisywana jest nazwa zmiennej
1
. Użycie polecenia solve
ilustrują przykłady:
1
Sokół M., MathCAD leksykon kieszonkowy, Wydawnictwo Helion, Gliwice 2005
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.1 Rozwiązywanie równań i ich układów
16
Równanie kwadratowe:
ax
2
+ bx + c = 0 solve, x →
1
2a
[−b + (b
2
− 4ac)(
1
2
)]
1
2a
[−b − (b
2
− 4ac)(
1
2
)]
Deklarując równanie należy pamiętać o pogrubionej postaci znaku równości, któ-
ry wybierany jest za pomocą kombinacji dwóch klawiszy Ctrl+ =. Poszukiwanie
pierwiastków równania za pomocą MathCAD’a nie wymusza wpisywania znaku :=.
Równanie można wprowadzić w następujący sposób:
x
2
+ x − 2 solve, x →
−2
1
Równanie kwadratowe z parametrem:
a :=
1
2
x
2
2
+ x = 1 + a solve, x →
−3
1
Układ równań:
3x + 6y = 9
2x + y = 4
!
solve,
x
y
!
→
5
3
2
3
= (1.667 0.667)
W programie poza funkcją solve można podobnie zastosować funkcję lsolve,
która zwraca taki sam wynik jak funkcja solve, lecz układ równań rozwiązywany
jest inną metodą. Komenda lsolve zwraca wektor u będący rozwiązaniem równania:
M · u = v
Argumenty występujące w wyrażeniu oznaczają:
• M – macierz kwadratowa elementów rzeczywistych lub zespolonych, której
wyznacznik jest różny od zera,
• v – wektor o elementach rzeczywistych lub zespolonych.
Wykorzystanie polecenia lsolve zostanie zilustrowane na podstawie układu równań
z poprzedniego przykładu:
3x + 6y = 9
2x + y = 4
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.1 Rozwiązywanie równań i ich układów
17
Aby rozwiązać dany układ należy stworzyć macierz współczynników przy nie-
wiadomych i wektor wyrazów wolnych, a następnie wpisać funkcję lsolve wraz z pa-
rametrami:
M :=
3 6
2 1
v :=
9
4
lsolve(M , v ) =
1.667
0.667
MathCAD w prosty i szybki sposób wygenerował poprawny wynik. Aplikacja
oprócz wspomnianych funkcji solve i lsolve oferuje użytkownikowi również polecenia
do wyznaczania miejsc zerowych (pierwiastków) wielomianów. Szczególnie użytecz-
ne mogą być funkcje root i polyroots. Komenda root, występująca w starszych
wersjach programu, pozwala wyznaczyć pojedynczy pierwiastek wielomianu, naj-
bliższy podanemu punktowi startowemu. Aby rozwiązać za pomocą MathCAD’a
równanie z jedną niewiadomą wystarczy użyć funkcji:
root(f (var1, var2, . . .), var1, [a, b])
Gdzie:
• f – jest funkcją skalarną dowolnej liczby zmiennych, funkcja f może mieć
więcej niż jeden argument,
• var1 – jest argumentem funkcji f , zmienną zależną względem, której szukane
są pierwiastki; jeśli rozwiązanie ma być w przedziale liczb zespolonych, wartość
początkową zmiennej var1 należy podać w postaci zespolonej,
• a, b (opcjonalne) – liczby rzeczywiste, a < b, stanowią granice przedziału,
w którym szukane są miejsca zerowe funkcji.
Wynikiem działania funkcji root jest taka wartość var, dla której wyrażenie przyj-
muje wartość zero, f = 0. Jeżeli wyspecyfikowane są parametry a i b, wówczas
funkcja znajduje miejsca zerowe w przedziale (a, b). Wartości początkowe zmien-
nych zależnych vari muszą być zadeklarowane przed wywołaniem polecenia root.
W przypadku, gdy funkcja ma kilka pierwiastków, to wartość początkowa musi
wskazywać na każdy z nich. Dla wizualnego sprawdzenia warto sporządzić wykres
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.1 Rozwiązywanie równań i ich układów
18
przebiegu funkcji tak jak zostało przedstawione w poniższym przykładzie
2
(Rys. 3.1)
x := −10, −9.9 .. 15
f (x) := x
2
− 3x − 55
Rysunek 3.1: Wykres funkcji i jej pierwiastków
Wartości początkowe: Obliczone pierwiastki funkcji f(x):
x := -5
root(f(x), x) = -6.066
x := 5
root(f(x), x) = 9.066
Jeśli użycie polecenia root nie umożliwi znalezienie pierwiastka równania i spowoduje
wystąpienie błędu, wówczas może to oznaczać, że:
• badane wyrażenie nie ma miejsc zerowych,
• wartości początkowe są nieodpowiednio dobrane, zbyt odległe od przybliżenia
początkowego,
• występują lokalne maksima lub minima w przedziale między wartością starto-
wą a zerową,
• pierwiastek wyrażenia jest zespolony, zaś wartość początkowa zadeklarowana
została jako rzeczywista.
Za pomocą polecenia root można rozwiązać także równanie przestępne
3
.
Niech dane będą dwie funkcje:
2
Pietraszek J., MathCAD. Ćwiczenia praktyczne, Wydawnictwo HELION, Gliwice 2002
3
Równanie matematyczne, w którym występują przestępne funkcje działające na argumenty
niewiadome (np. równania trygonometryczne lub logarytmiczne).
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.1 Rozwiązywanie równań i ich układów
19
f (x) = ln(x + 1)
g(x) = sin(x)
Aby znaleźć takiego x, dla którego f (x) = g(x) należy zadeklarować równania i wy-
konać pomocny wykres.
f (x) := ln(x + 1)
g(x) := sin(x)
Rysunek 3.2: Wykres funkcji f (x) i g(x)
Jak widać na wykresie (Rys. 3.4) rozwiązanie zlokalizowane jest w okolicach
x := 2. Tak więc pozostaje zastosować funkcję root z odpowiednimi parametrami,
aby program wyznaczył rozwiązanie:
x := 2
root(f (x) − g(x), x) = 1.697
Do obliczania pierwiastków wielomianu n – tego stopnia należy używać w progra-
mie funkcji polyroots(v), gdzie v jest wektorem rzeczywistym lub zespolonym współ-
czynników. Pierwszym elementem wektora v jest wyraz wolny, a ostatnim współ-
czynnik przy wyrazie z najwyższą potęgą. Definiując wektor wielomianu nie można
pominąć współczynników zerowych. Funkcja polyroots(v) nie wymaga wartości po-
czątkowych w przeciwieństwie do polecenia root. Użycie procedury polyroots(v)
do znajdowania miejsc zerowych wielomianu można przedstawić na następującym
przykładzie
4
:
• Podanie definicji funkcji:
f (x) := x
3
− 10x + 2
• Zastosowanie procesora symbolicznego
5
do znalezienia współczynników wielo-
4
Regel W., MathCAD przykłady zastosowań, Wydawnictwo MIKOM, Warszawa 2004
5
W miejsce „ręcznego” wprowadzania wektora współczynników, zastosowana jest wbudowana
w aplikacji funkcja coef f s z palety Symbolic.
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.1 Rozwiązywanie równań i ich układów
20
mianu:
w := f (x ) coeffs, x →
2
−10
0
1
• Zastosowanie funkcji polyroots(v) do wyznaczania pierwiastków wielomianu:
z := polyroots(w)
• Wygenerowanie transponowanego wektora rozwiązania przy wartości parame-
tru
6
T OL = 0.001:
z
T
= (−3.258 0.201 3.057)
• Określenie przedziałów odpowiednich zmiennych pomocniczych:
x := −4, −3.99, .. 4
j := 0, 1 .. 2
• Zilustrowanie otrzymanego rozwiązania w postaci graficznej (Rys. 3.3):
Rysunek 3.3: Wykres wielomianu i jego pierwiastków
Poza omówionymi powyżej metodami warto korzystać w programie MathCAD
także z bloku Given − F ind rozwiązującego układ równań. Za pomocą tego bloku
w prosty sposób można poszukiwać rozwiązanie układu równań, szczególnie nieli-
niowych. Składnia funkcji F ind jest następująca:
F ind(var1, var2, ...)
Gdzie:
• var1, var2, . . . – to liczby rzeczywiste lub zespolone, wartości startowe, które
koniecznie należy zadeklarować.
6
Błąd względny, domyślna dokładność obliczeń w programie to 10
−3
.
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.1 Rozwiązywanie równań i ich układów
21
Procedura F ind zwraca wektor wartości zmiennych, będący rozwiązaniem ukła-
du równań. Liczba argumentów funkcji odpowiada liczbie szukanych zmiennych.
MathCAD podaje wynik w postaci skalara, gdy szukana jest tylko jedna wartość
bądź w formie wektora, jeśli rozwiązywany jest układ równań. Aplikacja może roz-
wiązywać układ nawet do dwustu równań
7
.
Przy poszukiwaniu rozwiązania układu równań nieliniowych należy postępować w ni-
niejszy sposób:
• Zadeklarować przybliżone wartości startowe zmiennych,
• Wpisać słowo kluczowe Given, czyli dane (równania i ewentualne ograniczenia
w postaci nierówności); liczba równań i nierówności nie może być mniejsza od
liczby niewiadomych,
• Wpisać funkcję F ind z listą zmiennych.
Zestaw instrukcji zawartych między procedurą Given a funkcją F ind tworzy blok.
Oto prosty przykład
8
rozwiązania układu dwóch równań nieliniowych z dwoma nie-
wiadomymi:
x
2
+ y
2
= 6 z ograniczeniami x ¬ 1, y > 2
x + y = 2
• Szacowanie wartości początkowych (punktów startowych):
x := 1
y := 1
• Zastosowanie bloku Given − F ind, wpisanie równań i ograniczeń (z twardymi
znakami równości pisanymi pogrubioną czcionką):
Given
x
2
+ y
2
= 6
x + y = 2
x ¬ 1
y > 2
x
res
y
res
:=Find(x,y)
7
Sokół M., MathCAD leksykon kieszonkowy, Wydawnictwo HELION, Gliwice 2005
8
Pietraszek J., MathCAD. Ćwiczenia praktyczne, Wydawnictwo HELION, Gliwice 2002
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.1 Rozwiązywanie równań i ich układów
22
• Rezultat obliczeń i wydruk w postaci graficznej:
x
res
= −0.414
y
res
= 2.414
Rysunek 3.4: Wykres funkcji x
2
+ y
2
= 6 oraz x + y = 2
Ograniczenia w bloku nie są konieczne. Użycie ich sprawiło odrzucenie przez pro-
gram drugiego rozwiązania równań, na wykresie (Rys. 3.4) prawego, dolnego punktu
przecięcia prostej z okręgiem.
Procedura F ind oblicza dokładne wartości rozwiązania. Jednak bywają przypad-
ki, gdy MathCAD nie potrafi znaleźć rozwiązania numerycznego przy wykorzystaniu
funkcji F ind, wówczas należy poszukiwać rozwiązania przybliżonego, z minimalnym
błędem, używając procedury MinErr. Składnia funkcji jest następująca:
MinErr(var1, var2, . . .)
Gdzie:
• var1, var2, . . .- podobnie jak w przypadku funkcji F ind są to liczby rzeczywiste
lub zespolone, będące punktami startowymi.
Funkcja MinErr oblicza wartości niewiadomych var1, var2, . . ., które najlepiej speł-
niają układ równań lub nierówności zawartych w bloku. Liczba argumentów funkcji
odpowiada liczbie szukanych zmiennych. Wynik ma postać skalara, jeśli szukana
jest tylko jedna wartość, lub wektora, gdy rozwiązywany jest układ równań.
Zastosowanie funkcji MinErr można prześledzić na poniższym przykładzie
9
:
(x − 2)
2
+ (y − 2)
2
= 1
(x + 1)
2
+ (y +
1
2
)
2
= 7
9
Paleczek W., MathCAD w algorytmach, Wydawnictwo EXIT, Warszawa 2005
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.1 Rozwiązywanie równań i ich układów
23
• Wprowadzenie wartości startowych:
x := −13 y := −13
• Wpisanie bloku Given − MinErr (znak równości Ctrl+ =):
Given
(x − 2)
2
+ (y − 2)
2
= 1
(x + 1)
2
+ (y +
1
2
)
2
= 7
x
y
:=MinErr(x,y)
• Wydruk wartości rozwiązania:
x
y
=
1.093
1.204
• Sprawdzenie wartości obu funkcji przez podstawienie wartości z rozwiązania
i przedstawienie wykresu funkcji:
(x − 2)
2
+ (y − 2)
2
= 1.456
(x + 1)
2
+ (y +
1
2
)
2
= 7.285
Rysunek 3.5: Wydruk rozwiązania układu równań w postaci graficznej
Na wykresie (Rys. 3.5) okazuje się, że obie funkcje nie posiadają punktów wspólnych.
Przybliżone rozwiązanie rozpatrywanego układu równań to naniesiony na wykresie
punkt oznaczony kropką, który został podany przez procedurę MinErr.
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.2 Operacje na macierzach
24
3.2
Operacje na macierzach
Macierz w programie jest zdefiniowana jako prostokątna tablica, w której wyróżnia-
my wiersze (rows) i kolumny (columns). Zmienną, która określa macierze lub ogólnie
tablice nazywamy zmienną tablicową. MathCAD umożliwia definiowanie macierzy
na różne sposoby. Prostą i szybką metodą można wskazać kursorem początkowy
punkt i nacisnąć klawisze Ctrl + M lub skorzystać z pierwszej ikony palety Matrix
(Rys. 2.2), następnie w oknie dialogowym Insert Matrix podać wymiary macierzy
i wypełnić poszczególne komórki. Elementami macierzy nie muszą być wyłącznie
liczby, mogą być to wyrażenia liczbowe, stałe lub zmienne typu string ujęte w cu-
dzysłowy. W jednej macierzy mogą występować elementy różnych typów.
W programie indeksy wierszy i kolumn mają domyślnie ustawioną wartość począt-
kową 0. Jeżeli użytkownikowi zależy na tym, aby indeksy zaczynały się od 1, może
napisać dużymi literami polecenie ORIGIN z podaniem wartości argumentu 1:
ORIGIN ≡ 1
Oczywiście funkcja wpisana w taki sposób odnosi się do całego arkusza roboczego.
Zmiennymi indeksowanymi można odwoływać się do poszczególnych elementów ma-
cierzy. Na przykład, aby odwołać się do elementu A[0, 2] z poniższej macierzy:
A :=
−2.1
5.4
3.1
1.4
1.9 −0.5
2.5 −4.8
1.6
należy wpisać nazwę macierzy, wcisnąć klawisz z lewym nawiasem kwadratowym
(jest to przejście do indeksu dolnego), po czym podać numer wiersza, i po przecinku
numer kolumny, nacisnąć podwójnie klawisz spacji, (aby powrócić do linii podsta-
wowej) i wprowadzić znak równości. Na ekranie wyświetlona zostanie następująca
wartość:
A
0,2
= 3.1 (element wiersza pierwszego i kolumny trzeciej).
Macierz można również utworzyć przez nadanie wartości jej poszczególnym elemen-
tom. Na przykład:
A
0,0
:= −2.1 A
0,1
:= 5.4 A
0,2
:= 3.1
A
0,0
:= −2.1 A
0,1
:= 5.4 A
0,2
:= 3.1
A
0,0
:= −2.1 A
0,1
:= 5.4 A
0,2
:= 3.1
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.2 Operacje na macierzach
25
Macierz zerową tworzy się w prosty sposób - poprzez zdefiniowanie jej ostatniego
elementu. Pozostałe nieokreślone elementy będą miały domyślną wartość zero.
Przykład:
Zero
2,2
:= 0
Zero =
0 0 0
0 0 0
0 0 0
Macierz jednostkową
10
wprowadza się w dokumencie poprzez wywołanie wbudowa-
nej funkcji identity(n), gdzie n > 0 oznacza wymiar macierzy. Funkcję tę wybiera
się klikając na ikonę „f (x)”, która znajduje się na pasku Standard, po czym z wy-
świetlonej listy zaznacza się odpowiednią funkcję.
m := identity(3)
(ORIGIN ≡ 1)
M =
1 0 0
1 1 0
1 0 1
MathCAD umożliwia zdefiniowanie macierzy również dzięki funkcjom augment,
stack i submatrix. Właściwości tych funkcji, w zakresie działań na macierzach, są
przedstawione na przykładach:
• augment(A, B, C, . . .) – łączy kolumny podanych macierzy, nowa macierz two-
rzona jest z co najmniej dwóch macierzy, które muszą mieć identyczną liczbę
wierszy
A :=
√
25
0
Π
B :=
1 0 0
0 1 0
0 0 1
Po zastosowaniu funkcji augment dana jest macierz:
10
Macierz kwadratowa, w której elementy leżące na głównej przekątnej są jedynkami, a reszta
wypełniona jest zerami.
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.2 Operacje na macierzach
26
augment(A, B) =
5
1 0 0
0
0 1 0
3.142 0 0 1
• stack(A, B, C, . . .) – łączy wiersze podanych macierzy, nowa macierz tworzona
jest z macierzy o tej samej liczbie kolumn
A :=
1 1 1
1 1 1
1 1 1
B :=
3 3 3
3 3 3
3 3 3
Funkcja stack zwraca macierz skonstruowaną z macierzy A, B ustawionych
jedna nad drugą:
stack (A, B) =
1 1 1
1 1 1
1 1 1
3 3 3
3 3 3
3 3 3
• submatrix(A, i1, in, j1, jn) – funkcja tworzy w oparciu o macierz A nową ma-
cierz, a właściwie - podmacierz, w której poszczególne symbole oznaczają:
– i1 – numer pierwszego wiersza macierzy A,
– in – numer ostatniego wiersza macierzy A,
– j1 – numer pierwszej kolumny macierzy A,
– jn – numer ostatniej kolumny macierzy A.
Użycie funkcji submatrix można przedstawić na prostym przykładzie, który ilustruje
wyodrębnianie nowej macierzy kwadratowej z macierzy A:
ORIGIN ≡ 1
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.2 Operacje na macierzach
27
stack (A, B) =
2 3 45 67
88
1 1 66 99 1100
1 1 78 99
89
1 1
1
1
1
1 1
1
1
1
submatrix (A, 1 , 3 , 3 , 5 ) =
45 67
88
66 99 1.1 × 10
3
78 99
89
Zdefiniowane w programie wiersze i kolumny macierzy można dodatkowo wyli-
stować w postaci wektorów. Odwołując się do kolumny macierzy należy wykorzystać
indeks górny M
<>
z palety Matrix (Rys. 2.2). Natomiast w celu uzyskania wiersza
macierzy trzeba po kolei wybrać polecenia oznaczone ikonami M
T
, M
<>
, M
T
.
Dana jest macierz A:
A :=
−2.1
5.4
3.1
1.4
1.9 −0.5
2.5 −4.8
1.6
Wylistowanie trzech kolumn macierzy A ma postać:
A
<1 >
=
−2.1
1.4
2.5
A
<2 >
=
5.4
1.9
−4.8
A
<3 >
=
3.1
−0.5
1.6
Uzyskiwanie wierszy z macierzy A przedstawia się następująco:
(A
T
)
<1 >
T
=
−2.1 5.4 3.1
(A
T
)
<2 >
T
=
1.4 1.9 −0.5
(A
T
)
<3 >
T
=
2.5 −4.8 1.6
MathCAD jest pomocnym narzędziem w wykonywaniu obliczeń macierzowych.
Aplikacja potrafi prowadzić operacje na elementach macierzy w sposób numeryczny
i symboliczny. Typowe działania algebraiczne takie jak: dodawanie , odejmowanie,
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.2 Operacje na macierzach
28
czy mnożenie zapisywane są naturalnie, symbolami +, -, ∗, itd. Dlatego też po-
minięte zostaną standardowe działania na macierzach, których elementami są licz-
by. Uwaga będzie skupiona na symbolicznym przeprowadzaniu rozwinięć macierzy.
MathCAD oferuje wygodny sposób wykonywania operacji na macierzach. Warto
korzystać z poleceń paska narzędzi Symbolics, aby np. stworzyć macierz transpono-
waną, odwrotną lub obliczyć wyznacznik macierzy. Oto przykłady symbolicznych
operacji na macierzy A:
A :=
a
11
a
12
a
21
a
22
• Transpozycja A
T
→
a
11
a
12
a
21
a
22
• Odwrotność A
−1
→
a
22
(a
11
a
22
−a
12
a
21
)
−a
12
(a
11
a
22
−a
12
a
21
)
−a
21
(a
11
a
22
−a
12
a
21
)
a
11
(a
11
a
22
−a
12
a
21
)
• Wyznacznik |A| → a
11
a
22
− a
12
a
21
Dokonując numerycznych obliczeń na macierzach należy używać po wyrażeniu
znaku „=” aby uzyskać wynik, zaś przy operacjach symbolicznych znaku „→”.
Niemniej jednak to nie wszystkie możliwości MathCAD’a w zakresie operacji na
macierzach. W programie dostępny jest szeroki wachlarz innych funkcji, chociażby
takich:
• diag(v) – zwraca macierz diagonalną, która na głównej przekątnej zawiera
elementy (rzeczywiste lub zespolone) wektora v,
• rank(M) – zwraca rząd macierzy M,
• tr(M) – zwraca ślad macierzy M, czyli sumę elementów na głównej przekątnej,
• rows(M) – zwraca liczbę wierszy macierzy M,
• cols(M) – zwraca liczbę kolumn macierzy M,
• min(M, N, . . . , Z) – zwraca element z listy mający najmniejszą wartość,
• max(M, N, . . . , Z) – zwraca element z listy mający największą wartość.
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.3 Liczby zespolone
29
W programie użytkownik ma do dyspozycji również procedury sortujące:
• sort(M) – w wyniku otrzymuje się wektor M o elementach uporządkowanych
rosnąco,
• csort(M, n) – porządkuje wiersze macierzy M w kolejności rosnącej według
n – tej kolumny; w rezultacie otrzymuje się macierz tych samych wymiarów,
• rsort(M, n) – porządkuje kolumny macierzy M w kolejności rosnącej według
n – tego wiersza, w rezultacie otrzymuje się macierz o tych samych rozmiarach,
• reverse(M) – odwraca kolejność elementów wektora lub macierzy M.
Procedury sortujące dopuszczają sortowanie również liczb zespolonych w argu-
mentach – podczas sortowania brana jest pod uwagę tylko część rzeczywista
11
.
3.3
Liczby zespolone
Zmienna zespolona istnieje w programie w sposób „naturalny”, toteż można wy-
konywać na niej wszystkie operacje znane z algebry. MathCAD przyjmuje liczby
zespolone w postaci a + bi, lub a + bj, gdzie a i b są z przestrzeni liczb rzeczywi-
stych. Podczas deklaracji liczb zespolonych należy pamiętać, aby użyć nie samego
i lub j do wyrażenia jednostki urojonej, lecz 1i bądź 1j. W przeciwnym razie Ma-
thCAD potraktuje i jako zmienną. W aplikacji do działań na liczbach zespolonych
przeznaczone są niniejsze funkcje i operatory:
• Re(z) – zwraca część rzeczywistą liczby z,
• Im(z) – zwraca część zespoloną liczby z,
• arg(z) – zwraca wartość kąta (w radianach) zawartego między dodatnią pół-
osią X, z punktem z leżącym w płaszczyźnie liczb zespolonych (przedział
od −Π do Π),
• |z| – zwraca moduł z liczby zespolonej, zmienia znak przy części urojonej.
11
Paleczek W., MathCAD w algorytmach, Wydawnictwo EXIT, Warszawa 2005
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.4 Jednostki miar
30
Przykładowe operacje na liczbach zespolonych przeprowadzone w aplikacji MathCAD:
x
z1
:=
2
3 +
√
−4
z1 = 3 + 2i
z2 := 2
x
+ i
Dodawanie:
z1 + z2 = 7 + 3i
Odejmowanie:
z1 − z2 = −1 + i
Mnożenie:
z1 · z2 = 10 + 11i
Dzielenie:
z1
z2
= 0.824 + 0.294i
Podnoszenie do potęgi:
z1
2
= 5 + 12i
Moduł z liczby zespolonej: |z1| = 3.606
Część rzeczywista:
Re(z1) = 3
Część zespolona:
Im(z1) = 2
Ponadto:
arg(z1 + z2) = 0.405
cos(z2 + z1) = 7.59 − 6.582i
ln(z1 + z2) = 2.03 + 0.405i
3.4
Jednostki miar
Cechą wyróżniająca aplikacji MathCAD jest możliwość korzystania z wbudowanych
jednostek miar. Jako domyślny przyjmowany jest układ jednostek SI. MathCAD
rozpoznaje różne systemy miar i automatycznie je przelicza. Dzięki temu można
w trakcie obliczeń stosować jednostki, nie przejmując się zbytnio ich zgodnością.
Aplikacja potrafi obliczyć sumę kilku długości, której składniki wyrażone są np.
w milimetrach, centymetrach i metrach. Program dokona odpowiednich konwersji
i zagwarantuje poprawny wynik podając go w metrach, ponieważ metry są główną
jednostką systemu SI. Wybór systemu miar odbywa się w oknie dialogowym Options
z menu Math (Rys. 3.6)
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.4 Jednostki miar
31
Rysunek 3.6: Okno dialogowe Math Options
W zakładce Unit System dostępne są następujące systemy jednostek miar:
• SI (International) – Międzynarodowy Układ Jednostek Miar SI, oparty jest
na: metrach, kilogramach, sekundach, amperach, stopniach Kelwina, molach,
kandelach, radianach i steradianach,
• MKS – jednostki podstawowe: metr, kilogram, sekunda,
• CGS – jednostki główne: centymetr, gram, sekunda i jednostka elektrostatycz-
na,
• U.S. – jednostki główne: stopy, funty, sekundy, kulomby,
• None – rezygnacja z wbudowanych jednostek.
Pewne utrudnienie pojawia się wówczas, gdy nieznany jest symbol lub nazwa jed-
nostki, która została użyta w obliczeniach. W takiej sytuacji wystarczy skorzystać
z polecenia Insert Unit, po czym wybrać potrzebny rodzaj jednostki (Rys. 3.7)
3. PODSTAWOWE ZASTOSOWANIE MATHCAD’A
3.4 Jednostki miar
32
Rysunek 3.7: Wybór jednostki miary
Program traktuje jednostkę jako zmienną, więc bez problemu można definiować
własne jednostki. Wprowadzenie tego rodzaju zmiennych może znacznie uprościć
pracę. Warto przyjąć takie jednostki, które łatwo jest zapamiętać. Po ich określeniu
pozostaje zastosować je w bieżącym arkuszu roboczym.
Rozdział 4
Zaawansowane zastosowanie
MathCAD’a
Zakres możliwości MathCAD’a zaprezentowany w niniejszym rozdziale dotyczyć bę-
dzie wybranych zagadnień analizy matematycznej, podstawowych technik progra-
mowania oraz zasad tworzenia rozmaitych wykresów. Bez wnikania w tajniki algo-
rytmiki podana zostanie niezbędna i stosowna do pracy z programem wiedza teore-
tyczna, a ponadto przedstawione będą instrukcje i wskazówki, które wykorzystane
zostaną na przykładach.
4.1
Pochodne i całki
Z podstawowych zasad analizy matematycznej wiadomo, że pochodną funkcji y =
f (x) w punkcie x nazywana jest granica, do której dąży stosunek przyrostu funkcji
∆ y do odpowiedniego przyrostu zmiennej niezależnej ∆ x, gdy gdy przyrost zmien-
nej niezależnej dąży do zera, czyli granicę:
lim
∆ x→0
∆ y
∆ x
= lim
∆ x→0
f (x + ∆ x) − f (x)
∆ x
Jeżeli granica taka nie istnieje, to funkcja w tym punkcie nie ma pochodnej.
Odnajdywanie pochodnej funkcji nazywa się różniczkowaniem funkcji.
Dział matematyki traktujący o pochodnych, ich własnościach i zastosowaniach na-
zywa się rachunkiem różniczkowym.
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.1 Pochodne i całki
34
Pchodne wyższych rzędów, czyli pochodną rzędu drugiego lub drugą pochodną funk-
cji y = f (x) nazywana jest pochodną pierwszej pochodnej tej funkcji. Podobnie
pochodną rzędu trzeciego lub trzecią pochodną funkcji y = f (x) okreslana jest po-
chodną drugiej pochodnej, itd.
1
Jak zostało już wspomniane edytor MathCAD jest po prostu zwykłą kartką.
Jeżeli użytkownik chce, aby program obliczył pochodną funkcji, może w tym celu
wpisać odpowiedni symbol bądź użyć właściwej ikony z palety Calculus (Rys. 2.2).
Następnie należy wprowadzić wyrażenie i zastosować polecenie Simplif y z menu
Symbolic. Po kolejnym wykonaniu tych czynności przez użytkownika, MathCAD
poda prawidłowy wynik.
W programie operator
d
dx
zwraca wartość pierwszej pochodnej funkcji f (x) w punkcie
x. Stosowanie tego operatora wymusza definiowanie wszystkich zmiennych w funkcji
f (x). Zmienna x musi być liczbą, aby funkcja zwracała wartość skalarną.
Aby obliczyć pierwszą pochodną przykładowej funkcji g(x) := x
3
sin(x) należy za-
stosować poniższy sposób zapisu:
d
dx
(x
3
sin(x)) simplif y → 3x
2
sin(x) + x
3
cos(x)
W celu obliczenia pochodnej n-tego rzędu użytkownik musi wykonać podobne
czynności jak w poprzednim przypadku, ale używając operatora
d
n
dx
n
, gdzie n to licz-
ba całkowita z przedziału < 0, 5 >. Z kolei przy obliczeniach symbolicznych n jest
liczbą całkowitą większą od zera. Dla n = 0 operator zwraca wartość funkcji, a dla
n = 1 jest równoważny pierwszej pochodnej.
Odwrotnością pochodnej jest całka nieoznaczona. Całką nieoznaczoną (nieokre-
śloną) funkcji f (x), oznaczaną symbolem
R
f (x) dx
nazywane jest wyrażenie F (x) + C, gdzie F (x) jest funkcją pierwotną funkcji f (x),
a C jest dowolną stałą.
Jest więc
R
f (x) dx = F (x) + C,
gdzie F
0
(x) = f (x)
.
1
Krysicki W., Włodarski L., Analiza matematyczna w zadaniach, część I, Wydawnictwo Na-
ukowe PWN, Warszawa 1999
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.2 Rozwijanie funkcji w szereg Taylora
35
W programie MathCAD całka nieoznaczona obliczona zostanie po użyciu sza-
blonu symbolu
R
i uzupełnieniu jego znaków braku odpowiednimi zmiennymi, a na-
stępnie po wybraniu z menu głównego kolejnych poleceń Symbolic i Simplify.
Natomiast całkę oznaczoną funkcji f (x) ograniczonej na przedziale < a, b >, której
zapis w matematyce ma symbol:
R
b
a
f (x) dx
MathCAD liczy po użyciu przez użytkownika operatora
R
b
a
z określoną funkcją pod-
całkową f (x) w zakresie < a, b >. Oczywiście granice całkowania muszą być ska-
larami, a zmienne w wyrażeniu f (x), za wyjątkiem zmiennej x, względem której
odbywa się całkowanie, muszą zostać wcześniej zdefiniowane. Jako granice całkowa-
nia można przyjąć liczby rzeczywiste, jak również symbole nieoznaczone +∞ i −∞.
Funkcja f (x) może być rzeczywista lub zespolona, czyli przyjmuje wartości będące
liczbami rzeczywistymi bądź zespolonymi.
Ilustracja przykładu rozwiązania całki oznaczonej przez program:
R
∞
0
e
−x
dx simplif y → 1
Jeśli zmienna, względem której przeprowadza się całkowanie, jest wyrażana w okre-
ślonych jednostkach, wówczas granice całkowania także muszą być zadeklarowane
w tych samych jednostkach. Ponadto jeśli funkcja podcałkowa posiada punkty nie-
ciągłości czy też znaczne wahania wartości, wówczas rozwiązanie może nie być do-
kładne.
4.2
Rozwijanie funkcji w szereg Taylora
Za pomocą MathCAD’a istnieje również możliwość rozwijania funkcji lub wyrażenia
w szereg potęgowy. Zgodnie z zasadami matematyki szereg potęgowy o współczyn-
nikach a
n
∈ R, gdzie n = 0, 1, 2, . . . i x ∈ R, to szereg funkcyjny postaci
2
:
∞
X
n=0
a
n
x
n
= a
0
+ a
1
x + a
2
x
2
+ . . . + a
n
x
n
+ . . .
MathCAD do rozwijania funkcji w szereg potęgowy oferuje pomocniczą funkcję
series
3
, która pozwala rozwijać wyrażenie w szereg potęgowy w otoczeniu punktu
2
Gewert M., Skoczylas Z., Analiza matematyczna 2, Oficyna Wydawnicza GiS, Wrocław 2005
3
Sokół M., MathCAD leksykon kieszonkowy, Wydawnictwo HELION, Gliwice 2005
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.3 Możliwości programowania
36
x (domyślnie w punkcie zero). Składnia polecenia jest następująca:
f (x) series, x, k
Po lewej stronie słowa kluczowego znajduje się wyrażenie lub funkcja. W pierwszym
zarezerwowanym polu podawana jest nazwa zmiennej, w drugim polu rząd rozwinię-
cia k (mówi, do której potęgi (k − 1) ma być rozwinięty szereg). Domyślnie k = 6,
a maksymalna wartość k = 99.
Przykłady rozwinięcia funkcji w szereg potęgowy:
Rozwinięcie funkcji sin(x) w szereg przy domyślnych parametrach
sin(x) series, x, 6 → x −
1
6
· x
3
+
1
120
· x
5
Rozwinięcie funkcji sin(x) w szereg w punkcie x 6= 0
sin(x) series, x = 1.3 → sin(1) + cos(1) · (x − 1) −
1
2
· sin(1) · (x − 1)
2
Rozwinięcie funkcji w szereg względem dwóch zmiennych
e
x
+ y series, x, y, 3 → 1 + x + y +
1
2
· x
2
MathCAD jest pomocny w przybliżaniu funkcji wielomianami. Komenda series
ułatwia rozwinięcie funkcji w szereg potęgowy, dzięki czemu możliwe jest badanie
własności funkcji, szczególnie tych, które nie są elementarne.
4.3
Możliwości programowania
Każdy język programowania ma specyficzną składnię. Zastosowany w środowisku
MathCAD język programowania wykazuje pewne podobieństwo z programowaniem
w języku Pascal. Wprawdzie potencjał MathCAD’a w tej dziedzinie jest skrom-
ny w porównaniu do innych języków programowania. Warto jednak zapoznać się
z możliwościami oferowanymi przez MathCAD’a, przede wszystkim dlatego, że pro-
gramowanie w aplikacji może znacznie ułatwić rozwiązywanie bardziej złożonych
problemów.
Wszystkie dostępne w edytorze instrukcje i słowa kluczowe są umieszczone na pasku
narzędziowym Programming (Rys. 2.2). Bezpośrednio z klawiatury wpisywane są
wyłącznie nazwy zmiennych oraz operatory w pola znaków braku.
Użycie poszczególnych instrukcji sterujących zostanie omówione na przykładach,
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.3 Możliwości programowania
37
które zilustrują krótki przegląd zdolności MathCAD’a w zakresie programowania.
Wstępny przykład prezentuje technikę zapisu podprogramu, przy użyciu polecenia
AddLine i operatora ←−.
Dana jest funkcja f (x) =
exp
x+0.1
3
√
2x
, której zapis przy wykorzystaniu podprogramu
jest prostszy w odróżnieniu od zapisu klasycznego. Zdefiniowanie funkcji i oblicze-
nie wartości dla argumentu x = 2.5:
f (x ) :=
a ← exp(x + 0.1)
b ← (2x)
1
3
f ←
a
b
x := 2.5
f (2.5) = 7.874
Zastosowanie komendy AddLine powoduje wstawienie nowego wiersza. Pierw-
sze użycie tego polecenia definiuje program, pojawia się pionowa kreska z dwoma
zarezerwowanymi miejscami, następne użycie operatora AddLine zwiększa liczbę
wierszy. Ostatnia linia instrukcji powinna zawierać wartość zwracaną przez pro-
gram. W algorytmie występuje również definicja lokalna – znak przypisania ←.
Operator strzałki deklaruje zmienną lokalną a i nadaje jej wartość numeryczną rów-
ną wartości obliczonej funkcji exp(x + 0.1). Poza programem zmienna a pozostaje
nieokreślona.
Instrukcje decyzyjne i warunkowe
Wyrażenia tworzone za pomocą instrukcji decyzyjnych i warunkowych są przydat-
ne głównie do obliczania wartości wyrażeń matematycznych zależnych od spełnienia
określonych warunków logicznych. Najprostszym przykładem jest realizacja instruk-
cji warunkowej: JEŻELI spełniony jest zadeklarowany warunek logiczny TO funkcja
przyjmuje konkretną wartość. Innym przykładem może być instrukcja pętli: wykonuj
operację począwszy OD wartości, a skończywszy NA wartości
4
.
Instrukcja decyzyjna if i instrukcja otherwise
Składnia formuły if jest następująca:
4
Paleczek W., MathCAD w algorytmach, Wydawnictwo EXIT, Warszawa 2005
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.3 Możliwości programowania
38
nazwa funkcji (zmienna) :=
wartosc1
if
warunek logiczny
wartosc2 otherwise
Wyrażenie otherwise (w innym przypadku) używane jest w programie wraz z in-
strukcją if . Wykorzystywane są one do wskazywania alternatywnego zbioru in-
strukcji, gdy podstawowe kryterium nie zostanie spełnione. Zastosowanie formuły
if oraz otherwise przedstawia przykład definicji funkcji skoku jednostkowego (po
prawej stronie operatora if musi być umieszczony warunek boolowski):
x := −2 . . . 2
f (x ) :=
1
if
x = 0
1
x
otherwise
Wylistowany wektor wartości argumentu x i funkcji f (x):
x =
f (x) =
-2
-1
0
1
2
-0.5
-1
1
1
0.5
Sformułowaną definicję f (x) można przeczytać: jeżeli wartość argumentu x jest rów-
na zero, to funkcja f (x) przyjmuje wartość 1, w przeciwnym razie funkcja przyjmuje
wartość
1
x
.
Instrukcja iteracyjna f or
Składnia formuły f or jest następująca:
nazwa f unkcji(zmienna) :=
f or
zmienna
∈
zakres
instrukcja1
instrukcja2
instrukcja3
Pętla f or umożliwia cykliczne obliczenie sekwencji wyrażeń. Stosowana jest, gdy
z góry wiadomo ile razy dana instrukcja będzie powtórzona. Po lewej stronie znaku
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.3 Możliwości programowania
39
∈ znajduje się nazwa iterowanej zmiennej, natomiast z prawej strony tego znaku za-
deklarowany jest zakres wartości przypisywanych przez iterowaną zmienną. Zmienna
może mieć postać zakresu, wektorów lub macierzy. W znaku braku pod słowem klu-
czowym f or musi być podane wyrażenie, które zostanie iteratywnie przeliczone.
Przykład zastosowania pętli f or można zaprezentować na programie generującym
macierz jednostkową:
M(k) :=
f or i ∈ 0 . . . k − 1
f or j ∈ 0 . . . k − 1
macierz
i,j
← 1 if i = j
macierz
i,j
otherwise
macierz
Wydruk macierzy jednostkowej o wymiarze 3 × 3 elementów:
M (3 ) =
1 0 0
0 1 0
0 0 1
Instrukcje while, break, return, on error
Pętlę while stosuje się w programie, gdy nieznana jest liczba iteracji potrzebna do
osiągnięcia danego celu. Sekwencje wyrażeń zawarte w pętli while będą wykonywa-
ne, o ile zostanie spełniony podany warunek. Sprawdzenie warunku zachodzi przed
instrukcją. Jeżeli spełniony jest warunek logiczny, wpisany po prawej stronie słowa
kluczowego, następuje realizowanie ciągu instrukcji umieszczonych w bloku.
W każdej z pętli: if , f or, while powtarzanie obliczeń może być wcześniej zatrzyma-
ne, po zastosowaniu instrukcji przerwania break. Użycie tego wyrażenia powoduje
wyjście z pętli.
Zastosowanie instrukcji while wraz z instrukcją break prezentuje przykład, umożli-
wiający obliczenie permutacji n – elementowej (n!)
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.3 Możliwości programowania
40
P ermutacja(n) :=
a ← n
while 1
a ← a · · · (n − 1)
n ← n − 1
(break) if n = 1
a
Wynik dla n = 5
P ermutacja(5) = 120
Wynik przy wykorzystaniu funkcji kalkulatora 5! = 120.
W edytorze MathCAD istnieje możliwość testowania podprogramu. Szczególnie
przydatnym do takiej operacji jest wyrażenie return, które odpowiednio umieszczo-
ne w programie może zwracać wartości zmiennych lokalnych lub spowodować wyjście
z rekurencji.
Działanie instrukcji return ilustruje przykład
5
x := −3 . . . 2
f (x ) :=
x ← |x| if x < 0
√
x otherwise
return x
Wylistowany wektor wartości argumentu x i funkcji f (x):
x =
f (x) =
-3
-2
-1
0
1
2
3
2
1
0
1
2
Algorytm można odczytać następująco: jeżeli wartość argumentu x jest ujemna,
to funkcja f od x przyjmuje wartość bezwzględną argumentu x, w przeciwnym ra-
zie, kiedy zmienna x jest dodatnia, funkcja zwraca po prostu dodatnią wartość x.
5
Regel W., MathCAD przykłady zastosowań, Wydawnictwo MIKOM, Warszawa 2004
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.4 Tworzenie i formatowanie wykresów
41
W przypadku wystąpienia błędu w treści algorytmu, operator warunkowy on error
określa sposób wykonywania podprogramu. Jeśli w kodzie pojawi się błąd, Math-
CAD przetwarza dane umieszczone z prawej strony wyrażenia, a zwraca argument
wpisany po lewej stronie. Instrukcję on error można wykorzystać na przykład, gdy
wystąpiłby błąd podczas próby dzielenia przez zero
6
. Operator on error zabezpiecza
przed takim działaniem i może przypisać wartości funkcji symbol nieskończoność.
Dana jest funkcja f (x) =
1
x−1
, która dla wartości argumentu x = 1 przyjmuje war-
tość nieokreśloną. Aby uniknąć komunikatu o błędzie można zastosować formułę
on error:
f (x) := ∞ on error
1
x−1
Test tak napisanego podprogramu przeprowadzony jest następująco:
f (1) = 1 × 10
307
f (2) = 1
Zaprezentowane możliwości MathCAD’a w zakresie programowania zostały przed-
stawione na podstawowych instrukcjach sterujących. Aplikacja oferuje użytkowni-
kowi wiele innych i ciekawych przykładów dostępnych w „Resource Center”.
4.4
Tworzenie i formatowanie wykresów
Każde rozwiązanie problemu matematycznego jest bez wątpienia lepiej zrozumia-
łe, kiedy można je obserwować na wykresie bądź animacji. MathCAD umożliwia
użytkownikowi kreowanie satysfakcjonujących wizualizacji z obliczeń numerycznych.
Rezultaty pracy można przedstawić w praktycznie dowolny sposób: od wykresów
jednowymiarowych, przez wykresy 2D (X–Y, biegunowe), wykresy przestrzenne 3D
(powierzchniowe, warstwicowe, słupkowe, punktowe, wektorowe), zakończywszy na
animacjach.
Wykresy tworzone są w programie poprzez wywołanie szablonu wykresu z menu
Insert Graph lub z paska narzędziowego Graph.
Wykresy dwuwymiarowe wymagają wpisania przy obu osiach zmiennych lub wyra-
żeń, które są ciągami liczb lub funkcjami. Na jednym wykresie można przedstawić
kilka funkcji oraz dodawać asymptoty lub punkty kontrolne. Kolejne funkcje doda-
wane są poprzez wpiasanie przecinka w polu opisu funkcji, mogą być one zależne od
6
http://www.ia.agh.edu.pl/personal/pszwed/labsp98/AccessBasic/Bledy.html
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.4 Tworzenie i formatowanie wykresów
42
jednej wspólnej zmiennej lub każda z funkcji może mieć swój niezależny argument.
Wykresy trójwymiarowe mają tylko jeden znacznik dla wpisania nazwy macierzy
lub trzech nazw funkcji oddzielonych przecinkami.
Sposób konstrukcji wykresu dwuwymiarowego przedstawiony jest na przykładzie
krzywych Lissajous, ktore w matematyce opisane są przez równania parametryczne:
x = A sin(at + δ)
y = B sin(bt)
Kształt krzywych jest szczególnie uzależniony od współczynnika a/b. Dla współ-
czynnika równego 1, krzywa jest elipsą, ze specjalnymi przypadkami okrąg (A =
B, δ = π/2 radianów) oraz odcinek (δ = 0). Inne wartości współczynnika dają bar-
dziej złożone krzywe, które są zamknięte tylko gdy a/b jest liczbą wymierną
7
.
W programie zadeklarowane są funkcje:
x(t) := sin(3t)
y(t) := sin(4t)
Z panelu Graph należy wybrać odpowiednią ikonę wykresu (X–Y Plot). Po czym
na wykresie w miejsce argumentu należy wpisać jedną funkcję, a w miejsce wartości
drugą. Po wykonaniu przez użytkownika powyższych czynności MathCAD wygene-
ruje wykres funkcji (Rys. 4.1).
Rysunek 4.1: Wykres krzywych Lissajous
Kolejnym przykładem na wykorzystanie możliwości MathCAD’a w zakresie grafiki
będzie rysunek „Miski” w przestrzeni 3D
8
.
„Miska” – to funkcja zdefiniowana do obliczania sinusa z sumy kwadratów:
Miska(p, q) := sin(p
2
+ q
2
)
Umieszczenie p i q w nawiasach po nazwie funkcji sygnalizuje, że są to parametry
formalne zastosowane tylko do deklaracji funkcji i nie muszą mieć określonych war-
7
http://pl.wikipedia.org/wiki/Krzywe Lissajous
8
Pietraszek J., MathCAD. Ćwiczenia praktyczne, Wydawnictwo HELION, Gliwice 2002
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.4 Tworzenie i formatowanie wykresów
43
tości. Kolejno definiowane są zakresy wskaźników i ciągi wartości, które zostaną
użyte jako argumenty tej funkcji:
i := 0 .. 20
j := 0 .. 20
x
i
:= −1.5 + 0.15i
y
i
:= −1.5 + 0.15j
Wartości dla wykresu trójwymiarowego należy umiszczać w macierzy:
M
i,j
:= Miska(x
i
, y
i
)
Dla weryfikacji można wyświetlić wartości tej macierzy (Rys. 4.2), chociaż dla wy-
kresu nie jest to konieczne.
Rysunek 4.2: Wartości macierzy M
Na ogół MathCAD nie wyświetla całej macierzy, ale wystarczy kliknąć wewnątrz
tablicy, aby pojawiły się paski przewijania.
Po wykonaniu powyższych operacji pozostaje wstawić wykres 3D (Rys.4.3) wy-
brany z palety przycisków. W jedynym znaczniku braku tego wykresu należy
wpisać nazwę macierzy i ustalić typ wykresu, w tym przypadku powierzchniowy
(Surf ace P lot).
Rysunek 4.3: Wykres „M iski”
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.4 Tworzenie i formatowanie wykresów
44
Sporządzony wykres funkcji, w przestrzeni 2D bądź 3D, w dokumencie MathCAD’a
można dowolnie formatować.
W celu zmiany wyglądu wykresu X–Y należy na nim kliknąć dwukrotnie mysz-
ką. Pokaże się wówczas okno dialogowe Formatting Currently Selected X–Y Plot,
w którym znajdują się następujące opcje
9
:
• Strona X – Axis – grupa opcji odnoszących się do osi X wykresu (opcje doty-
czące osi Y są identyczne):
– Log Scale – zmienia skalę liniową na logarytmiczną,
– Grid Lines – znaczniki na osiach zostaja zastąpione przez linie siatki,
– Numbered – znaczniki na osiach zostaja ponumerowane,
– Auto Scale – automatycznie dobiera zakres wartości na osi,
– Show Markers – służy do dodania pionowych i poziomych linii,
– Auto Grid – automatycznie dobiera linie siatki na wykresie – po wybraniu
tej opcji nie jest dostepne pole Number Of Grids,
– Number Of Grids – służy do ustalenia liczby linii siatki, z przedziału od
2 do 99, dla poszczególnych osi,
– Axis Style – opcje tej grupy pozwalają dostosować wygląd układu współ-
rzędnych,
– Boxed – układ współrzędnych kreślony jest w postaci ramki,
– Crossed – układ współrzędnych przedstawiony jest w postaci dwóch osi,
– None – brak układu współrzędnych,
– Equal Scales – dobór jednakowej skali na obu osiach,
• Strona Traces – w tej zakładce ustalane są parametry rysowania kilku funkcji
w jednym wykresie, można te wykresy wyróżnić różnymi kolorami oraz innymi
stylami linii:
– Legend Label – lista z nazwami krzywych,
– Symbol – określa sposób wyświetlania punktów na wykresie,
9
http://www.lysy79.republika.pl/pliki/is/materialy/mathcad/mathcad1.pdf
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.4 Tworzenie i formatowanie wykresów
45
– Line – rodzaj linii, jaką będzie narysowany wykres,
– Color – kolor linii,
– Type – określa typ wykresu, np. punktowy, liniowy, słupkowy,
– Weight – określa grubość linii,
– Hide Arguments – ukrywa wartości argumentów,
– Hide Legend – ukrywa legendę wykresu,
• Strona Labels – służy do nadawania nazw wykresom i osiom:
– Title – pole tekstowe do wpisania tytułu wykresu,
– Axis Labels – nadanie nazw poszczególnym osiom,
• Strona Defaults – pozwala korzystać z ustaleń domyślnych:
– Change To Defaults – przywrócenie standardowych ustawień dla aktual-
nego wykresu,
– Use For Defaults – umożliwia przyjęcie bieżących ustaleń jako domyślne
dla wszystkich innych wykresów.
W celu przeprowadzenia formatowania wykresu trójwymiarowego należy na jego
obszarze klniknąć dwukrotnie myszką i wybrać odpowiednie opcje z okna dialogo-
wego 3D Plot Format
10
:
• Strona General – umożliwia wybór wykresu i jego ogólne parametry:
– View – określa wygląd wykesu:
∗ Rotation – kąt obrotu wykresu wokół punktu środkowego wykresu,
od −360 do 360 stopni,
∗ Tilt – kąt obrotu wykresu wokół osi Y, od 0 do 180 stopni,
∗ Twist – kąt obrotu wokółm osi Z, od −360 do 360 stopni,
∗ Zoom – określa stopień powiększenia,
– Axes Style – określa wygląd osi współrzędnych:
∗ Perimeter – osie współrzędnych są widocznze,
10
Pietraszek J., MathCAD. Ćwiczenia praktyczne, Wydawnictwo HELION, Gliwice 2002
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.4 Tworzenie i formatowanie wykresów
46
∗ Corner – osie wspólrzędnych rozpoczynają się w tym samym punkcie,
∗ None – osie współrzędnych są niewidoczne,
∗ Equal Scales – taka sama podziałka skali na wszystkich osiach,
– Frames– nadanie ramki wykresowi,
– Plot 1 – typ wykresu:
∗ Surface Plot – wykres powierzchniowy,
∗ Data Points – wykres punktowy,
∗ Bar Plot – wykres słupkowy,
∗ Contour Plot – wykres konturowy,
∗ Vector Field Plot – wykres wektorowy,
∗ Patch Plot – wykres w postaci niepołączonych prostokątów na róż-
nych poziomach,
• Strona Axes – zarządza osiami układu wspólrzędnych (takie same parametry
dla wszystkich osi):
– Grids – wprowadza do wykresu pomocnicze linie siatki:
– Axis Format – ustalenie formatu osi współrzędnych,
– Axis Limits – ustalenie zakresu osi współrzędnych,
• Strona Appearance – określa wygląd wykresu:
– Fill Options – określa opcje wypełniania wykresu,
– Color Options – wybór palety kolorów lub koloru jednolitego,
– Line Options – określa opcje linii wykresu,
– Point Options – ustala sposobu rysowania punktów na wykresie
• Strona Lighting:
– Enable Lighting – włacza oświetlenie,
– Ambient Light Color – ustala otaczający kolor,
– Lighting Scheme – wyświetla listy wbudowanych systemów oświetlenia,
4. ZAAWANSOWANE ZASTOSOWANIE MATHCAD’A
4.4 Tworzenie i formatowanie wykresów
47
– Light X – określa oświetlenie kierunkowe
• Strona Title:
– Graph Title – pole tekstowe do wpisania tytułu wykresu,
• Strona Backplanes – ustala wygląd płaszczyzny tła X–Y, Y–Z, X–Z,
• Strona Special – określa opcje specjalne wykresu:
– Contour Options – opcje konturu,
– Bar Plot Layout – opcje wykresu słupkowego,
– Interpolated Mesh – przy przekształceniu wykresu punktowego w po-
wierzchniowy należy ustalić liczbę wierszy i kolumn do interpolacji,
– Connectivity – ustala sposób połączenia punktów przez linię,
• Strona Advanced – określa opcje zaawansowane:
– Advanced View Options – zaawansowane opcje widoku,
– Printing – opcje drukowania,
– Colormap – użycie wybranej palety,
– Plot 1 – wybór sposobu rysowania wykresu,
• Strona QuickPlot Data – wybór parametrów domyślnych przy szybkim ry-
sowaniu wykresów, gdy nie ma zdefiniowanego zakresu zmienności i układu
współrzędnych:
– Range – ustala zakres zmienności,
– Coordinate System – określa rodzaj układu współrzędnych.
MathCAD dysponuje szerokim wachlarzem operacji związanych z rysowaniem
wykresów. Na sporządzonym i sformatowanym wykresie funkcji można odczytać
informacje o przebiegu funkcji, punktach przecięcia z inną funkcją, odczytać współ-
rzędne. Takie informacje i wiele innych można uzyskać dzięki opcjom Zoom (po-
większenie) i Trace (śledzenie). Użytkownik MathCAD’a może w dowolny sposób
przeprowadzać zmiany dotyczące typu wykresów i ich atrybutów.
Rozdział 5
Projekt własny – prezentacja
metody Rungego – Kutty
rozwiązywania równań
różniczkowych
5.1
Opis projektu
MathCAD posiada szereg poleceń służących do poszukiwania rozwiązania równania
różniczkowego zwyczajnego. Każde z tych poleceń podaje wynik w postaci nume-
rycznej, a mianowicie macierzy zawierającej wartości funkcji pierwotnej obliczone na
pewnym zbiorze punktów. Wykorzystywane polecenia różnią się głównie techniką
algorytmizacji, stosowaną do znalezienia rozwiązania. Mimo różnic każda z proce-
dur rozwiązujących, dostępnych w programie, wymaga podania co najmniej trzech
czynników:
• warunków początkowych,
• zbioru punktów, dla których będzie poszukiwane rozwiązanie,
• szczególnego zapisu postaci równania różniczkowego (tj. w projekcie poniżej)
Projekt własny zawarty w pracy przedstawia algorytm rozwiązania równania róż-
niczkowego znanego pod nazwą metody Rungego – Kutty. Procedurą wykorzystaną
5. PROJEKT WŁASNY – PREZENTACJA METODY RUNGEGO – KUTTY ROZWIĄZYWANIA RÓWNAŃ
RÓŻNICZKOWYCH
5.2 Kod programu
49
w projekcie jest rkfixed. Funkcja ta stosuje metodę całkowania metodą Runge –
Kutta czwartego rzędu. Po dokonaniu odpowiednich obliczeń funkcją rkfixed i zilu-
strowaniu wyników w formie liczbowej i graficznej, w projekcie przedstawiony jest
algorytm numerycznej metody Runge – Kutta oparty na danych z rozwiązanego
przykładu. Algorytm ten służy do iteracyjnego rozwiązywania równań różniczko-
wych zwyczajnych. Okazuje się, że oba sposoby rozwiązania równania różniczkowego
dają zgodne wyniki. Jednak łatwo można zauważyć, że zastosowanie procedury rkfi-
xed, oferowanej przez aplikację MathCAD, jest znacznie szybsze i przede wszystkim
praktyczniejsze przy wykonywaniu żmudnych obliczeń.
5.2
Kod programu
Dane jest równanie różniczkowe postaci:
π ·
d
2
dx
2
y(x) + 10 · (
d
dx
y(x)) + 100 · y(x) = 50 · cos(4x)
W technice zapisywania równań różniczkowych stosowanych w programie MathCAD
równanie zdefiniowane jest w postaci:
d
dx
[Y
0
(x) = Y
1
(x)]
Równanie drugiego rzędu przekształcone jest do równania pierwszego rzędu:
d
dx
h
Y
1
(x) =
1
π
· [50 · cos(4x) − 10 · Y
1
(x) − 100 · Y
0
(x)]
i
Wektor wartości początkowych:
wekt pocz :=
5
−2
Punkt startowy rozpatrywanego przedziału:
poczatkowa := 0
Punkt końcowy rozpatrywanego przedziału:
koncowa := π
Podział przedziału między zmiennymi „poczatkowa” i „koncowa” (liczba iteracji):
podzial przedzialu := 100
Macierz funkcyjna D zwracająca wartości w postaci wektora, którego elementy są
pierwszymi pochodnymi nieznanych funkcji:
D(x, Y ) :=
Y
1
1
π
[50 · cos(4x) − 10 · Y
1
(x) − 100 · Y
0
(x)]
5. PROJEKT WŁASNY – PREZENTACJA METODY RUNGEGO – KUTTY ROZWIĄZYWANIA RÓWNAŃ
RÓŻNICZKOWYCH
5.2 Kod programu
50
Zastosowanie procedury rkfixed rozwiązującej równanie różniczkowe metodą Runge-
go - Kutty 4 - rzędu ze stałym krokiem:
A := rkf ixed(wekt pocz, poczatkowa, koncowa, podzial przedzialu, D)
Wartość zmiennej zakresowej j w przedziale:
j := 0 . . . podzial przedzialu
Rozwiązanie w formie liczbowej (Rys. 5.1):
Rysunek 5.1: Wartości macierzy D
Rozwiązanie w formie graficznej (Rys. 5.2):
Rysunek 5.2: Wizualizacja macierzy D
5. PROJEKT WŁASNY – PREZENTACJA METODY RUNGEGO – KUTTY ROZWIĄZYWANIA RÓWNAŃ
RÓŻNICZKOWYCH
5.2 Kod programu
51
Algorytm metody Rungego – Kutty w oparciu o dane z rozwiązanego przykładu
Deklaracja wartości ilorazu rozpiętości przedziału rozwiązania i wartości podzia-
łu przedziału:
h :=
koncowa−poczatkowa
podzial przedzialu
Przypisanie elementom wektorów poszczególnych wartości:
x
0
:= poczatkowa
y
<0>
:= wekt pocz
które w przykładzie odpowiednio wynoszą:
x
0
= 0
y
<0>
=
5
−2
Tak więc drugie elementy wektorów odpowiednio wynoszą:
x
1
:= x
0
+ h
x
1
= 0.031
oraz
y
<0>
+ h · D(x
0
, y
<0>
) =
4.937
−1.5
Wykonanie obliczeń w czterech krokach, w celu sprawdzenia wartości otrzymanych
powyżej:
k1 := h · D(x
0
, y
<0>
)
k2 := h · D(x
0
+
h
2
, y
<0>
+
k1
2
)
k3 := h · D(x
0
+
h
2
, y
<0>
+
k2
2
)
k4 := h · D(x
0
+ h, y
<0>
+ k3)
Wydruk kontrolny obliczonych wartości:
k1 =
−0.063
0.5
k2 =
−0.055
0.424
5. PROJEKT WŁASNY – PREZENTACJA METODY RUNGEGO – KUTTY ROZWIĄZYWANIA RÓWNAŃ
RÓŻNICZKOWYCH
5.2 Kod programu
52
k3 =
−0.056
0.424
k4 =
−0.05
0.346
Algorytm obliczenia kontrolnego:
y
<1>
:= y
<0>
+
k1
6
+
k2
3
+
k3
3
+
k4
6
y
<1>
:=
4.944
−1.577
Wartości w obu przypadkach są zgodne.
Wykonanie drugiego kroku całkowania:
x
2
:= x
1
+ h
x
2
:= 0.063
m1 := h · D(x
1
, y
<1>
)
m2 := h · D(x
1
+
h
2
, y
<1>
+
m1
2
)
m3 := h · D(x
1
+
h
2
, y
<1>
+
m2
2
)
m4 := h · D(x
1
+ h, y
<1>
+ m3)
Wydruk kontrolny obliczonych wartości:
m1 =
−0.05
0.346
m2 =
−0.044
0.266
m3 =
−0.045
0.266
m4 =
−0.041
0.185
5. PROJEKT WŁASNY – PREZENTACJA METODY RUNGEGO – KUTTY ROZWIĄZYWANIA RÓWNAŃ
RÓŻNICZKOWYCH
5.2 Kod programu
53
Algorytm obliczenia kontrolnego i wydruk wartości obliczonych w drugim kroku
całkowania:
y
<2>
:= y
<1>
+
m1
6
+
m2
3
+
m3
3
+
m4
6
y
<2>
:=
4.899
−1.311
Porównanie otrzymanych wartości z dwóch kroków całkowania. Zestawienie
w postaci macierzy.
Z rozwiązania metodą rkfixed przy wykorzystaniu funkcji submatrix (utworzenie
podmacierzy z macierzy wynikowej A):
submatrix(A, 0, 2, 0, 2) =
0
5
−2
0.031 4.944 −1.577
0.063 4.899 −1.311
Z rozwiązania przy użyciu algorytmu metody Runge – Kutta, przy wykorzystaniu
funkcji augment (utworzenie macierzy z wektorów danych x i y
T
):
augment(x, y
T
) =
0
5
−2
0.031 4.944 −1.577
0.063 4.899 −1.311
Wniosek:
Można zauważyć, że otrzymane wyniki są zgodne i mogą stanowić ilustrację
do algorytmu stosowanego w numerycznym rozwiązywaniu równań różniczkowych
bazujących na metodzie „rk ” – metodzie Runge - Kutta.
Zakończenie
Przedstawione w pracy możliwości pakietu MathCAD, to jedynie ich ogólny zarys.
Niełatwo jest scharakteryzować całą paletę zastosowań MathCAD’a, gdyż wymienie-
nie wszystkich jego właściwości polegałoby na napisaniu podręcznika użytkownika.
Podsumowując krótką prezentację potencjału MathCAD’a śmiało można go określić
uniwersalnym i przede wszystkim profesjonalnym programem matematycznym. Ze
względu na zintegrowane środowisko pracy tego programu można nazwać go „kom-
bajnem”, cenionym przez coraz większe grono naukowców, inżynierów i studentów.
Przy wyborze programu obliczeniowego warto mieć na uwadze, iż operacje wyko-
nywane w edytorze MathCAD mają jawną formę i dodatkowo istnieje możliwość
kontrolowania poprawności obliczeń. Dostępnych jest wiele innych konkurencyjnych
aplikacji do obliczeń matematycznych, jednak często są one czasochłonne, gdyż opa-
nowanie ich obsługi niejednokrotnie sprawia kłopoty. Tak więc nie mają one szansy
na powszechne zastosowanie, w odróżnieniu od pakietu MathCAD, w którym pra-
ca jest dużo bardziej intuicyjna dla użytkownika. Dzięki temu MathCAD zajmuje
szczególną pozycję, a sposoby wykorzystania funkcji oferowanych przez aplikację są
ograniczone wyłącznie wyobraźnią użytkownika.
Bibliografia
[1] W. Paleczek: MathCAD 12, 11, 2001i, 2001, 2000 w algorytmach, Aka-
demicka Oficyna Wydawnicza EXIT, Warszawa 2005
[2] W. Regel: MathCAD przykłady zastosowań, Wydawnictwo MIKOM, War-
szawa 2004
[3] J. Pietraszek: MathCAD. Ćwiczenia praktyczne, Wydawnictwo HELION,
Gliwice 2002
[4] M. Sokół: MathCAD leksykon kieszonkowy, Wydawnictwo HELION, Gli-
wice 2005
[5] L. Włodarski, W. Krysicki: Analiza matematyczna w zadaniach, część I,
Wydawnictwo Naukowe PWN, Warszawa 1999
[6] M. Gewert, Z. Skoczylas: Analiza matematyczna 2, Oficyna Wydawnicza
GiS, Wrocław 2005
[7] A. Bodnar, W. Dziewiałtowski, T. Ziębakowski: MathCAD instrukcja do
ćwiczeń laboratoryjnych z informatyki, Politechnika Szczecińska, Wydział
Mechaniczny, Szczecin 2002
[8] http://adam.imir.agh.edu.pl/dydakt/mcad/wpr mcad.pdf
[9] http://www.ia.agh.edu.pl/personal/pszwed/labsp98/AccessBasic/Bledy.html
[10] http://www.lysy79.republika.pl/pliki/is/materialy/mathcad/mathcad1.pdf
[11] http://pl.wikipedia.org/wiki/Krzywe Lissajous
Załączniki
Płyta CD zawiera:
• egzemplarz pracy w formie elektronicznej,
• prezentację pracy,
• plik aplikacji MathCAD z projektem.