Ćw 7. Matlab (1)
Transkrypt
Ćw 7. Matlab (1)
Ćw 7. Matlab (1) Matlab (Mathworks) to licencjonowany pakiet do obliczeń naukowych, tworzenia wykresów, analiz i symulacji układów dynamicznych itp. Podstawowa praca w środowisku odbywa się sposobem interakcyjnym, w oknie poleceń (Command Window) wpisujemy pojedyncze instrukcje obliczeniowe (wysyłane klawiszem Enter) i na bieżąco otrzymujemy wyniki. Domyślne środowisko (Desktop Layout) składa się z okna Command Window, w którym wpisujemy kolejne polecenia, okna Command History (historia utworzonych poleceń), ewentualnie okna z zakładkami Workspace (obszar roboczy - lista zainicjowanych przez użytkownika zmiennych i ich wartości) i Current Directory (zawartość katalogu roboczego). Sposoby obsługi: • dialog - wpisywanie kolejnych poleceń w oknie Command Window, • praca wsadowa – wykonywanie ciągu poleceń zapisanych w pliku z rozszerzeniem .m Wpisać w oknie Command Window po znakach zachęty >> przykładowe pojedyncze instrukcje, każdą wykonać (Enter) i zanalizować odpowiedzi Matlaba - obserwując pojawienie się nazwanych zmiennych i ich wartości w okienku Workspace: 3*5 a=1.2 % proste obliczenie (przypisanie wyniku do zmiennej domyślnej ans ang. answer) %przypisanie (nadanie wartości) zmiennej - uwaga: kropka dziesiętna! % po znaku % piszemy komentarze - ignorowane przez MATLAB’a b=1.5E5 %przypisanie wartości w formacie naukowym (zmiennoprzecinkowym) – 1.5E5 to 150000 c=(a+b)/3 %przypisanie wartości prostego wyrażenia (znane wartości a i b) c %prosty sposób wyświetlenia wartości zmiennej c disp(a) %wyświetlenie wartości zmiennej a (ang. display) a=sin(pi/4)+b %przypisanie dla zmiennej a wartości prostego wyrażenia z użyciem funkcji. Uwagi: Operatory działań arytmetycznych jak w Excelu: + – * / ^. Operacja potęgowania wykonywane przed operacją zmiany znaku (-2^2= -4 ale 2^-1=0.5). Nazwy zmiennych muszą się zaczynać od litery, a potem dowolny ciąg liter, cyfr i znaków podkreślenia _ . W nazwach zmiennych istotne są duże i małe litery – x i X to dwie różne zmienne. Edycja ewentualnego błędu polecenia po przewinięciu pamięci poleceń - przy pomocy strzałek klawiatury ↓↑. Wybrane funkcje arytmetyczne sin(x), cos(x), tan(x), cot(x) – trygonometria (kat w radianach), sind(x), cosd(x), tand(x), cotd(x) – trygonometria (kąt w stopniach), sqrt(w) – pierwiastek kwadratowy abs(w) – wartość bezwzględna exp(w) – funkcja wykładnicza (ew) power(a, b) – potęga (ab) – uwaga: wymiennie można uzywać operatora ^ log(w) – logarytm naturalny! log10(w) – logarytm dziesiętny rem(x, y) – reszta z dzielenia całkowitego x/y rand – liczba losowa z przedziału (0, 1) fix(w), ceil(w), floor(w), round(w) – funkcje zaokrągleń gdzie: w, a, b, x, y – dowolne wyrażenia obliczeniowe. pi – stała π Uwaga: nazwy funkcji, stałych (np.pi) piszemy zawsze małymi literami. Przykład: Obliczyć wartość wyrażenia: − −2 dla x=3.45 Wpisujemy kolejno: x=3.45 ← y=(x^3-exp(-2*x))/(power(x,6)-2) ← Inne użyteczne polecenia: help %pomoc globalna help elfun % pomoc – spis funkcji elementarnych help rem % pomoc na temat wybranej funkcji (tu: rem) format long % większa dokładność wyświetlanych wyników format short % dokładność podstawowa demo % program demonstracyjny Matlab'a clc % czyszczenie ekranu clear % usunięcie wszystkich zmiennych z obszaru roboczego clear x % usunięcie zmiennej x z obszaru roboczego Zadanie 1. Wykonać przykładowe obliczenie wyrażenia dla wartości x=2.43: − −√ − 2. Wykonać poniższą sekwencję operacji i zrozumieć działanie: format long n=5 pi5=round(pi*10^n)/10^n Operacje na tablicach m=[1 2 3 ] %przypisanie wartości elementom macierzy (wektor wierszowy) m0= [1; 2; 1; 1; 0] % przypisanie macierzy (wektor kolumnowy) m1 = [1.1 2.1 3.55 ; -2 1 1; 1.44 0 0] %macierz kwadratowa m2=[1 1 1 1 1] m3=[1 2 3 4 5] m4 = m1 + m2 % dodawanie macierzy (uwaga na wymiary i rozmiar) m5 = m4*m0 % mnożenie macierzy (uwaga na wymiary i rozmiar) m5t = m5' % macierz transponowana m5o = m5^(-1) % macierz odwrotna m5*m5o % sprawdzenie - macierz jednostkowa det(m1) % funkcja obliczenia wyznacznika macierzy kwadratowej m3(3) % dostęp do elementu macierzy (indeks elementu) m1(2,3) % dostęp do elementu macierzy (indeksy wiersz-kolumna) Inny sposób definicji tablic: M1=0:10:90 %Uwaga: wartość_początkowa:krok:wartość_końcowa Przykład: Zinterpretować rezultat wypełnienia tablicy: M2=[M1; sin(M1*pi/180)] Zadania: 1. Wypełnić dwie macierze dwuwymiarowe (wiersze, kolumny) rozmiarze MxN, a następnie: • dodać je do siebie, • pomnożyć je przez siebie. Jaki rozmiar w obu wymiarach powinny mieć macierze, żeby dozwolone było wykonanie obu operacji? 2. Zastąpić operator * mnożenia macierzowego dwóch macierzy operatorem dwuznakowym .* . Zinterpretować wynik. Kiedy taka operacja jest możliwa? 3. Wykonać dzielenie elementowe macierzy przez macierz wykorzystując operator ./ (obie ten sam rozmiar w obydwu wymiarach). Zinterpretować wynik. 4. Jaki wymóg rozmiarów musi spełniać macierz, aby dało się ją podnieść do kwadratu? Wypróbować operatory: ^ i .^ 5. Wypróbować i wyjaśnić działanie kolejnych poleceń: A=round(10*rand(5,5)) mx=max(A) mx2=max(max(A)) s=sum(sum(A)) w1=size(A) w2=numel(A) 6. Wykonać ciąg operacji i zrozumieć jego działanie: M=rand(3,3) M(7,7)=1 Rozwiązanie układu równań liniowych 2x + 3y – 4 z = 5 x + y – z = 3,5 -4 y + 2,5 x – z = 2 Rozwiązanie: A = [2 3 –4 ; 1 1 -1 ; 2.5 –4 –1] % Uwaga: zachować kolejność zmiennych B = [ 5 ; 3.5 ; 2] X= A^(-1)*B %wektor rozwiązań A*X %sprawdzenie – wynikiem powinien być wektor wyrazów wolnych B spr= 2*X(1)+3*X(2) –4*X(3) –5 %sprawdzenie 1 go równania (powinno dać 0). Pierwiastki wielomianu Funkcja roots (argumentem funkcji jest tablica współczynników [an an-1 ... a0]) Przykład: Dla równania: 5x4+x2 –2x –3 =0 roots ( [5 0 1 –2 -3] ) Zadanie: Rozwiązać poniższy układ równań: –x + y – 4.3 z + 2 v= 15 3x + y – v = 35 4 x + 0,5 y + z – 4.5 v = 2,2 12,5 y – z – 5 v = 12 Zmienne zespolone Przykłady działań: z1 = 5.0 + 5.0i z2 = sqrt(-1) z3 = angle(z1) z4 = 4*z3 % zmienna zespolona % i to jednostka urojona (√−1 ) % kąt ϕ k1 = angle(0+1i)*180/pi k2 = angle(1+0i)*180/pi z1o=1/z1 z4=z1*z2 Sprawdzić i wyjaśnić wyniki operacji: v1= log(0) v2=log(-1) v3=exp(log(-1)) Zadanie 1. Zdefiniować dwie zmienne zespolone: 4.5+4.7i –2.5 –5.6i 2. Wykonać dodawanie i mnożenie obu liczb zespolonych. 3. Zilustrować graficznie wynik dodawania dwóch liczb zespolonych w układzie kartezjańskim jako sumę dwóch wektorów (np. w programie Paint lub Visio).