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, sMnct, 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 funcMon, 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ówNAZWY 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 xOPIS 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 -‐ itle(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 aM-‐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 funcMon
-‐ 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)=a
1
x
n
+a
2
x
n-‐1
+...+a
nx
+a
n+1
; a=poly( r ) -‐
zwraca wektor a współczynników a
1
, a
2
a
3
, ..., a
n+1
wielomianu W(x,a) o pierwiastkach podanych w postaci wektora
r=[r
1
,r
2
, ..., r
n
]; 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 (a
1
) do wyrazu wolnego (a
n+1)
r=roots(a) -‐ wraca wektor r pierwiastków wielomianu W(x,a); a jest wektorem współczynników wielomianu a
1
, a
2
, a
3
, ..., a
n
+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