• Nie Znaleziono Wyników

1Zadania Interpolacja

N/A
N/A
Protected

Academic year: 2021

Share "1Zadania Interpolacja"

Copied!
5
0
0

Pełen tekst

(1)

Interpolacja

Marcin Orchel

1 Zadania

1.1 Zadania na 3.0

Napisać skrypt w R. W skrypcie

• Wykonać interpolację funkcją progową, liniową i spline’ami kubicznymi dla dwóch wybranych funkcji nieliniowych jednej zmiennej, w tym jedna z nich jest funkcją gęstości prawdopodobieństwa. W tym celu wygenerować punkty interpolacyjne z losową odciętą. Podzielić punkty na zbiór treningowy i testowy. Interpolację wy- konać na zbiorze treningowym.

• Dla każdej funkcji interpolowanej narysować na jednym wykresie punkty trenin- gowe, punkty testowe, funkcję interpolowaną i funkcje interpolujące.

• Porównać metody interpolacji za pomocą wyznaczenia średniego błędu kwadrato- wego (root mean square error, RMSE) na zbiorze testowym.

• Dodać do rzędnej punktów błąd normalny, porównać wyniki dla różnej wielkości odchyleń standardowych.

• Wykonać interpolację tych funkcji na stronie wolframalpha.com, porównać wyniki.

• Przed generacją punktów dodać błąd normalny do parametrów funkcji interpolują- cej. Punkty generowane są z funkcji interpolującej, która ma dodany błąd normalny i dodatkowo punkty mają dodany błąd normalny.

• Porównać szybkości wykonania metod.

• sprawdzić możliwości ustalania jak funkcja zachowuje się poza przedziałem ran- ge(x)

• Dodać komentarz do skryptu opisujący krótko na czym polegają użyte metody oraz wnioski z badań.

Wskazówki

• przykładowe funkcje sin x, 1/(1 + x), erf (x)

• dokonać skalowania danych do przedziału 0-1

(2)

• przykładowa interpolacja na stronie wolframalpha.com http://www.wolframalpha.

com/input/?i=interpolating+polynomial+{1%2C10}%2C{2%2C3}%2C{4%2C7}%2C{8%

2C0}&lk=3

• zbiór testowy również zawiera błędy, podobnie jak zbiór treningowy

• różnice w błędzie RMSE liczymy pomiędzy rzędnymi punktów testowych, a war- tościami funkcji interpolujących

• błąd RMSE liczymy ze wzoru

RM SE = s

P

n

i=1

(y

i

− y

i

)

2

n (1)

Wskazówki do R:

• approx i approxfun https://stat.ethz.ch/R-manual/R-devel/library/stats/

html/approxfun.html

• spline i splinefun https://stat.ethz.ch/R-manual/R-devel/library/stats/

html/splinefun.html

• https://stat.ethz.ch/R-manual/R-devel/library/stats/html/smooth.spline.

html

• https://stat.ethz.ch/R-manual/R-devel/library/stats/html/predict.smooth.

spline.html

• https://stat.ethz.ch/R-manual/R-devel/library/splines/html/periodicSpline.

html

• https://stat.ethz.ch/R-manual/R-devel/library/splines/html/interpSpline.

html

• runif, https://stat.ethz.ch/R-manual/R-devel/library/stats/html/Uniform.

html

• rnorm, https://stat.ethz.ch/R-manual/R-patched/library/stats/html/Normal.

html

• interpolacja funkcją progową https://stat.ethz.ch/R-manual/R-devel/library/

stats/html/stepfun.html

• przykład http://stackoverflow.com/questions/12923958/when-to-use-approxfun- vs-approx

• przykład z dodawaniem błędu http://blog.revolutionanalytics.com/2015/

09/interpolation-and-smoothing-functions-in-base-r.html

(3)

• x<-1:10 y<-runif(10)

f1<-approxfun(x,y)

f2<-approxfun(x,y,method="constant") mode(f1)

v<-seq(0,11,by=0.01)

matplot(v,cbind(f1(v), f2(v)), type="1", las=1,

ylim=c(0,1.25),xlab="x",ylab=expression(f[1](x)*", "*f[2](x))) points(x,y)

f3<- splinefun(x,y)

f4<- splinefun(x,y,method="natural")

matplot(v,cbind(f3(v), f4(v)), type="1", las=1,

ylim=c(0,1.25),xlab="x",ylab=expression(f[3](x)*", "*f[4](x))) points(x,y)

Wskazówki do Matlaba:

• curve fitting toolbox http://www.mathworks.com/help/curvefit/index.html

• przykładową interpolację można wykonać za pomocą cftool oraz splinetool

• do interpolacji można użyć funkcji interp1, http://www.mathworks.com/help/

matlab/ref/interp1.html lub spline http://www.mathworks.com/help/matlab/

ref/spline.html lub csape z curve fitting toolbox http://www.mathworks.com/

help/curvefit/csape.html lub fit http://www.mathworks.com/help/curvefit/

fit.html

• w interp1 węzły muszą być posortowane

• alternatywnie do interpolacji można użyć funkcji polyfit http://www.mathworks.

com/help/matlab/ref/polyfit.html (funkcja ta może również zwracać aprok- symację), tutaj jednak ograniczeniem jest konieczność podania równoodległych węzłów

• do obliczania wartości wielomianu można użyć ppval http://www.mathworks.

com/help/matlab/ref/ppval.html

• do generacji losowych wartości z rozkładu jednostajnego użyć rand, http://www.

mathworks.com/help/matlab/ref/rand.html

• do generacji błędu normalnego użyć randn, http://www.mathworks.com/help/

matlab/ref/randn.html

• do rysowania funkcji interpolowanej i interpolujących użyć dodatkowych punktów

w dużej ilości

(4)

• do generacji funkcji gęstości można użyć polecenia normpdf http://www.mathworks.

com/help/stats/normpdf.html lub pdf http://www.mathworks.com/help/stats/

pdf.html

• błąd RMSE możemy wyliczyć za pomocą polecenia rms http://www.mathworks.

com/help/signal/ref/rms.html Inne wskazówki

• Interpolacja w c++ w bibliotece gsl http://www.gnu.org/software/gsl/manual/

html_node/Interpolation-Example-programs.html

1.2 Zadania na 4.0

• wykonać interpolacja liniową dla kilku losowych punktów dwuwymiarowych

• wykonać zadanie na 3.0 dla dwóch wybranych funkcji nieliniowych dwóch zmien- nych, w tym jedna z nich jest funkcją gęstości prawdopodobieństwa. Wykonać interpolację dwuliniową.

• Dodać komentarz do skryptu opisujący krótko na czym polegają użyte metody oraz wnioski z badań.

Wskazówki do R:

• http://stats.stackexchange.com/questions/13510/fitting-multivariate- natural-cubic-spline

• interpolacja dwuliniowa funkcja interp.surface z pakietu fields

• interpolacja funkcjami sklejanymi 2d, pakiety PEIP i akima

library("PEIP") x<-c(0,1)

y<-c(0,1)

z<- matrix(c(0,0.2,0.3,0), nrow=2) xint<-seq(0,1,by=0.025)

yint<-seq(0,1,by=0.025)

b1<-interp2grid(z,xint,yint,x,y,type=1) b2<-interp2grid(z,xint,yint,x,y,type=2)

image(xint, yint, b1, col=gray.colors(10,0,1),las=1)

image(xint, yint, b2, col=gray.colors(10,0,1),las=1)

Wskazówki do Matlaba:

(5)

• do interpolacji można użyć funkcji griddata, http://www.mathworks.com/help/

matlab/ref/griddata.html lub interp2 http://www.mathworks.com/help/matlab/

ref/interp2.html lub interpn http://www.mathworks.com/help/matlab/ref/

interpn.html lub scatteredInterpolant http://www.mathworks.com/help/matlab/

ref/scatteredinterpolant-class.html lub griddedInterpolant http://www.mathworks.

com/help/matlab/ref/griddedinterpolant-class.html

• jedną z tych funkcji może być funkcja franke opisana tutaj http://www.mathworks.

com/help/curvefit/franke.html

1.3 Zadania na 5.0

• wykonać zadanie na 3.0 dla wybranego zbioru danych dla regresji z liczbą cech większą niż 4, pochodzącego albo z matlaba lub ze strony http://archive.ics.

uci.edu/ml/ lub ze strony http://lib.stat.cmu.edu/datasets/.

• dokonać wizualizacji jak w zadaniu na 4.0 z wybranymi cechami

• Dodać komentarz do skryptu opisujący krótko na czym polegają użyte metody oraz wnioski z badań.

Wskazówki:

• do interpolacji można użyć funkcji griddatan, http://www.mathworks.com/help/

matlab/ref/griddatan.html lub interpn http://www.mathworks.com/help/matlab/

ref/interpn.html

Literatura

[1] P. Krzyżanowski, Obliczenia inżynierskie i naukowe. Wydawnictwo naukowe PWN,

2012.

Cytaty

Powiązane dokumenty

INFORMACJE O OBLICZANIU FUNKCJI PIERWOTNYCH 221 Mianownik jest iloczynem wielomianów pierwszego i drugiego stopnia.. Obliczymy całkę nieoznaczoną funkcji wymiernej z przykładu 9.4.18

Odpowiedź: Maciek może zbudować ……… takich wież... Ile

Podstawowymi funkcjami elementarnymi nazywamy funkcje: staªe, pot¦gowe, wykªadnicze, loga- rytmiczne, trygonometryczne oraz cyklometryczne.. Funkcje elementarne, to takie które

Twierdzenia o dwóch i o trzech funkcjach zachodz¡ równie» dla granic wªa±ciwych jednostronnych jak równie» dla granic wªa±ciwych

Ponadto, niech funkcja g(x) ma staªy znak w przedziale [a, b]. (nieujemna

Niech funkcja f okre±lona na przedziale (a, b] oraz a b¦dzie punktem osobliwym tj. funkcja b¦dzie nieograniczona na prawostronnym s¡siedztwie

Niech funkcja f okre±lona na przedziale (a, b] oraz a b¦dzie punktem osobliwym tj. funkcja b¦dzie nieograniczona na prawostronnym s¡siedztwie punktu a.. Oblicz drog¦ pokonan¡

2) zbadaj podstawowe wªasno±ci funkcji tj. parzysto±¢, nieparzysto±¢, okresowo±¢, punkty prze- ci¦cia wykresu funkcji z osiami wspóªrz¦dnych,. 3) wyznacz asymptoty