22
nstytut K onstrukcji Budowlanych M etody Obliczeniowe Z akład K omputerowego W spomagania Projektowania Semestr II. 27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd1 Interpolacja i aproksymacja, pojęcie modelu regresji

Interpolacja i aproksymacja, pojęcie modelu regresjietacar.put.poznan.pl/albert.kubzdela/lab2_3-11.pdf · 27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 1

Embed Size (px)

Citation preview

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 1

Interpolacja i aproksymacja,pojęcie modelu regresji

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 2

Plan zajęć

1. Interpolacja wielomianowa.

2. Interpolacja liniowa funkcji jednej zmiennej.

3. Interpolacja funkcjami sklejanymi - przykład funkcji dwóch zmiennych.

4. Interpolacja funkcjami sklejanymi - funkcja jednej zmiennej.

5. Zadanie regresji liniowej

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 3

Zadanie 1W nowym skrypcie (nadając mu nazwę ~/interpolacja.sce) zapisać

polecenia przy pomocy których można wyznaczyć wielomian interpolacyjny postaci W(x)=a0+a1·x1

+a2·x2+..+an·xn dla podanych punktów o współrzędnych zapisanych jako wektory:

X = [-5,-4, -3, -2, -1, 0, 1, 2, 3, 4, 5], f(X)=[-82.5,-39.8,-13.9,-0.6,4.3,5,5.7,10.6,23.9,49.8,92.5]rozwiązując układ równań (niewiadomą jest wektor a =[a0,a1,a2,...,an]):

Macierz współczynników tego układu ma postać:

=

nn

1n

n1

11

n0

10

x...x1............x...x1x...x1

A

Narysuj wykres funkcji interpolującej

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 4

// sformowanie wektorów x, yx=[-5:5]y=[-82.5 -39.8 -13.9 -0.6 4.3 5 5.7 10.6 23.9 49.8 92.5]'m=length(x)

Zadanie 1 - cd

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 5

// sformowanie wektorów x, yx=[-5:5]y=[-82.5 -39.8 -13.9 -0.6 4.3 5 5.7 10.6 23.9 49.8 92.5]'m=length(x)// sformowanie macierzy AA = ones(m,m)for i = 1:m

for j=2:mA(i,j) = x(i)^(j-1)

endend

Zadanie 1 - cd

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 6

// sformowanie wektorów x, yx=[-5:5]y=[-82.5 -39.8 -13.9 -0.6 4.3 5 5.7 10.6 23.9 49.8 92.5]'m=length(x)// sformowanie macierzy AA = ones(m,m)for i = 1:m

for j=2:mA(i,j) = x(i)^(j-1)

endend// rozwiązanie układu równań A*a=ya1 = linsolve(A,-y); a2 = inv(A)*y // wykresplot2d(x,y)

Zadanie 1 - cd a1 = 4.3863982 0.2395459 1.5191751 0.5710342 - 0.6258516 0.0201306 0.0880366 - 0.0011664 - 0.0048473 0.0000221 0.0000893

a2 = 5. - 1.665D-16 - 5.135D-15 0.7 - 7.772D-16 - 1.443D-15 - 8.517D-16 - 2.862D-17 4.272D-17 - 2.982D-19 1.863D-19

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 7

Przykład 2 interpolacja funkcji jednej zmiennej - funkcje interpln(), smooth()

● dane są punkty: -6,-1,2,6,11 oraz wartości pewnej funkcji w tych punktach, odpowiednio: 1,0,2,2,3. Należy:

– zdefiniować macierz W2x5 zapisując w pierwszym wierszu współrzędne punktów, w drugim wartości funkcji w tych punktach;

– obliczyć interpolowane wartości funkcji (oznaczając jako wektor Y) przy użyciu funkcji interpln() dla wektora argumentów X=[-5,10] podzielonego na 20 części;

– narysować wykres krzywej łączącej punkty (X,Y)

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 8

Przykład 2 interpolacja funkcji jednej zmiennej - funkcje interpln(), smooth()

● dane są punkty: -6,-1,2,6,11 oraz wartości pewnej funkcji w tych punktach, odpowiednio: 1,0,2,2,3. Należy:

– zdefiniować macierz W2x5 zapisując w pierwszym wierszu współrzędne punktów, w drugim wartości funkcji w tych punktach;

– obliczyć interpolowane wartości funkcji (oznaczając jako wektor Y) przy użyciu funkcji interpln() dla wektora argumentów X=[-5,10] podzielonego na 20 części;

– narysować wykres krzywej łączącej punkty (X,Y)W=[ -6, -1, 2, 6, 11; 1, 0, 2, 2, 3]X= linspace(-5,10,20)Y= interpln(W,X)plot2d(X,Y,[2])

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 9

Przykład 2 interpolacja funkcji jednej zmiennej - funkcje interpln(), smooth()

● dane są punkty: -6,-1,2,6,11 oraz wartości pewnej funkcji w tych punktach, odpowiednio: 1,0,2,2,3. Należy:

– zdefiniować macierz W2x5 zapisując w pierwszym wierszu współrzędne punktów, w drugim wartości funkcji w tych punktach;

– obliczyć interpolowane wartości funkcji (oznaczając jako wektor Y) przy użyciu funkcji interpln() dla wektora argumentów X=[-5,10] podzielonego na 20 części;

– narysować wykres krzywej łączącej punkty (X,Y)W=[ -6, -1, 2, 6, 11; 1, 0, 2, 2, 3]X= linspace(-5,10,20)Y= interpln(W,X)plot2d(X,Y,[2])

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 10

Przykład 2 - cd interpolacja funkcji jednej zmiennej - funkcje interpln(), smooth()

● wykorzystując funkcję smooth() wyznaczyć współrzędne punktów krzywej sklejanej, interpolującej punkty węzłowe o współrzędnych zapisanych w macierzy W, narysować wykres krzywej sklejanej (spline).

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 11

Przykład 2 - cd interpolacja funkcji jednej zmiennej - funkcje interpln(), smooth()

● wykorzystując funkcję smooth() wyznaczyć współrzędne punktów krzywej sklejanej, interpolującej punkty węzłowe o współrzędnych zapisanych w macierzy W, narysować wykres krzywej sklejanej (spline).Xs= smooth(W)plot2d(Xs(1,:)',Xs(2,:)',[3])

-6 -4 -2 0 2 4 6 8 10 12-0.4

0.0

0.4

0.8

1.2

1.6

2.0

2.4

2.8

3.2

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 12

Przykład 3interpolacja funkcji dwóch zmiennych – funkcje splin2d(), interp2d(), linear_interpn()● zdefiniować zmienne x=[0,2,3,5],y=[0,2,3,5], oraz macierz z

zwierającą wartości pewnej funkcji f w punktach (xi,yi) (i=1,...,4) jako z=[10,15,11,12;13,16,11,20;22,23,23,17;17,13,14,12];

● wykorzystując funkcję splin2d() obliczyć współczynniki funkcji spline interpolującej funkcję f ;

● przy użyciu funkcji ndgrid() zbudować siatkę punktów opartej na wektorach [0,5] podzielonych na 20 części.

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 13

Przykład 3interpolacja funkcji dwóch zmiennych – funkcje splin2d(), interp2d(), linear_interpn()● zdefiniować zmienne x=[0,2,3,5],y=[0,2,3,5], oraz macierz z

zwierającą wartości pewnej funkcji f w punktach (xi,yi) (i=1,...,4) jako z=[10,15,11,12;13,16,11,20;22,23,23,17;17,13,14,12];

● wykorzystując funkcję splin2d() obliczyć współczynniki funkcji spline interpolującej funkcję f ;

● przy użyciu funkcji ndgrid() zbudować siatkę punktów opartej na wektorach [0,5] podzielonych na 20 części.

x =[0,2,3,5]; y = xz =[10,15,11,12;13,16,11,20;22,23,23,17;17,13,14,12]// obliczenie współczynników funkcji splineb = splin2d(x,y,z) // budowa siatki 400 punktów na prostokącie[0,5]x[0,5]xp = linspace(0,5,20)[Xx,Yy] = ndgrid(xp,xp)

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 14

Przykład 3 - cdinterpolacja funkcji dwóch zmiennych – funkcje splin2d(), interp2d(), linear_interpn()

● przy użyciu funkcji interp2d() obliczyć wartości interpolującej funkcji spline w punktach siatki, oraz narysować wykres powierzchni interpolującej.

● korzystając z funkcji linear_interpn() znaleźć wartości interpolującej funkcji liniowej w punktach siatki, oraz narysować wykres powierzchni interpolującej w innym oknie graficznym.

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 15

Przykład 3 - cdinterpolacja funkcji dwóch zmiennych – funkcje splin2d(), interp2d(), linear_interpn()

● przy użyciu funkcji interp2d() obliczyć wartości interpolującej funkcji spline w punktach siatki, oraz narysować wykres powierzchni interpolującej.

● korzystając z funkcji linear_interpn() znaleźć wartości interpolującej funkcji liniowej w punktach siatki, oraz narysować wykres powierzchni interpolującej w innym oknie graficznym.

Zz = interp2d(Xx,Yy,x,y,b)plot3d(xp,xp,Zz)

// otwarcie nowego okna graficznegoscf()

Zs = linear_interpn(Xx,Yy,x,y,z)plot3d(xp,xp,Zs)

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 16

Przykład 3 - cdinterpolacja funkcji dwóch zmiennych – funkcje splin2d(), interp2d(), linear_interpn()

0

5

10

15

20

25

30

Z

01

23

45

X

01

23

45

Y

10

12

14

16

18

20

22

24

Z

01

23

45 X

01

23

45Y

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 17

Ćwiczenie 4

Zapisać w nowym skrypcie polecenia które dla podanych danych pomiarowych:(-1,2),(2,1),(-3,3),(6,2),(4,3),(5,2) przy użyciu funkcji splin(), interp() zbudują i przedstawią na wykresie interpolującą je funkcje sklejaną. Wykres należy narysować w oparciu o wektor [-3,6] podzielony na 50 części. Na wykresie zaznaczyć punkty węzłowe.

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 18

Ćwiczenie 4

Zapisać w nowym skrypcie polecenia które dla podanych danych pomiarowych:(-1,2),(2,1),(-3,3),(6,2),(4,3),(5,2) przy użyciu funkcji splin(), interp() zbudują i przedstawią na wykresie interpolującą je funkcje sklejaną. Wykres należy narysować w oparciu o wektor [-3,6] podzielony na 50 części. Na wykresie zaznaczyć punkty węzłowe.

x=[-3,-1,2,4,5,6], y=[3,2,1,3,2,2]xp = linspace(-3,6,50)d = splin(x,y);yp = interp(xp, x, y, d);plot2d(xp,yp)plot2d(x,y, style =-2)

-3 -2 -1 0 1 2 3 4 5 60.5

1.0

1.5

2.0

2.5

3.0

3.5

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 19

Przykład 5regresja liniowa

Na podstawie danych pomiarowych zapisanych w pliku o nazwie /pub/programy/regdane.txt oraz wbudowanej funkcji reglin() znaleźć równanie prostej regresji o równaniu y=a*x+b, po czym przedstawić jej wykres wraz z punktami pomiarowymi.

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 20

Przykład 5regresja liniowa

Na podstawie danych pomiarowych zapisanych w pliku o nazwie /pub/programy/regdane.txt oraz wbudowanej funkcji reglin() znaleźć równanie prostej regresji o równaniu y=a*x+b, po czym przedstawić jej wykres wraz z punktami pomiarowymi.

// wczytanie danychu = file('open','/pub/programy/regdane.txt','old')A = read(u,-1,2); file('close',u);//obliczenie parametrów krzywej regresji[a,b]= reglin(A(:,1)',A(:,2)')x = A(:,1); y = A(:,2)yn=a*x+bplot2d(x,yn, style = 5); plot2d(x,y, style =-2);disp(a); disp(b)

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 21

Przykład 5regresja liniowa

Na podstawie danych pomiarowych zapisanych w pliku o nazwie /pub/programy/regdane.txt oraz wbudowanej funkcji reglin() znaleźć równanie prostej regresji o równaniu y=a*x+b, po czym przedstawić jej wykres wraz z punktami pomiarowymi.

// wczytanie danychu = file('open','/pub/programy/regdane.txt','old')A = read(u,-1,2); file('close',u);//obliczenie parametrów krzywej regresji[a,b]= reglin(A(:,1)',A(:,2)')x = A(:,1); y = A(:,2)yn=a*x+bplot2d(x,yn, style = 5); plot2d(x,y, style =-2);disp(a); disp(b)

0.26 0.28 0.30 0.32 0.34 0.36 0.3813

14

15

16

17

18

19

20

21

22

×

× ×××

×

×

××

×

××

××

×

×

×

×

×

×

× ××

×

××

×× ×

×

× ××

× ×

×

××

×

×

×

×

× ×

× ×

×

×

×

××

×

×

×

××

×

×

×

×

× ×××

××

×

×

× ×× ×

nstytut K onstrukcji Budowlanych Metody ObliczenioweZakład K omputerowego Wspomagania Projektowania Semestr II.

27 styczeń 2009 SciLab w obliczeniach numerycznych - część 3 Slajd 22

Funkcje SciLabaWykorzystywane funkcje:● smooth(), interp() , interp2d(), interp3d() – interpolacja funkcjami

sklejanymi ● interpln(), linear_interpn() – interpolacja liniowa● splin(), splin2d(), splin3d() – obliczenie współczynników funkcji

sklejanej, interpolującej podane punkty węzłowe ● reglin(), regress() – wyznaczenie współczynników regresji liniowej