Obliczenia w Matlabie Interpolacja i aproksymacja

Slides:



Advertisements
Podobne prezentacje
OBLICZENIA NUMERYCZNE
Advertisements

IV Tutorial z Metod Obliczeniowych
Krzywe parametryczne x = fx(t); y = fy(t) funkcje liniowe x = 20t + 5
Interpolacja Cel interpolacji
Zmienne losowe i ich rozkłady
Badania operacyjne. Wykład 1
Metody numeryczne wykład no 2.
Metody Numeryczne Wykład no 3.
Wykład no 3.
Interpolacja funkcji Dane wartości funkcji y n w punktach x n, gdzie n=0,1,2,....N-1. x y x0x0 y0y0 xnxn ynyn x N-1 y N-1.
Metody numeryczne wykład no 8.
Grafika komputerowa Wykład 7 Krzywe na płaszczyźnie
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Ogólne zadanie rachunku wyrównawczego
Analiza korelacji.
Sieci neuronowe jednokierunkowe wielowarstwowe
Dane do obliczeń.
Podstawy informatyki 2012/2013
Dodatkowe własności funkcji B-sklejanych zawężenie f do K Rozważmy funkcjeIch zawężenia do dowolnego przedziałutworzą układ wielomianów. Dla i=k ten układ.
Metody matematyczne w Inżynierii Chemicznej
ETO w Inżynierii Chemicznej MathCAD wykład 4.. Analiza danych Aproksymacja danych.
Metody numeryczne SOWIG Wydział Inżynierii Środowiska III rok
AUTOMATYKA i ROBOTYKA (wykład 5)
Modelowanie matematyczne jako podstawa obliczeń naukowo-technicznych:
Technika optymalizacji
Dana jest sieć dystrybucji wody w postaci: Ø      m- węzłów,
Podstawy informatyki 2013/2014
Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
MOiPP Wykład 3 Matlab Przykłady prostych metod obliczeniowych.
MOiPP Matlab Aproksymacja Interpolacja Inne metody obliczeniowe
Metody matematyczne w Inżynierii Chemicznej
Metody matematyczne w inżynierii chemicznej Wykład 3. Całkowanie numeryczne.
Metody matematyczne w inżynierii chemicznej
Ćwiczenia 8 Aproksymacja funkcji
Wykład 6 Dr Aneta Polewko-Klim
Pakiety numeryczne Wprowadzenie Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Pakiety numeryczne Optymalizacja
Biblioteka.pollub.pl facebook.com/BibliotekaPL. Katarzyna Panasiewicz Modele otwartego dostępu.
Podstawy informatyki Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Pakiety numeryczne Graphical User Interface Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Pakiety numeryczne Tablice: tworzenie, indeksowanie, wymiary Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Pakiety numeryczne Interpolacja i aproksymacja
Pakiety numeryczne Wykresy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Pakiety numeryczne Wielomiany Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Podstawy informatyki Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Pakiety numeryczne Skrypty, funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Podstawy informatyki Struktury Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Szablony funkcji Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty.
Podstawy informatyki Operatory rzutowania Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały.
Podstawy informatyki Mechanizm obsługi sytuacji wyjątkowych Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu.
Pakiety numeryczne Operatory, instrukcje sterujące, operacje bitowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Osoby prowadzące zajęcia z Informatyki (II część): Prof. Mirosław Czarnecki (W+L) Konsultacje:piątek (p. 302a)
Wstęp do metod numerycznych
Pakiety numeryczne Równania różniczkowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Fundamentals of Data Analysis Lecture 12 Approximation, interpolation and extrapolation.
Osoby prowadzące zajęcia z Informatyki (II część): Prof. Mirosław Czarnecki (W+L) Konsultacje:piątek (p. 302a)
Systemy neuronowo – rozmyte
Metody matematyczne w Inżynierii Chemicznej
Obliczenia inżynierskie w Matlabie
Obliczenia w Matlabie Tablice
Obliczenia inżynierskie w Matlabie
Obliczenia w Matlabie Optymalizacja
Jednorównaniowy model regresji liniowej
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Język C++ Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Obliczenia w Matlabie Analiza statystyczna
Obliczenia w Matlabie Obliczenia symboliczne
Zapis prezentacji:

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

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.

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');

Aproksymacja wielomianowa x=[0 1 2 3]; y=[2 1.5 4 2.5]; plot(x,y,'rs'); set(gca,'YLim',[0.5 4.5]); 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

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

Wielomiany Czebyszewa

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);

Funkcje sklejane

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)

Funkcje sklejane – wyznaczanie współczynników

Funkcje sklejane – wyznaczanie współczynników

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

s.breaks(i+1)-s.breaks(i) Funkcje sklejane Ogólnie: s.breaks(i+1)-s.breaks(i) x=[0 1 2 3]; y=[0 1 4 9]; 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 = -0.0000 1.0000 -0.0000 0 -0.0000 1.0000 2.0000 1.0000 0.0000 1.0000 4.0000 4.0000 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);

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'});

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'});

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'});

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');

Sztuczne sieci neuronowe (typ MLP) f=@(X)X(1).^2+X(2).^2-cos(2.5*pi*X(1))-cos(2.5*pi*X(2))+2; 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);

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)]);

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');

Planowanie eksperymentu

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.

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]

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

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

Algorytm Wynna-Fedorova

Algorytm W-F implementacja v=@(x)[1;x]; N=2; sigma=@(x)1; 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);

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 fi=@(x)-1/sigma(x)^2*v(x).'/M*v(x); k=1; [fix_max fiy_max]=ga(fi,1,[],[],[],[],-1,1); fiy_max=-fiy_max;

Algorytm W-F implementacja while (fiy_max/n>1.0001 && 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;

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;

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 fi=@(x)-1/sigma(x)^2*v(x).'/M*v(x); [fix_max fiy_max]=ga(fi,1,[],[],[],[],-1,1); fiy_max=-fiy_max; k=k+1; ksi_opt=ksi; M_opt=M; fi_opt=@(x)1/sigma(x)^2*v(x).'/M_opt*v(x);

Algorytm W-F przykładowe wyniki v=@(x)[1;x]; sigma=@(x)1; ksi_opt = x: [1.0000 -1.0000] p: [0.5000 0.5000]

Algorytm W-F przykładowe wyniki v=@(x)[1;x^2]; sigma=@(x)1; ksi_opt = x: [1.0000 -2.5665e-006 -1.0000] p: [0.2976 0.5119 0.1905]

Algorytm W-F przykładowe wyniki v=@(x)[1;x^2]; sigma=@(x)x+1.5; ksi_opt = x: [-1.0000 -0.3822] p: [0.5000 0.5000]

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: http://creativecommons.org/licenses/by-sa/3.0/deed.pl