Metody numeryczne-to dział matematyki stosowanej umożliwiający rozwiązywanie różnorodnych problemów z dziedziny techniki, medycyny, ekonomii. Matlab- jest programem przeznaczonym do wykonania różnorodnych obliczeń numerycznych. F. generujące macierz: eye(n,m)-macierz jednostkowa o rozm. nxm; ones(n,m)-macierz o rozm. nxm wszystkie elem. równe 1; zeros(n,m)-elem. równe zero. A=diag(x)-tworzenie macierz przekątnej ze składnikami wektora x na głównej przekątnej. x=diag(A)-tworzenie wektora x z elementami znajdującymi się na przekątnej. inv(A)-macierz odwrotna do A. tril(A)-utworzy z macierzy A macierz 3-kątnej dolnej(wyzerowanie elem. leżących powyżej gł. przekątnej). triu(A)-||- poniżej głównej przekątnej. disp(A)-wyświetla zawartość macierzy A. Typy fundamentalne-tworzenie zmiennych wybitnego typu poprzez funkcje: double, spense, char, stinct, unit 8. Typy wielowymiarowe-elementy: liczby, znaki, bloki/struktury, dostęp do danego elementu macierzy po podaniu nr wierszy i nr kolumny. Typy znakowe: łańcuchy-wektory składające się ze znaków definiowanych za pomocą apostrofów- s=’student’; tablice znakowe-liczba znaków w wierszach musi być taka sama. Dwukropek: A(:,j)-wypisanie j-tej kolumny macierzy A; A(i,:)-wypisanie i-tego wiersza macierzy A; A(j:k)-wypisanie w jednym wierszu elementów macierzy A, począwszy od elem. o indeksie j, aż do indeksu k, gdy j>k to powstanie wektor pusty; sum(A(:,end))-suma elementów ostatniej kolumny A; A(i,:)=[]-usuwanie i-tego wiersza macierzy A; A(:,j)=[]-usuwanie j-tej kolumny macierzy A. M-pliki skryptowe: zawierają ciąg poleceń własnych, pisanych przez użytkownika i jego algorytmy obliczeniowe; działają tylko na zmiennych dostępnych w przestrzeni roboczej(nie pobierają żadnych argumentów wejściowych i nie zwracają arg. wyjściowych); wywołanie-poprzez podanie jego nazwy, jeśli skrypt znajduje się w bieżącym katalogu; używa się w nich poleceń umożliwiających interaktywną współpracę programu z użytkownikiem; wadą m-pliku skryptowego jest możliwość powstania konfliktu nazw zmiennych w przestrzeni roboczej; m-pliki skryptowe traktujemy jako etap wstępny w przygotowaniu m-pliku funkcyjnego; wywołanie komentarza(opis działania); m-plik działa poprawnie jeśli zmienne istnieją już w przestrzeni roboczej. M-pliki funkcyjne: zawierają funkcje tworzone przez użytkownika; rozpoczynają się od słowa kluczowego function, następnie nazwa funkcji i lista argumentów wejściowych; nazwa funkcji musi być taka sama jak nazwa M-pliku(bez rozszerzenia); działają na zmiennych lokalnych i globalnych. Zmienne lokalne i globalne: argumenty wejściowe i wprowadzone zmienne w M-pliku funkcyjnym mają charakter lokalny w ciele funkcji wielkości te nie są przechowywane w przestrzeni roboczej z chwilą zakończenia wykonywania funkcji; istniejące zmienne w przestrzeni roboczej nie są dostępne w ciele funkcji. inst2str-konwersja liczb całkowitych w łańcuch. eval-wykonanie łańcucha jako poleceń M-pliku. Funkcja inline: f1=inline(‘sin(2*t)+sin(t)’);y=f1(pi). Formaty liczb: format short-reprezentacja stałoprzecinkowa pięciocyfrowa; format long- pietnastocyfrowa; format short e-zmiennoprzecinkowa pięciocyfrowa; format long e-15-cyfrowa; format short g-najlepsza stała zmiennoprzecinkowa; format long g--||-; format rad-ułamek dziesiętny za pomocą małych; format hex-16-stkowe wyświetla zawartosć komórek pamięci zawierajacych daną liczbę; format + - wyświetla + dla dodatnich i – dla ujemnych; format bank-format walutowy część całkowita do 2 miejsca po przecinku. poly-wyznacza współczynniki wielomianu; p1=[a,b,c,d] r=roots(p1)-oblicza pierwiastki wielomianu y=polyval(p1,r)-oblicza wartość wielomianu dla podanego argumentu (dla dowolnego x); fzero(‘F’,x0)-oblicza miejsca zerowe funkcji o nazwie F, pierwiastki funkcji f w postaci łańcucha. Dekompozycja:1. Faktoryzacja Cholesky’ego dla macierzy symetrycznych dodatnio określonych (chol). 2. Eliminacja Gaussa dla macierzy kwadratowych 3. Ortogonalizacja macierzy prostokątnych. Rząd macierzy-to liczba liniowa niezależnych wierszy/kolumn macierzy. rank-oblicza rząd macierzy. Problemy wyznaczania wartości własnych i wektorów własnych: brak dokładnych i szybkich metod; przy wyborze metody należy uwzględnić cechy macierzy, czy poszukujemy wartości rzeczywistych czy zespolonych. eig-oblicza wartości i wektory własne macierzy. Macierz Hessenberga-nazywamy macierz będącą sumą macierzy 3-diagonalną i trójkątnej górnej; każda macierz kwadratowa jest podobna do macierzy Hessenberga (ma takie same wartości własne). Algorytm: H=hess(A) H:[Q,R]=gr(H) H=R*Q X=A\B jest równoważne X2=inv(A)*B jest równoważne X1=A^(-1)*B TYPY DANYCH -podstawowym typem danych w MATLABie jest tablica
(macierz) o elementach rzeczywistych lub zespolonych -wszystkie zmienne w MATLABie są traktowane jak macierze - wektory i skalary są szczególnymi przypadkami macierzy - każda macierz jest identyfikowana przez nazwę zmiennej - nazwy zmiennych rozpoczynają się od litery, a po niej mogą być litery, cyfry i znaki podkreślenia - pamiętanych jest 31 pierwszych znaków
NAZWY I DEFINICJE ZMIENNCYCH -MATLAB rozróżnia duże i małe litery - polecenia standardowe należy pisać małymi literami - do nazywania własnych programów i zmiennych można używać
małych i dużych liter - definiowanie typu i wymiarów macierzy odbywa się automatycznie -
przez rozpoznanie rodzaju wpisanych wartości - MATLAB generuje zmienną automatycznie podczas jej pierwszego użycia - aby sprawdzić wartość istniejącej już zmiennej, należy w wierszu
poleceń wpisać jej nazwę. -po wydaniu polecenia i naciśnięciu klawisza Enter Matlab natychmiast
wyświetla jego wynik - umieszczenie po poleceniu średnika spowoduje wykonanie obliczeń,
ale bez wyświetlania wyniku - polecenie powinno się mieścić w jednym wierszu - kilka poleceń w jednym wierszu oddzielamy od siebie przecinkami lub średnikami.
FUNKCJE MATEMATYCZNE abs - wartość bezwzględna
funkcje trygonometryczne, hiperboliczne i odwrotne: exp - e do x; fix - zaokrągla w stronę zera; floor- zaokrągla w dół; log - logarytm naturalny; log2 - logarytm o podstawie 2; round - zaokrągla do najbliższej całkowitej; sign – znak; sqrt- pierwiastek
MACIERZE eye(n) – macierz jednostkową nxn; ones(n) - macierz nxn o elementach równych 1 ; zeros(n) - macierz zerowa nxn; rand(n) - macierz nxn wypełniona liczbami pseudolosowymi z
przedziału <0,1> o rozkładzie jednostajnym; A=diag(x) - macierz przekątniowa A ze składnikami wektora x na głównej przekątnej; x=diag(A) - wektor x utworzony z elementów znajdujących się na
głównej przekątnej macierzy A; inv(A) - macierz odwrotna do A
STAŁE MATEMATYCZNE pi - przybliżenie wartości; eps - względna dokładność zmiennoprzecinkowa
i lub j - pierwiastek z liczby –1 nieskończoność (ang. infinity); jest rezultatem operacji, Inf lub inf - która przekracza zakres arytmetyki komputera, np.dzielenie przez 0; NaN lub nan - nie liczba; jest wynikiem matematycznie niezdefiniowanych operacji
OPERACJE NA WEKTORACH max(x) - zwraca największy element wektora x; min(x) - zwraca najmniejszy element wektora x; sum(x) - zwraca sumę elementów wektora x; prod(x) - zwraca iloczyn elementów wektora x; mean(x) - zwraca średnią arytmetyczną elementów wektora x
OPIS WYKRESÓW wyświetla łańcuch znaków tekst jako opis osi x aktywnego wykresu - xlabel(tekst)
wyświetla łańcuch znaków tekst jako opis osi y aktywnego wykresu - ylabel(tekst)
włącza/wyłącza wyświetlanie pomocniczej siatki współrzędnych - grid on/off
wyświetla legendę; łańcuch znaków s1 jest opisem odnoszącym się do pierwszego wykresu,s2-drugiego,... - legend(s1,s2,..)
wyświetla łańcuch znaków tekst w miejscu określonym przez współrzędne x,y - text(x,y,tekst)
wyświetla łańcuch znaków tekst jako tytuł aktywnego wykresu - title(tekst)
rysuje wykres y(x) z określeniem dokładnego wyglądu linii; s-łańcuch zawierający kody - plot(x,y,s)
rysuje wykres elementów wektora y, przyjmując x=1:length(y) - plot(y)
rysuje wykres elementów wektora y względem elementów wektora x – plot(x,y)
OPERATORY PORÓWNANIA a==b równy; a~= nierówny; a<b mniejszy; a>b większy; a<=b mniejszy lub równy; a>=b większy lub równy a
M-PLIKI - własne programy (wieloliniowe) można pisać w edytorze MATLABa lub w notatniku - zapisywane są do plików z rozszerzeniem *.m - uruchamiane (wywoływane) są przez wpisanie nazwy pliku (bez rozszerzenia .m) w oknie komend. Rozróżniamy: skrypty - operujące na zmiennych przestrzeni roboczej Matlaba; funkcje - posiadające zmienne lokalneSKRYPTY -skrypt jest plikiem tekstowym o rozszerzeniu .m (m-plikiem), zawierającym polecenia i instrukcje Matlaba - skrypty nie pobierają żadnych argumentów wejściowych ani nie zwracają argumentów wyjściowych - mogą tylko operować na zmiennych dostępnych w przestrzeni
roboczej Matlaba.
FUNKCJE Pierwszy wiersz m-pliku musi zawierać definicję nowej funkcji: - słowo kluczowe function
- nazwę funkcji; - musi być taka sama, jak nazwa pliku (bez rozszerzenia .m), w którym znajduje się funkcja; - wartości funkcji (lista argumentów wyjściowych); - parametry funkcji (lista argumentów wejściowych).
PIERWIASTKI WIELOMIANU Wielomian n-tego stopnia ma ogólną postać: W(x,a)=a1xn+a2xn-1+...+anx+an+1; a=poly( r ) - zwraca wektor a współczynników a1, a2 a3, ..., an+1 wielomianu W(x,a) o pierwiastkach podanych w postaci wektora r=[r1,r2, ..., rn]; p=polyval(a,x0) - zwraca wartość wielomianu W(x,a) w punkcie x=x0; współczynniki wielomianu określa wektor a, przy czym muszą być one uszeregowane w kolejności od najbardziej znaczącego (a1) do wyrazu wolnego (an+1)
r=roots(a) - wraca wektor r pierwiastków wielomianu W(x,a); a jest wektorem współczynników wielomianu a1, a2, a3, ..., an+1; x1=fzero(f,x0) - zwraca miejsce zerowe x1 nieliniowej funkcji jednej zmiennej f(x); argument x0 określa początkowe przybliżenie wartości szukanego miejsca zerowego; f jest łańcuchem znaków określającym funkcję Matlaba. rank(A)- oblicza rząd macierzy A; det(A) - oblicza wyznacznik macierzy kwadratowej A; norm(A) - oblicza normę macierzy A; cond(A) - oblicza liczbę warunkową macierzy A; L=eig(A) - zwraca wektor L, zawierający wartości własne macierzy
kwadratowej A; x=inv(A)*b lub x=b/A - rozwiązuje układ równań A*x=b (b-wektor
kolumnowy)
PRZYKŁAD z=5+10i →z=5.0000+10.0000i; z1=real(z) → z1=5 – l. rzeczywista; z2 = imag(z) → z2 = 10 – l.urojona
PRZYKŁAD x=[-10:1:10]; f=inline('(1./(x-0.3).^2+0.01)+(1./(x-0.9).^2+0.04)-6'); y=f(x); z=fzero(f,3); plot(x,y)
PRZYKŁAD a =1 b =2 c =3; K>> W=2*a.^(3)+3*b.^(2)+4*c; W = 26; K>> r=roots([a,b,c])
r =-1.0000 + 1.4142i; -1.0000 - 1.4142i; K>> p=poly(r); p =1.0000 2.0000 3.0000