Czwicienie 2 1. Wektory i macierze Wektor można definiować jako ciąg (patrz ćw.7) lub przez wstawienie macierzy o jednej kolumnie lub jednym wierszu (z palety przycisków "macierze i wektory"). Rozwiązywanie układu N równań liniowych z N niewiadomymi - metodą odwracania macierzy (na przykładzie 3 równań): Załóżmy, że mamy rozwiązać układ trzech równań (z trzema niewiadomymi): 2x - 6y = 8.56z -5y + z = 0 x + y +z = 15.5 1) Opis podstaw matematycznych metody (zbędnych dla Mathcad'a): Trzeba najpierw układ równań doprowadzić do regularnej postaci m.in zastępując dotychczasowe nazwy zmiennych nazwami x1, x2, x3..., wstawiając współczynniki zerowe tam gdzie brak niewiadomej i pozostawiając po prawej tylko "wyrazy wolne" : a11*x1 + a12*x2 + a13*x3 = c1 a21*x1 + a22*x2 + a23*x3 = c2 a31*x1 + a32*x2 + a33*x3 = c3 W naszym przypadku, po zastąpieniu nazw x, y, z nazwami x1, x2, x3: 2*x1-6*x2-8.56*x3 = 0 0*x1-5*x2 + 1*x3 = 0 1*x1 + 1*x2 + 1*x3 = 15.5 po wprowadzeniu oznaczeń dla wektorów i macierzy: zapis macierzowy układu równań ma postać: a * x = c Układ ten rozwiązuje się przez lewostronne pomnożenie obu stron przez macierz odwrotną do a ponieważ [a -1 * a] to macierz jednostkowa to: a -1 * a * x = a -1 * c x = a -1 * c
2) Rozwiązanie układu N równań liniowych w Mathcadzie - niezależnie od liczby równań - składa się zawsze tylko z czterech wzorów. W naszym przypadku: Uwaga: -1 to NIE wykładnik potęgi lecz operacja odwracania macierzy. 2. Funkcje w MATHCAD Mathcad umożliwia korzystanie z bardzo wielu gotowych, "wbudowanych w system" funkcji (matematycznych, logicznych, tekstowych,...), nazywanych funkcjami standardowymi. Dodatkowo użytkownik może na własne potrzeby definiować dowolne "funkcje użytkownika". Najlepiej wstawiać funkcje korzystając z menu "Insert function" lub przyciskiem [f(x)], czytając objaśnienia dotyczące funkcji oraz jej argumentów. PAMIĘTAJ, że - ZA NAZWĄ FUNKCJI zawsze muszą wystąpić "przyklejone do niej" NAWIASY OKRĄGŁE zawierające jej argumenty. Funkcje wykorzystywane są jako elementy wyrażeń. Użycie funkcji nazywa się wywołaniem funkcji. Aby prawidłowo wywołać funkcję trzeba znać: rolę, typ oraz kolejność jej argumentów, a także jednostki miar jej wartości. Na przykład trzeba wiedzieć, że: argumentami funkcji trygonometrycznych muszą być kąty w RADIANACH. Możemy jednak podawać wartości argumentów w stopniach ale wówczas mnożymy je przez symbol jednostki miary: (deg czyli stopnie) i Mathcad sam przelicza je na radiany. Jeśli funkcja ma kilka argumentów, to ważne jest aby nie pomylić ich kolejności. Na przykład dla funkcji angle(x,y) - zwracającej kąt między osią X a linią wyznaczoną przez początek układu i punkt (x,y) - pierwszym argumentem musi być wartość odciętej tego punktu a drugim wartość rzędnej (a nie odwrotnie). Argument funkcji może być nie tylko skalarem ale także ciągiem (czyli w Mathcadzie zmienną zakresową) lub wektorem albo macierzą. Zastosowanie funkcji do wszystkich elementów macierzy sygnalizuje wówczas strzałka (tzw. wektoryzacja). Przykłady wywołania funkcji sin(alfa):
Uwaga: Przy definiowaniu funkcji użytkownika: - po lewej stronie musi być nazwa nowej funkcji (wymyślona przez nas) oraz w nawiasach okrągłych nazwy zmiennych stanowiących argumenty funkcji; - w wyrażeniu po stronie prawej muszą wystąpić te same argumenty; - argumenty nie mają jeszcze określonych wartości - czyli są parametrami formalnymi zastosowanymi tylko do definicji a nie do obliczeń. 3. Tabele i wykresy funkcji Aby uzyskać tabelę wartości oraz wykres typu X-Y dowolnej funkcji jednej zmiennej należy: 1. dobrać dla danej funkcji odpowiedni przedział [A,B] oraz okres próbkowania (przyrost) dx 2. zdefiniować ciąg wartości zmiennej niezależnej - jako zmienną zakresową np.: x := A, A+dx..B 3. podać wyrażenie definiujące wykreślaną funkcję lub użyć funkcji wcześniej zdefiniowanej Uwaga: złe dobranie przedziału [A,B] a także okresu próbkowania dx może dać niespodziewany i zły wykres
WYKRES typu X-Y podobnie jak inne typy wykresów można wstawić odpowiednim przyciskiem z palety wykresów. Przy obu osiach pojawią się po 3 puste znaczniki. Przy osi poziomej wpisujemy tylko do środkowego znacznika nazwę zmiennej niezależnej (np.: x). Podobnie przy osi pionowej wpisujemy tylko do środkowego znacznika albo wyrażenie definiujące funkcję albo nazwę funkcji i w nawiasie argumenty (np.: sin(x)). Pozostałe znaczniki pozostawiamy puste. Aby na jednym wykresie można przedstawić kilka funkcji - trzeba przy osi pionowej oddzielać ich nazwy przecinkami. Po wstawieniu trzeba wykres PRZEMIEŚCIĆ, POWIĘKSZYĆ i SFORMATOWAĆ Aby zaznaczyć wykres do przemieszczania i powiększania należy myszką z zewnątrz zakreślić (przerywaną linią). Gdy jest zaznaczony linią przerywaną to można go myszką przesuwać oraz zmieniać jego rozmiary - ciągnąc myszką za prawy dolny narożnik. Aby formatować wykres trzeba kliknąć na nim podwójnie myszką aby pojawiło się okno formatowania. Opcje "Grid Lines" pozwalają włączyć siatkę wykresu. Po wybraniu zakładki "Traces" można określać kolory i atrybuty linii, punktów, słupków itd. Wykres trójwymiarowy Zdefiniujmy funkcję do obliczania sinusa z sumy kwadratów i nazywając ją na przykład "Miska": Miska(p,q) : = sin(p 2 + q 2 ) Umieszczenie p i q w nawiasach po nazwie funkcji - sygnalizuje, że są to parametry formalne użyte tylko do zdefiniowania funkcji i nie muszą mieć określonych wartości. Definiujemy zakresy wskaźników i ciągi wartości, które użyjemy jako argumenty tej funkcji: N : = 20 i : = 0.. N j : = 0.. N Wartości dla wykresu trójwymiarowego muszą być umieszczone w macierzy:
Mathcad nie wyświetli na ogół całej macierzy ale po kliknięciu wewnątrz pojawią się paski przewijania. Wykres trójwymiarowy wybieramy z palety przycisków i formatujemy podwójnym kliknięciem Podobne zadanie:
4. Znajdowanie miejsc zerowych (pierwiastków) wielomianu Pierwiastkami wielomianu W(x) są takie wartości x dla których W(x)=0. Na wykresach y=w(x) są to punkty w których wykres W(x) przecina oś x. Liczba zespolonych pierwiastków wielomianu jest zawsze równa jego stopniowi, ale na wykresie będą widoczne tylko pierwiastki rzeczywiste (których może być mniej) A. Rozwiązanie graficzne: - definiujemy wielomian jako funkcję użytkownika W(x) - dla danych granic przedziału [np.: Xp, Xk] definiujemy Dx [np.: Dx:=0.01*(Xk-Xp)] oraz ciąg x, - sporządzamy wykres i odczytujemy współrzędne punktów w których wykres przecina oś poziomą (oś odciętych), przy czym pomocne mogą być operacje ZOOM oraz TRACE (uzyskiwane z menu kontekstowego dla wykresu). Wyniki warto porównać z uzyskanymi obliczeniowo - jak poniżej
B. Rozwiązanie analityczne: Aby wyznaczyć wszystkie pierwiastki wielomianu obliczeniowo przy pomocy Mathcad'a należy wykonać dwa kroki: 1) Do zmiennej (np. v) podstawić wektor kolumnowy współczynników wielomianu, wpisując je od końca czyli od wyrazu wolnego aż do współczynnika przy najwyższej potędze - zawsze N+1 współczynników dla wielomianu stopnia N, to znaczy nie wolno pominąć współczynników zerowych! Na przykład dla wielomianu 3-ciego stopnia (N=3): x3-10x + 2 = 0 musimy wpisać 4 współczynniki (N+1 = 4) albo ręcznie albo za pomocom wbudownej w Mathcad funkcji coeffs z palety Symbolic x 3 10x 2 coeffs 2 10 0 1 2) Zastosować funkcję polyroots z opisanym wyżej wektorem współczynników jako jej argumentem. Można po prostu napisać: polyroots(v)= ale lepiej wynik zapamiętać w osobnym wektorze np.: r := polyroots(v) r= Aby wyświetlić wyniki jako poziomy (a nie pionowy) słupek można zastosować transponowanie (symbol z palety macierzowej): UWAGI: Jeśli obie metody umieszczamy w jednym dokumencie to warto zadbać aby DANE czyli współczynniki wielomianu wystarczyło wpisać tylko raz (a nie tak jak powyżej - do wektora i osobno w definicji funkcji wielomianowej). Wówczas poprawiony dokument moze wyglądać tak:
5. Układy równań i nierówności nieliniowych (Given - Find) Pamiętajmy: warunkiem koniecznym (choć nie wystarczającym) dla istnienia rozwiązania jest taka sama liczba niewiadomych jak liczba równań. Najprostszy układ stanowią dwa równania z dwoma niewiadomymi x, y: ogólnie w postaci uwikłanej, zawierające równości wyrażeń: w1(x,y) = w1(x,y) w3(x,y) = w4(x,y) a czasem w postaci funcyjnej: y = f1(x,y) y = f2(x,y) Każde z równań określa osobną krzywą na płaszczyźnie XY, a rozwiązaniami są pary współrzędnych punktów przecięcia tych krzywych - spełniajace oba równania.
Rozwiązanie analityczne układu równań i nierówności nieliniowych: Aby w Mathcadzie rozwiązać dowolny układ równań i nierówności nieliniowych wystarczy wykonać 4 kroki: 1. Nadać wartości startowe wszystkim niewiadomym. Np.: x := 2 y := 1 2. Wpisać słowo kluczowe: given 3. Wpisać układ równań i nierówności stosując logiczny (wytłuszczony) znak "=" z palety Boolean Np.: albo y = f1(x) w1(x,y)=w2(x,y) y = f2(x) w3(x,y)=w4(x,y) 4. Zastosować funcję FIND do znalezienia szukanych rozwiązań: Np.: R := find(x,y) R= W wyniku uzyskamy wektor jednego rozwiązania R (zawierający parę współrzędnych). Aby uzyskać inne rozwiązanie (jeśli istnieje), trzeba zmienić wartości startowe (wstawiane na początku). PRZYKŁAD Jak już wspomniano, równania krzywych nie muszą zawierać funkcji, w szczególności mogą być w postaci uwikłanej wyrażenie=wyrażenie, jak to pokazano poniżej. Przykładowo, jeśli prosta y=ax+b przecina okrąg x 2 +y 2 =r 2 w punktach P1 i P2 to (mając dane r, a, b) możemy poszukać współrzędnych punktu P1 następująco: Zmieniając nierówność i zgodnie z nią także wartości startowe możemy wyznaczyć współrzędn e drugiego punktu (P2) przecięcia okręgu z prostą. Dla niektórych zestawów danych nie istnieje rozwiązanie a gdy istnieje to i tak przy pewnych wartościach startowych możemy nie otrzymać rozwiązania i trzeba będzie je zmienić.
Aby otrzymać te rozwiązania graficznie (i sprawdzić na wykresie) najłatwiej będzie wykreślić okrąg parametrycznie: Jest to osobna metoda więc i osobne zadanie, dlatego jeśli chcemy umieścić je w tym samym dokumencie i uniknąć kolizji zmiennych - użyjmy innych oznaczeń, na przyklad małych liter x,y, zamiast użytych przy równaniach dużych X, Y. Pamiętamy (mam nadzieję), że odczytując współrzędne z wykresu warto zastosować ZOOM (powiększanie) i TRACE ( odczyt współrzędnych). Aby okrąg nie był zdeformowany trzeba w opcjach formatowania wykresu (po podwójnym kliknięciu) ustawić jednakowe skale na obu osiach (Equal Scales).