IV Tutorial z Metod
Obliczeniowych
Interpolacja i
aproksymacja
Karol Daszkiewicz
Koło Naukowe Mechaniki Budowli KoMBo
Interpolacja - wstęp
Celem interpolacji jest wyznaczenie wartości funkcji
na zadanym przedziale [a,b], gdy znane są jej
wartości tylko na brzegach przedziału oraz dla
pewnej liczby punktów z tego przedziału.
Interpolacja - wstęp
- interpolację stosuje się dla niewielkiej
liczby punktów pomiarowych
- najczęściej wykorzystuje się kilka
funkcji
przybliżających,
gdyż
znalezienie jednej funkcji dla większej
liczby punktów jest trudne lub wręcz
niemożliwe
- poszukiwana funkcja interpolacyjna
lub funkcje interpolacyjne muszą
przechodzić przez wszystkie punkty
pomiarowe
Interpolacja - zastosowanie
- interpolacja służy najczęściej do
wyznaczenia wartości funkcji w
punktach pośrednich
- pozwala
zastąpić
skomplikowany
wzór funkcjami prostszymi np.
liniowymi
- w praktyce inżynierskiej interpolacja
jest stosowana przy obróbce wyników
badań doświadczalnych, np. przy
zagadnieniach
identyfikacji
właściwości materiałowych
Rodzaje interpolacji
Przeprowadzenie interpolacji wymaga
przyjęcia pewnej z góry założonej
postaci
poszukiwanej
funkcji.
W
zależności od tej postaci najczęściej się
stosuje interpolacje:
wielomianową
Newtona
(liniowa,
kwadratowa, sześcienna …)
wielomianową Czebyszewa
wielomianową Hermite’a
wielomianową Lagrange’a
trygonometryczną
(np.
szeregami
Fouriera)
Zagadnienie interpolacyjne
Interpolacja liniowa
Interpolacja liniowa
Interpolacja liniowa
Interpolacja kwadratowa
Interpolacja kwadratowa
Interpolacja kwadratowa
Interpolacja kwadratowa
Interpolacja kwadratowa
Interpolacja Newtona dla
wielomianu dowolnego stopnia
( )
(
)
(
) (
)
(
)
0
1
0
0
1
1
-
= +
-
+ +
-
-
-
K
L
n
n
F x
b b x x
b x x
x x
x x
Interpolacja Newtona dla
wielomianu dowolnego stopnia
( )
0
0
b
f x
=
[
]
1
1
0
,
b
f x x
=
[
]
2
2
1
0
, ,
b
f x x x
=
M
[
]
1
1
0
,
, , ,
n
n
n
b
f x x
x x
-
=
K
Interpolacja Newtona dla
wielomianu dowolnego stopnia
Gdzie funkcje z nawiasami kwadratowymi
oblicza się z zależności rekurencyjnych:
( )
( )
,
i
j
i
j
i
j
f x
f x
f x x
x x
-
�
�=
�
�
-
,
,
, ,
i
j
j
k
i
j
k
i
k
f x x
f x x
f x x x
x x
�
� �
�
-
�
� �
�
�
�=
�
�
-
M
[
]
[
]
[
]
1
1
1
2
0
1
1
0
0
,
, ,
,
, ,
,
,
,
n
n
n
n
n
n
n
f x x
x
f x
x
x
f x x
x x
x
x
-
-
-
-
-
=
-
K
K
K
Interpolacja sześcienna
Interpolacja sześcienna jest szczególnym
przypadkiem interpolacji Newtona dla n=3:
( )
(
)
(
) (
) (
)
0
1
0
3
0
1
2
= +
-
+ +
-
-
-
K
F x
b b x x
b x x
x x x x
Interpolacja sześcienna
( )
0
0
b
f x
=
[
]
1
1
0
,
=
=
b
f x x
[
]
2
2
1
0
, ,
=
=
b
f x x x
[
]
3
3
2
1
0
, , ,
=
=
b
f x x x x
[
]
3
2
1
, ,
=
f x x x
[
]
2
1
,
=
f x x
[
]
3
2
,
=
f x x
Interpolacja – treść zadania
POLECENIE:
Posługując się gotowym algorytmem interpolacji lub
aproksymacji funkcji znaleźć podane w treści zadania
wartości zadanej funkcji.
1.Na podstawie algorytmu podanego w skrypcie
napisać funkcję interpolującą lub aproksymującą.
2.Współrzędne zadanych i poszukiwanych punktów
zapisać w zbiorze dane1.m
3.Napisać program wczytujący zbiór z danymi, a
następnie posługując się zdefiniowaną funkcją
wyznaczyć wartości funkcji w zadanych punktach.
4.Sporządzić wykres przedstawiający funkcję z
zaznaczonymi punktami zadanymi i wyliczonymi .
Interpolacja – algorytm
rozwiązania
Wczytanie danych w programie:
Na laboratorium
dane należy
wczytywać z pliku
dane1.m.
Wyznaczenie brzegów
przedziału [minx,maxx].
Wczytanie do zmiennej n
liczby punktów
poszukiwanych.
Interpolacja liniowa – algorytm
rozwiązania
Obliczenie współrzędnych poszukiwanych
punktów:
Zaimplementowanie do
programu wzoru:
Sprawdzenie czy
punkt należy do
przedziału
[minx,maxx].
Obliczenie numeru najmniejszego
elementu większego od
poszukiwanego punktu
Potrzeba stworzenia funkcji
interpolacyjnej !!!
Interpolacja kwadratowa – algorytm
rozwiązania
Obliczenie współrzędnych poszukiwanych
punktów:
Sprawdzenie czy
punkt należy do
przedziału
[minx,maxx].
Obliczenie numeru najmniejszego
elementu większego od
poszukiwanego punktu
Uruchomienie funkcji interpolującej dwumian, przekazanie do niej
współrzędnych danych punktów oraz odciętych punktów
poszukiwanych.
Interpolacja kwadratowa – algorytm
rozwiązania
Funkcja interpolująca dwumian():
Wykorzystanie w funkcji dwumian() wcześniej
zaprezentowanych wzorów:
( )
2
0
1
2
f x
a
a x a x
= +
+
0
0
1
1
2
1
n
n
n
a
b bx
b x x
-
-
= -
+
1
1
2
1
2
n
n
a
b b x
b x
-
= -
-
2
2
a
b
=
Interpolacja
sześcienna – algorytm
rozwiązania
Obliczenie współrzędnych poszukiwanych
punktów:
Sprawdzenie czy punkt
należy do przedziału
[minx,maxx].
Obliczenie numeru najmniejszego
elementu większego od
poszukiwanego punktu
Uruchomienie funkcji interpolującej cub, przekazanie do niej
współrzędnych danych punktów oraz odciętych punktów
poszukiwanych.
Interpolacja –
algorytm
rozwiązania
Funkcja interpolująca cub():
Wykorzystanie w funkcji cub() wcześniej zaprezentowanych
wzorów:
( )
0
0
b
f x
=
[
]
1
1
0
,
=
=
b
f x x
[
]
2
2
1
0
, ,
=
=
b
f x x x
[
]
3
3
2 1
0
, , ,
=
=
b
f x x x x
[
]
3
2
1
, ,
=
f x x x
[
]
2
1
,
=
f x x
[
]
3
2
,
=
f x x
Interpolacja kwadratowa – algorytm
rozwiązania
Sporządzenie wykresu:
- wypisanie wyników w Command
Window
Narysowanie punktów danych oraz wyliczonych z
interpolacji
Dla interpolacji liniowej łatwo można narysować
przebieg funkcji, gdyż wystarczy połączyć dane w
zadaniu punkty.
Interpolacja – wynik rozwiązania metodą
numeryczną
dla interpolacji liniowej
Aproksymacja - wstęp
Celem aproksymacji jest wyznaczenie przybliżonego
przebiegu funkcji dla danego zbioru punktów, w
których znane są wartości funkcji (np. punkty
pomiarowe).
Aproksymacja - wstęp
- aproksymację
stosuje
się
dla
znacznej
liczby
punktów
pomiarowych
- w aproksymacji poszukuje się jednej
funkcji przybliżającej, która nie musi
przechodzić przez wszystkie punkty
pomiarowe
- wobec tego w każdym punkcie
pomiarowym pojawia się różnica
(błąd) między wartością pomierzonej
funkcji
a
wartością
funkcji
aproksymującej
Aproksymacja – kryteria błędów
W aproksymacji poszukuje się takiej
funkcji przybliżającej, dla której błąd
przybliżenia punktów pomiarowych
będzie najmniejszy.
Najczęściej stosowane kryteria błędów:
- kryterium minimum sumy błędów
-
kryterium
minimum
wartości
bezwzględnej błędów
-kryterium
minimum
błędu
maksymalnego
-kryterium
minimum
sumy
kwadratów błędów
Aproksymacja – kryteria błędów
Dla liniowej funkcji aproksymującej:
0
1
= +
+
y a
a x e
Kryteria obliczania błędu:
0
1
= -
-
i
i
i
e
y a
a x
Definiowane są następująco:
Minimum sumy błędów:
(
)
0
1
1
1
n
n
i
i
i
i
i
e
y a
a x
=
=
=
-
-
� �
Minimum sumy wartości bezwzględnych błędów:
0
1
1
1
n
n
i
i
i
i
i
e
y a
a x
=
=
=
-
-
�
�
Kryterium minimum błędu maksymalnego (tzw.
Kryterium „minimax”):
1 2
min(max( , , , ))
n
e e
e
K
Aproksymacja – kryteria błędów
Minimum sumy kwadratów – metoda najmniejszych
kwadratów:
(
)
2
2
0
1
1
1
n
n
r
i
i
i
i
i
S
e
y a
a x
=
=
=
=
-
-
� �
Kryterium te jest najczęściej stosowane, ze względu
na otrzymywaną najbardziej pożądaną postać funkcji
przybliżającej.
Rodzaje aproksymacji
W zależności od przyjętego sposobu
oszacowania
błędu
aproksymacji,
wyróżnia się trzy rodzaje aproksymacji:
aproksymacja
interpolacyjna
–
sprowadza się do interpolacji jedną
funkcją całego przedziału
aproksymacja
jednostajna
–
aproksymacja w której jako kryterium
minimalizacji błędów przyjmuje się
kryterium minimax
aproksymacja średniokwadratowa –
metoda najmniejszych kwadratów
Aproksymacja – metoda
najmniejszych kwadratów
Aproksymacja
średniokwadratowa
jest
najczęściej
stosowanym
sposobem
aproksymacji. Posiada wiele wariantów, tutaj
przyjęto wariant liniowy metody. Żądamy w
niej, aby zostało spełnione kryterium
minimum sumy kwadratów błędów.
Jeśli wartości funkcji dane są
w punktach
, to szukamy funkcji
aproksymującej jako kombinacji liniowej
pewnych funkcji :
Gdzie: l – liczba funkcji aproksymujących jest dużo
mniejsza
od
n – liczby punktów, w których dana jest wartość
funkcji.
1
2
, , ,
n
y y
y
K
1
2
, , ,
n
x x
x
K
( )
( )
( )
1 1
2 2
l l
y a f x
a f x
a f x
=
+
+ +
K
( )
( )
1
, ,
K
l
f x
f x
Aproksymacja – metoda
najmniejszych kwadratów
1
2
, , ,
K
l
a a
a
( )
( )
( )
1 1
2 2
i
i
i
i
l l
i
y
y a f x
a f x
a f x
D = -
-
-
-
K
( )
2
2
1
1
1
min
=
=
=
�
�
= D =
-
=
�
�
�
�
�
�
�
n
n
l
i
i
k k
i
i
i
k
H
y
y
a f x
Aproksymacja – metoda
najmniejszych kwadratów
Minimum wariancji H możemy obliczyć
przyrównując jej pochodną do zera:
Otrzymujemy
układ
l
równań
o
l
niewiadomych
( )
( )
1
1
2
0 dla 1, 2, ,
=
=
�
�
��
�
=
-
-
=
=
�
�
�
�
�
�
�
�
�
K
n
l
i
k k
i
j
i
i
k
j
H
y
a f x
f x
j
l
a
1
, ,
K
l
a
a
( ) ( )
( )
1
1
,
1, 2, ,
=
=
=
=
=
=
�
�
K
n
jk
kj
k
i
j
i
i
n
j
i
j
i
i
A
A
f x f x
B
y f x
k j
l
1
1, 2, ,
=
=
=
�
K
l
jk k
j
k
A a
B
j
l
Gdzie:
Aproksymacja – metoda
najmniejszych kwadratów
1
A a B
a A B
-
�
�
�=
�
=
Ocena dokładności aproksymacji
Ocena dokładności aproksymacji
Wariancja H wyraża średnią arytmetyczną
kwadratów odchyleń (błędów) wartości funkcji
od obliczonej wartości średniej funkcji w
poszukiwanych punktach.
1
( )
i
n
y
f x
=
�
(
)
2
( )
t
i
S
f x
y
=
-
�
gdzie:
jest wartością średnią funkcji w punktach
poszukiwanych.
Ponieważ wariancja rośnie wraz ze wzrostem n,
stosuje się średnią wartość wariancji – tzw.
odchylenie standardowe:
1
t
y
S
n
s =
-
Ocena dokładności aproksymacji
(
)
2
( )
( )
r
i
i
S
f x
F x
=
-
�
1
r
xy
S
n
s
=
-
1
t
r
t
S S
r
r
rozwiązaniedokładne
S
-
=
= �
Ocena dokładności aproksymacji
2
t
r
t
S S
r
S
-
=
Aproksymacja – algorytm
rozwiązania
Wczytanie danych w programie:
Na laboratorium
dane należy
wczytywać z pliku
dane1.m.
Zmienna m jest zwiększana o jeden ponieważ
wielomian n stopnia ma n+1 niewiadomych
współczynników
Aproksymacja – algorytm
rozwiązania
Obliczenie elementów pomocniczych
macierzy A i B:
Sprawdzenie czy użytkownik wczytał
wystarczającą liczbę punktów do
zdefiniowania wielomianu stopnia m-1
Obliczenie elementów
macierzy A i B zgodnie z
poniższymi wzorami:
Potrzeba stworzenia oddzielnej funkcji
aproksymacyjnej !!!
( ) ( )
( )
1
1
,
1, 2, ,
=
=
=
=
=
=
�
�
K
n
jk
kj
k
i
j
i
i
n
j
i
j
i
i
A
A
f x f x
B
y f x
k j
l
Aproksymacja – algorytm
rozwiązania
1
\ '
a=A
'
( )
'
a A B
B inv A B
-
=
�
� =
�
Aproksymacja – algorytm
rozwiązania
Obliczenie na podstawie funkcji aproksymującej
wartości funkcji w punktach poszukiwanych :
Narysowanie wykresu funkcji aproksymującej z
zaznaczeniem punktów danych i poszukiwanych:
Prezentacja została wykonana na podstawie
skryptu:
METODY NUMERYCZNE W MECHANICE
KONSTRUKCJI z przykładami w
programie MATLAB
prof. dr hab. inż. Paweł Kłosowski
dr inż. Andrzej Ambroziak
Wydawnictwo Politechniki Gdańskiej
Dziękuje za uwagę