Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałRenata Olszewska Został zmieniony 9 lat temu
1
Pakiety numeryczne 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
Interpolacja liniowa 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'});
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
T0=1 T1=x Tk=2xTk-1-Tk-2
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
Mając dyskretną funkcję f zdefiniowaną na przedziale [a,b] oraz zbiór punktów, zwanych węzłami, a=x0<x1<…<xn=b, funkcję F można zdefiniować jako interpolującą kubiczną funkcję sklejaną, gdy spełnia poniższe warunki: 1. Fj jest wielomianem trzeciego stopnia, dla j=0,1,…,n-1 oraz , dla j=0,1,…,n-1
10
Funkcje sklejane - definicja
, dla j=0,1,…,n-2 , dla j=0,1,…,n-2 metoda ograniczeń naturalnych albo oraz metoda ograniczeń związanych
11
Funkcje sklejane - przykład
albo albo
12
Funkcje sklejane 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
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');
18
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.