Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Obliczenia w Matlabie Interpolacja i aproksymacja

Podobne prezentacje


Prezentacja na temat: "Obliczenia w Matlabie Interpolacja i aproksymacja"— Zapis prezentacji:

1 Obliczenia w Matlabie Interpolacja i aproksymacja
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania

2 Definicje Podstawowe zadanie interpolacji polega na przeprowadzeniu krzywej przez szereg zadanych punktów (xi, yi) (i=0,1,…,n). W przypadku aproksymacji krzywa nie musi przechodzić przez zadane punkty.

3 Funkcja interp1 zwraca wartości funkcji w punktach
Interpolacja liniowa Funkcja interp1 zwraca wartości funkcji w punktach x=-1:0.5:1; y=x.^2; xx=-1:0.01:1; yy=interp1(x,y,xx); plot(x,y,'rs',xx,yy); figure; plot(x,y,'rs',x,y,'g');

4 Aproksymacja wielomianowa
x=[ ]; y=[ ]; plot(x,y,'rs'); set(gca,'YLim',[ ]); p0=polyfit(x,y,0); p1=polyfit(x,y,1); p2=polyfit(x,y,2); p3=polyfit(x,y,3); xx=0:0.01:3; yy0=polyval(p0,xx); yy1=polyval(p1,xx); yy2=polyval(p2,xx); yy3=polyval(p3,xx); hold on; plot(xx,yy0,xx,yy1,xx,yy2,xx,yy3); legend({'Punkty','St 0','St 1','St 2','St 3'}); Funkcja polyfit zwraca współczynniki wielomianu

5 Efekt Rungego x=0:10; y=rand(size(x)); plot(x,y,'rs'); p=polyfit(x,y,10); xx=0:0.01:10; yy=polyval(p,xx); hold on; plot(xx,yy); Zastosowanie wielomianów wysokiego stopnia może powodować pojawienie się oscylacji, zwłaszcza przy skrajnych węzłach

6 Wielomiany Czebyszewa

7 Wielomiany Czebyszewa
T{1}=1; T{2}=[1 0]; for i=3:12 T{i}=conv([2 0],T{i-1})-[0 0 T{i-2}]; end x=5*roots(T{end})+5; y=rand(size(x)); plot(x,y,'rs'); p=polyfit(x,y,10); xx=0:0.01:10; yy=polyval(p,xx); hold on; plot(xx,yy);

8 Funkcje sklejane

9 Funkcje sklejane - definicja
Niech będzie dane N punktów interpolacji (xi, yi), i=1,2,…,N. Sześcienna interpolująca funkcja sklejana (sklejająca) S(x) określona jest jednoznacznie przez następujące własności: S(x) spełnia warunek interpolacji S(xi)=yi, i=1,2,…,N. S(x) w każdym przedziale [xi,xi+1] (i=1,2,…,N) jest wielomianem stopnia co najwyżej 3. S(x) jest dwukrotnie w sposób ciągły różniczkowalna w całym przedziale aproksymacji [x1, xN]. S(x) spełnia warunki brzegowe: S’’(x1)=S’’(xN)=0 lub S’(x1)=y1’, S’(xN)=yN’ lub S(x1)=S(xN), w przypadku gdy y1=yN, i S’(x1)=S’(xN) oraz S’’(x1)=S’’(xN)

10 Funkcje sklejane – wyznaczanie współczynników

11 Funkcje sklejane – wyznaczanie współczynników

12 Funkcja ppval oblicza wartość funkcji sklejanej w punkcie
Funkcje sklejane Funkcja ppval oblicza wartość funkcji sklejanej w punkcie x=[ ]; y=[ ]; s=spline(x,y) s = form: 'pp' breaks: [ ] coefs: [3x4 double] pieces: 3 order: 4 dim: 1 xx=0:0.01:3; yy=ppval(s,xx); plot(x,y,'rs',xx,yy)

13 s.breaks(i+1)-s.breaks(i)
Funkcje sklejane Ogólnie: s.breaks(i+1)-s.breaks(i) x=[ ]; y=[ ]; s=spline(x,y); for i=1:s.pieces xx(:,i)=s.breaks(i):0.01:s.breaks(i+1); yy(:,i)=polyval(s.coefs(i,:),xx(:,i)); end plot(xx,yy); s.coefs ans = for i=1:s.pieces xx(:,i)=s.breaks(i):0.01:s.breaks(i+1); yy(:,i)=polyval(s.coefs(i,:),0:0.01:1); end plot(xx,yy);

14 Spline vs polynomial x=0:10; y=rand(size(x)); plot(x,y,'rs'); p=polyfit(x,y,10); s=spline(x,y); xx=0:0.01:10; yy=polyval(p,xx); yys=ppval(s,xx); hold on; plot(xx,yy,xx,yys); legend({'Punkty','St 10','Spline'});

15 Aproksymacja dowolną funkcją
x=-pi:pi/2:pi; y=2*sin(3*x); f=fittype('a*sin(b*x)'); f=fit(x.',y.',f,'StartPoint',[1 2]) f = General model: f(x) = a*sin(b*x) Coefficients (with 95% confidence bounds): a = 2 (2, 2) b = 3 (3, 3) xx=-pi:0.01:pi; yy=2*sin(3*xx); yyf=f(xx); plot(x,y,'rs',xx,yy,xx,yyf); legend({'Punkty','Fun','Fit'});

16 Sztuczne sieci neuronowe (typ MLP)
x=-1:0.1:1; y=x.^2; SSN=fitnet(5); view(SSN); SSN=train(SSN,x,y); xx=-1:0.01:1; yy=xx.^2; yy_SSN=sim(SSN,xx); plot(x,y,'rs',xx,yy,xx,yy_SSN) legend({'Punkty','Fun','SSN'});

17 Sztuczne sieci neuronowe (typ MLP)
x=linspace(-1,1,100); y=linspace(-1,1,100); [X,Y]=meshgrid(x,y); z=X.^2+Y.^2-cos(2.5*pi*X)-cos(2.5*pi*Y)+2; surf(x,y,z); view(-30,60); set(gcf,'Color',[1 1 1]); set(gca,'FontSize',32); xlabel('x');ylabel('y');zlabel('z');

18 Sztuczne sieci neuronowe (typ MLP)
N=30; % N=10; N=20; x=linspace(-1,1,N); y=linspace(-1,1,N); X=zeros(2,N*N); Y=zeros(1,N*N); for i=1:N X(:,(i-1)*N+1:i*N)=[x;y(i)*ones(1,N)]; end for i=1:N*N Y(i)=f(X(:,i)); SSN=fitnet([10,5]); SSN=train(SSN,X,Y); view(SSN);

19 Sztuczne sieci neuronowe (typ MLP)
Y_SSN=sim(SSN,X); Y_SSN=reshape(Y_SSN,N,N); surf(x,y,Y_SSN); view(-30,60); set(gcf,'Color',[1 1 1]); set(gca,'FontSize',32); xlabel('x');ylabel('y');zlabel('z'); title(['N=' num2str(N)]);

20 Interpolacja liniowa funkcji 2D
figure('Color',[1 1 1]); [x, y]=meshgrid(-1:0.5:1,-1:0.5:1); z=x.^2+y.^2; plot3(x,y,z,'*','MarkerSize',10) box on; view(-18,50) hold on [xi, yi]=meshgrid(-1:0.05:1,-1:0.05:1); zi=interp2(x,y,z,xi,yi); surf(xi,yi,zi) zi=interp2(x,y,z,xi,yi,'spline');

21 Planowanie eksperymentu

22 Planowanie eksperymentu
Czynniki mające wpływ na dokładność estymacji parametrów modelu: wariancja zakłóceń, liczba pomiarów, obszar eksperymentu, funkcje rozpinające model, plan eksperymentu, metoda przetwarzania wyników.

23 Planowanie eksperymentu
Model: X obszar eksperymentu v(x) wektor funkcji rozpinających model σ2(x) funkcja opisująca wariancję zakłóceń DoE xi – nośniki planu pi – wagi punktów xi ∈ [-1,1]⨯… ⨯[-1,1]

24 Planowanie eksperymentu
Model opisany jest przez zależność:

25 Planowanie eksperymentu
Większość kryteriów umożliwiających ocenę planu eksperymentu bazuje na macierzy informacyjnej definiowanej następująco: Macierzą informacyjną planu ξ∈Ξ zadania estymacji parametrów modelu (X, v(x), σ2(x)) nazywa się przy założeniu, że σ (x) > 0, x ∈ X. Plan ξ* nazywa się D-optymalnym jeżeli

26 Algorytm Wynna-Fedorova

27 Algorytm W-F implementacja
N=2; ksi0.x=2*rand(1,N)-1; ksi0.p=1/N*ones(1,N); [ksi_opt M_opt fi_opt]=algorytm_WF(v,N,sigma,ksi0) rysuj_fi(fi_opt); function rysuj_fi(fi) figure('Color',[1 1 1]); x=-1:0.01:1; fi_val=zeros(size(x)); for i=1:length(x) fi_val(i)=fi(x(i)); end plot(x,fi_val,'LineWidth',2); set(gca,'FontSize',16);

28 Algorytm W-F implementacja
function [ksi_opt M_opt fi_opt]=algorytm_WF(v,n,sigma,ksi) m=length(ksi.p); x=ksi.x; p=ksi.p; M=zeros(n,n); for i=1:m M=M+(1/(sigma(x(i))^2))*p(i)*v(x(i))*v(x(i)).'; end k=1; [fix_max fiy_max]=ga(fi,1,[],[],[],[],-1,1); fiy_max=-fiy_max;

29 Algorytm W-F implementacja
while (fiy_max/n> && k<500) alpha=1/(k+1); [yi xi]=min(abs(fix_max-ksi.x)); for i=1:length(ksi.p) ksi.p(i)=(1-alpha)*ksi.p(i); end if (yi<0.1) ksi.p(xi)=ksi.p(xi)+alpha; ksi.x(xi)=(ksi.x(xi)+fix_max)/2; else ksi.x(end+1)=fix_max; ksi.p(end+1)=alpha;

30 Algorytm W-F implementacja
indx=find(ksi.p<0.05); suma=sum(ksi.p(indx)); ksi.x(indx)=[]; ksi.p(indx)=[]; ksi.p=ksi.p+suma/length(ksi.p); m=length(ksi.p); x=ksi.x; p=ksi.p;

31 Algorytm W-F implementacja
M=zeros(n,n); for i=1:m M=M+(1/(sigma(x(i))^2))*p(i)*v(x(i))*v(x(i)).'; end [fix_max fiy_max]=ga(fi,1,[],[],[],[],-1,1); fiy_max=-fiy_max; k=k+1; ksi_opt=ksi; M_opt=M;

32 Algorytm W-F przykładowe wyniki
ksi_opt = x: [ ] p: [ ]

33 Algorytm W-F przykładowe wyniki
ksi_opt = x: [ e ] p: [ ]

34 Algorytm W-F przykładowe wyniki
ksi_opt = x: [ ] p: [ ]

35 Prezentacja udostępniona na licencji Creative Commons: Uznanie autorstwa, Na tych samych warunkach 3.0. Pewne prawa zastrzeżone na rzecz autorów. Zezwala się na dowolne wykorzystywanie treści pod warunkiem wskazania autorów jako właścicieli praw do prezentacji oraz zachowania niniejszej informacji licencyjnej tak długo, jak tylko na utwory zależne będzie udzielana taka sama licencja. Tekst licencji dostępny jest na stronie:


Pobierz ppt "Obliczenia w Matlabie Interpolacja i aproksymacja"

Podobne prezentacje


Reklamy Google