Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałJulian Krawczyk Został zmieniony 6 lat temu
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:
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.