Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wykład 6 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim https://play.google.com.

Podobne prezentacje


Prezentacja na temat: "Wykład 6 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim https://play.google.com."— Zapis prezentacji:

1 Wykład 6 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim https://play.google.com

2 Obliczenia numeryczne. Wykonując obliczenia numeryczne zakładamy: operujemy na liczbach, dopuszczając możliwość występowania niedokładności w ich reprezentacji, podczas obliczeń mogą występować pewne niedokładności.

3 Miejsca zerowe i minima funkcji.

4 Opcje Wszystkie te funkcje można wywołać z opcjonalnym parametrem opcje, np.: x1 = fzero(‘cos(x) - 0.2’, 3, opcje) Opcje określają parametry wywołania tych funkcji. Ustawienia tych parametrów można zmienić poprzez funkcję optimset. opcje = optimset(parametr, wartość,... ) Argumenty funkcji optimset to pary parametr – wartość, Parametr jest łańcuchem znakowym.

5 Funkcja optimset - lista parametrów i ich możliwych wartości (kilka):

6 Wywołanie z nazwą funkcji (wyświetla parametry dla konkretnej funkcji)

7 Przykłady parametrów funkcji optimset:

8 Miejsca zerowe Przykład: >> fzero('cos(2*x)-.2',8) ans = >> cos(2*ans)-.2 ans = e-015

9 >> op=optimset('Diagnostics','on',... 'Display','Iter'); >> fzero('cos(2*x)-.2',8,op) Func-count x f(x) Procedure initial search search search search search search search search search search Looking for a zero in the interval [7.0949, ] interpolation interpolation interpolation e-005 interpolation e-009 interpolation e-015 interpolation e-015 interpolation Zero found in the interval: [7.0949, ]. ans =

10 Minimum – funkcja 1 zmiennej Przykład >> funkcja=inline('sin(2*x)+cos(x)/2'); >>fplot(funkcja,[-2*pi, 2*pi]) >> x1=fminbnd(funkcja,-2,4) x1 = >> funkcja(x1) ans =

11 Minimum – funkcja 2 zmiennej Przykład >> fun=inline('-exp(-(x(1)-2).^2-x(2).^2)-exp(-(x(1)+2).^2-x(2).^2)'); >> x0=fminsearch(fun,[2 2]) x0 = >> fx0=fun(x0) fx0 = Do znalezienia minimum musimy Podać postać tej funkcji lub funkcję inline oraz punkt startowy. Jak widać na rysunku funkcja ta ma dwa minima. W zależności od tego jaki punkt startowy podamy, znajdziemy albo pierwsze albo drugie.

12 Pierwiastki wielomianów. Ogólna postać wielomianu: W(x) = a1xn + a2xn anx + an+1 współczynniki wielomianu a1, a2,... są uszeregowane według malejących potęg zmiennej x.

13 Przykład: W(x) = x2 + 3x – 4 >> roots([1 3 -4]) ans = -4 1 >> poly(ans) ans = W(x) = 3x5 – 2x4 + 4x3 – 6x + 1 >> roots([ ]) ans = i i

14 Układy równań liniowych Zapis macierzowy, każdy układ równań możemy przedstawić: A*X = B lub X*A = B Matlab dysponuje dwoma operatorami dzielenia, które odpowiednio rozwiązują przypadki: A*X = B mamy X = A\B – musi być równa liczba wierszy A i B X*A = B mamy X = B/A – musi być równa liczba kolumn A i B W technice częściej spotyka się pierwszy z tych przypadków. Macierz A w ogólnym przypadku może mieć w wierszy i k kolumn. Istnieją więc trzy możliwości: w = k – macierz kwadratowa, jeśli jest nieosobliwa X można wyznaczyć dokładnie; w > k – układ jest nadokreślony; w w < k – układ jest nieoznaczony (rozwiązanie zawiera najwyżej w niezerowych elementów;

15 Układ kwadratowy. Mamy układ trzech równań z trzema niewiadomymi. Musimy zdefiniować macierze A i B, a następnie obliczyć wynik. Przykład >> A=[ ; ; ] A = >> B=[ ]' B = -5 5 >> X=A\B X =

16 Układ nieoznaczony cz.1 Liczba równań jest mniejsza od liczby niewiadomych Przykład >> A=[ ; ] A = >> B=[1 2]' B = 1 2 >> X=A\B X =

17 Przykład cd. >> Z=null(A) Z = >> q=[2 17]' q = 2 17 >> X1=X+Z*q X1 = Układ nieoznaczony cz.2 Ogólne rozwiązanie takiego układu otrzymamy dodając do otrzymanego rozwiązania iloczyn macierzy Z będącej jądrem macierzy A i dowolnego wektora q. Jądro: Z = null(A) A*Z = 0

18 Układ nadokreślony. Gdy chcemy otrzymać n współczynników funkcji opisującej przebieg jakiegoś zjawiska. Dokonujemy wtedy np. dużo więcej niż n pomiarów i na ich podstawie szukamy wyniku. Przykład >> A=[1 -1 2; ; ; ] A = >> B=[ ]' B = >> X=A\B X =

19 Interpolacja. Zagadnienie dotyczy przechodzenia funkcji przez zadane punkty, tzw. węzły interpolacji. Standardowe procedury Matlaba realizują interpolację za pomocą wielomianów pierwszego i trzeciego stopnia, oraz funkcjami sklejanymi trzeciego stopnia. Funkcje interpolacyjne:

20 Metody interpolacji ‘nearest’— interpolacja najbliższy sąsiad ‘linear’ – interpolacja liniowa; ‘cubic’ – interpolacja wielomianem trzeciego stopnia; ‘spline’ – interpolacja funkcjami sklejanymi trzeciego stopnia;

21 Przykład: x=0:.4:2; y=exp(-.5*x).*cos(5*x); xi=0:.05:2; y1=interp1(x,y,xi,'nearest'); y2=inter p 1(x,y,xi,'linear'); y3=interp1(x,y,xi,'cubic'); y4=interp1(x,y,xi,'spline'); plot(x,y,'*',xi,exp(-.5*xi).*cos(5*xi),... xi,y1,':',xi,y2,':',xi,y3,':',xi,y4,':') legend('wezly','funkcja','nearest',… 'linear','cubic','spline')

22 Aproksymacja. Zagadnienie aproksymacji polega na znalezieniu pewnej funkcji, której wykres z pewnym przybliżeniem przechodzi w pobliżu pewnych punktów. Sama funkcja minimalizuje wartość pewnego kryterium dopasowania, np. aproksymacja średniokwadratowa, czyli minimalizujemy błąd średniokwadratowy. Standardową metodą aproksymacji w Matlabie jest aproksymacja wielomianem: polyfit(x,y,n) polecenie to znajduje wektor współczynników wielomianu aproksymującego dane zawarte w wektorach x i y. Wartość wielomianu możemy obliczyć funkcją polyval.

23 Aproksymacja. Przykład 1: x=1:8; y=[ ]; a=polyfit(x,y,1) xx=1:.01:8; yy=polyval(a,xx); plot(x,y,'o,xx,yy) Otrzymaliśmy funkcję y=0.5121x

24 Przykład 2: x=0:.4:2*pi; y1=sin(x); blad=rand(1,length(x))/10; y=y1+blad; a1=polyfit(x,y,2) a2=polyfit(x,y,3) xx=0:.01:2*pi; yy1=polyval(a1,xx); yy2=polyval(a2,xx); plot(x,y,'o',xx,sin(xx),':',xx,yy1,xx,yy2) Dla wielomianu drugiego stopnia mamy: y = – x 2 – x Dla wielomianu trzeciego stopnia mamy: y = x 3 – x x –

25 Pochodna funkcji Do znajdowania pochodnej możemy posłużyć się funkcją: diff Zwraca ona wektor różnic sąsiednich elementów wektora będącego jej argumentem. Czyli pochodna funkcji danej w postaci tablicy (np. pomiary), obliczymy jako: diff(y)./diff(x). Należy przy tym pamiętać, że liczba elementów wektora zwracanego przez funkcję diff, jest o jeden mniejsza, niż liczba elementów argumentu.

26 Pochodna funkcji Przykład x=72:.5:90; y=[ ]; yprim=diff(y)./diff(x); subplot(2,1,1),plot(x,y,'+'),grid on ylabel('Dane') subplot(2,1,2),plot(x, [yprim 0],'o'),grid on ylabel('Pochodna')

27 Pochodna wielomianu Jeśli mamy dany wielomian, do obliczenia wartości pochodnej możemy użyć funkcji: polyder Zwraca ona współczynniki wielomianu pochodnego. Wywołanie: a_prim = polyder(a) [L_prim, M_prim] = polyder(L,M)

28 Pochodna wielomianu a=[ ]; x=0:.05:3; y=polyval(a,x); a1=polyder(a); y1=polyval(a1,x); subplot(2,1,1); plot(x,y) grid on ylabel('Dane') subplot(2,1,2) plot(x,y1) grid on ylabel('Pochodna')

29 Pochodna wielomianu - funkcja wymierna Przykład: L=[1 -3]; M=[ ]; x=-3:.05:3; y=polyval(L,x)./polyval(M,x); [L1,M1]=polyder(L,M); y1=polyval(L1,x)./polyval(M1,x); subplot(2,1,1),plot(x,y),grid on ylabel('Dane') subplot(2,1,2),plot(x,y1),grid on ylabel('Pochodna') Dodatkowo należy musimy zdefiniować licznik i mianownik:

30 Całkowanie – całki oznaczone. FunkcjaOpis Q=quad(f,a,b) Q=quad(f,a,b,tol) Q=quad(f,a,b,tol,tr) oblicza wyrażenie za pomocą prostej kwadratury Simpsona Q=quad8(f,a,b,tol,tr)oblicza wyrażenie za pomocą złożonej kwadratury Newtona rzędu 8; daje lepsze wyniki niż poprzednia Parametry: f – łańcuch znaków określający nazwę funkcji; a, b – przedział całkowania; tol – tolerancja błędu (domyślnie ); tr – jeśli jest różny od 0, rysowany jest wykres obrazujący postęp w obliczeniach lub wypisywane kolejne iteracje.

31 Całkowanie Całkowanie Przykład: >> quad('sin(x)',1,10) ans = >> quad8('sin(x)',1,10) ans = Gdy dodamy kolejne parametry: >> quad('sin(x)',1,10,1e-3,1) e e e e e e e e e e e ans =

32 Całkowanie Przykład: W przypadku funkcji quad8 otrzymamy wykres: >> quad8('sin(x)',1,10,1e-3,1) ans =

33 Równania różniczkowe Równania różniczkowe możemy podzielić na 3 grupy: - równania różniczkowe zwyczajne gdzie szukamy rozwiązania równania różniczkowego dla zadanego warunku początkowego; - równania różniczkowe zwyczajne gdzie szukamy rozwiązania równania dla zadanych warunków granicznych; - równania różniczkowe cząstkowe

34 Równania różniczkowe I rzędu W rozwiązaniach wielu problemów fizycznych, ekonomicznych wymagana jest znajomość funkcji y=y(t) przy znajomości funkcji y'=f(t, y) oraz warunków początkowych y(a)=y0, gdzie: a oraz y0 są liczbami rzeczywistymi f funkcją w postaci jawnej. W takim przypadku mamy do czynienia z równaniem różniczkowym zwyczajnym pierwszego rzędu

35

36 Przykład: Szukamy rozwiązania numerycznych y = y(t) dla wartości t = 0,.25,.5,.75, 1 dla równania różniczkowego y' = -2ty 2, przy warunku początkowym y(0) = 1. dy tspan = [ ]; y0 = 1; [t1 y1] = ode23('eq1', tspan, y0); [t2 y2] = ode45('eq1', tspan, y0); [t1 y1 y2] % porównanie wyników


Pobierz ppt "Wykład 6 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim https://play.google.com."

Podobne prezentacje


Reklamy Google