OBLICZENIA NUMERYCZNE za pomocą pakietu MATLAB
Miejsca zerowe i minima funkcji 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: nazwę funkcji lub definicję funkcji inline x1=fminbnd(f,x0,xk) zwraca wartość x1, dla której nieliniowa funkcja jednej zmiennej f(x) osiąga minimum; argumentami funkcji są liczby x0 i xk, określające początek i koniec przedziału poszukiwań, oraz łańcuch znaków f
X=fminsearch(f,X0) zwraca wektor wartości X, dla których nieliniowa funkcja wielu zmiennych osiąga minimum; argumentami funkcji są: wektor X0, określający punkt startowy poszukiwań oraz f – łańcuch znaków, jak w przypadku funkcji fzero
Wszystkie powyższe funkcje można wywołać z opcjonalnym argumentem opcje, np.. x1=fzero(f,x0,opcje) Opcje określają parametry wywołania tych funkcji. Domyślne ustawienia parametrów można zmieniać za pomocą funkcji optimset: opcje=optimset(parametr, wartość,...) optimset – uzyskamy listę parametrów i ich możliwe wartości optimset(‘fminbnd’) – wyświetli nazwy parametrów oraz ich domyślne wartości dla funkcji fminbnd
Parametry zmieniane za pomocą funkcji optimset ‘Diagnostic’ Wydruk diagnostyki minimalizowanej funkcji lub rozwiązywanego równania; dopuszczalne wartości:’on’ lub ‘off’(domyślna) ‘Display’ Sposób wyświetlania wyników: bez wyświetlania (‘off’), wyświetlanie wyników po każdej iteracji (‘iter’), wyświetlanie tylko ostatecznego rozw.(‘final’-wart.dom.) ‘MaxFunEvals’ Maks.dozwolona liczba obliczeń wartości funkcji (l.całk.dodat.) ‘MaxIter’ Maks.dozwol.liczba iteracji (l.całk.dodat.) ‘TolX’ Dokładność wykonywania obliczeń(l.+)
Wyznaczanie pierwiastków wielomianu Wielomian n-tego stopnia ma ogólną postać: W(x,a)=a1xn+a2xn-1+...+anx+an+1, gdzie a1, a2, a3, ..., an+1 są współczynnikami wielomianu, uszeregowane według malejących potęg zmiennej x.
Funkcje wyznaczające pierwiastki wielomianów 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ści 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); jeśli x0 jest wektorem (macierzą), wartości wielomianu obliczane są dla wszystkich elementów wektora x0
r=roots(a) Zwraca wektor r pierwiastków wielomianu W(x,a); a jest wektorem współczynników wielomianu a1, a2, a3, ..., an+1
Ćwiczenie: wyznacz pierwiastki wielomianów: W(x)=x2+3x-4 W(x)=3x5-2x4+5x2-7
METODY NUMERYCZNE ALGEBRY LINIOWEJ 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 [V,D]=eig(A) Wyznacza macierz D, zawierającą na przekątnej wartości własne macierzy A, oraz macierz V wektorów własnych odpowiadających tym wartościom (A*V=V*D)
Ćwiczenie: oblicz rząd, wyznacznik i liczbę warunkową macierzy
Układy równań liniowych [L,U]=lu(A) Dokonuje rozkładu LU macierzy A, tzn.znajduje macierze L i U takie, że A=L*U, przy czym L-macierz trójkątna dolna, U-macierz trójkątna górna x=inv(A)*b lub x=b/A Rozwiązuje układ równań A*x=b (b-wektor kolumnowy) x=b/A Rozwiązuje układ równań x*A=b (b-wektor wierszowy)
Ćwiczenie: dokonaj rozkładu LU macierzy A Ćwiczenie: dokonaj rozkładu LU macierzy A. Sprawdź, czy dla znalezionych macierzy L i U spełniona jest równość A=L*U. Ćwiczenie: napisz skrypt rozwiązujący układ równań liniowych: 1 1 1 x1 3 1 2 3 x2 = 1 1 –1 1 x3 2
Ćwiczenie: napisz skrypt rozwiązujący układ równań liniowych dla danych wpisywanych z klawiatury.
INTERPOLACJA Zagadnienie interpolacji można sformułować następująco: na przedziale [a; b] danych jest n+1 różnych punktów x0, x1, ..., xn, które nazywamy węzłami interpolacji, oraz wartości pewnej funkcji y=f(x) w tych punktach f(x0)=y0, f(x1)=y1, ..., f(xn)=yn. Zadaniem interpolacji jest wyznaczenie przybliżonych wartości funkcji w punktach nie będących węzłami oraz oszacowanie błędu tych przybliżonych wartości.
W tym celu należy znaleźć funkcję F(x), zwaną funkcją interpolującą, która w węzłach interpolacji przyjmuje takie same wartości co funkcja y=f(x). Interpolacja jest w pewnym sensie zadaniem odwrotnym do tablicowania funkcji. Przy tablicowaniu mając analityczną postać funkcji budujemy tablicę wartości, przy interpolacji natomiast na podstawie tablicy wartości funkcji określamy jej postać analityczną.
Standardowe procedury Matlaba realizują interpolację za pomocą wielomianów pierwszego i trzeciego stopnia oraz funkcji sklejanych stopnia trzeciego.
Funkcje interpolujące yi=interp1(x,y,xi,metoda) Zwraca wektor yi, będący wartościami funkcji 1 zmiennej y=f(x) w punktach określonych wektorem xi; węzły interp.określają wektory x i y; metoda-łańcuch znaków określający metodę interp. zi=interp2(x,y,z,xi,yi,metoda) Zwraca macierz zi, zawierającą wartości funkcji 2 zmiennych z=f(x,y) w punktach określonych wektorami xi i yi; węzły interp.określają macierze x,y,z
vi=interp3(x,y,z,v,xi,yi,zi,metoda) Interpolacja funkcją 3 zmiennych, analogicznie jak interp2 vi=interpn(x1,x2,x3,...,v,y1,y2,y3,...) Interpolacja funkcją n zmiennych, analogicznie jak interp2
Metody interpolacji ‘linear’ – interpolacja liniowa, ‘spline’ – interpolacja funkcjami sklejanymi stopnia trzeciego, ‘cubic’ – interpolacja wielomianami stopnia trzeciego. Wszystkie metody interpolacji wymagają, aby ciąg x był monotoniczny.
Ćwiczenie: przyjmując dane z tabeli x -2 -1 0 2 y 0 1 1 2 znajdź wartości funkcji interpolującej w punktach –2,-1.9,-1.8,...,0,...,1.8,1.9,2. Zastosuj interpolację liniową i funkcjami sklejanymi. Dane oraz wyniki wyświetl na jednym rysunku.
Aproksymacja Jest to zagadnienie bardziej ogólne. Funkcja dana i funkcja szukana nie muszą przyjmować tych samych wartości w punktach węzłowych. Funkcję f(x) , znaną lub określoną tablicą wartości, będziemy aproksymować (zastępować) inną funkcją F(x), zwaną funkcją aproksymującą lub przybliżeniem funkcji f(x).
Standardową metodą aproksymacji w Matlabie jest aproksymacja średniokwadratowa wielomianami wybranego stopnia. Polecenie: a=polyfit(x,y,n) znajduje wektor a współczynników wielomianu stopnia n najlepiej dopasowanego do danych wektorów x, y. Wartość wielomianu aproksymującego w dowolnym punkcie x0 (wektorze x0) można wyznaczyć, korzystając z polecenia polyval(a,x0).
Ćwiczenie: przyjmując dane x, y z poprzedniego ćwiczenia, znajdź współczynniki wielomianu aproksymującego stopnia drugiego i trzeciego. Wyniki wyświetl na jednym rysunku.