II Tutorial z Metod Obliczeniowych

Download Report

Transcript II Tutorial z Metod Obliczeniowych

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
F  x   b0  b1  x  x 0  
 bn  x  x 0   x  x1 
 x  x n 1 
Interpolacja Newtona dla wielomianu
dowolnego stopnia
b0  f  x 0 
b1  f  x1 , x 0 
b 2  f  x 2 , x1 , x 0 
b n  f  x n , x n 1 ,
, x1 , x 0 
Interpolacja Newtona dla wielomianu
dowolnego stopnia
Gdzie funkcje z nawiasami kwadratowymi oblicza się z
zależności rekurencyjnych:
f  x i , x j  
f  xi   f  x j 
xi  x j
f  x i , x j   f  x j , x k 
f  x i , x j , x k  
xi  x k
f  x n , x n 1 ,
x1 , x 0  
f  x n , x n 1 ,
, x1   f  x n 1 , x n  2 ,
xn  x0
, x0 
Interpolacja sześcienna
Interpolacja sześcienna jest szczególnym przypadkiem
interpolacji Newtona dla n=3:
F  x   b0  b1  x  x 0  
 b3  x  x 0   x  x1   x  x 2 
Interpolacja sześcienna
b0  f  x 0 
b1  f  x1 , x 0  
f  x 2 , x1  
f  x3 , x 2  
b 2  f  x 2 , x1 , x 0  
f  x 3 , x 2 , x1  
b3  f  x 3 , x 2 , x1 , x 0  
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:
Sprawdzenie czy punkt
należy do przedziału
[minx,maxx].
Obliczenie numeru najmniejszego elementu
większego od poszukiwanego punktu
Zaimplementowanie do programu wzoru:
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:
f  x   a 0  a1 x  a 2 x
2
a 0  b0  b1 x n 1  b2 x n 1 x n
a1  b1  b2 x n 1  b2 x n
a 2  b2
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:
b0  f  x 0 
b1  f  x1 , x 0  
f  x3 , x 2  
f  x 2 , x1  
b 2  f  x 2 , x1 , x 0  
f  x 3 , x 2 , x1  
b3  f  x 3 , x 2 , x1 , x 0  
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: y  a 0  a1 x  e
Kryteria obliczania błędu: ei  y i  a 0  a1 x i
Definiowane są następująco:
Minimum sumy błędów:
n
n
i 1
i 1
 e i    y i  a 0  a1 x i 
Minimum sumy wartości bezwzględnych błędów:
n
n
i 1
i 1
 e i   y i  a 0  a1 x i
Kryterium minimum błędu maksymalnego (tzw. Kryterium „minimax”):
m in(m ax( e1 , e 2 ,
, e n ))
Aproksymacja – kryteria błędów
Minimum sumy kwadratów – metoda najmniejszych kwadratów:
n
Sr 

i 1
n
2
ei

  y i  a 0  a1 xi 
2
i 1
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 y1 , y 2 , , y n dane są w punktach
x1 , x 2 , , x n , to szukamy funkcji aproksymującej jako
kombinacji liniowej pewnych funkcji f1  x  , , f l  x  :
y  a1 f1  x   a 2 f 2  x    a l f l  x 
Gdzie: l – liczba funkcji aproksymujących jest dużo mniejsza od
n – liczby punktów, w których dana jest wartość funkcji.
Aproksymacja – metoda najmniejszych kwadratów
a1 , a 2 ,
 y i  y i  a1 f1  x i   a 2 f 2  x i  
H 
n

i 1
2
 yi
n

i 1

y 
 i
l

k 1
, al
 a l f l  xi 
2

a k f k  x i   m in

Aproksymacja – metoda najmniejszych kwadratów
Minimum wariancji H możemy obliczyć przyrównując jej
pochodną do zera:
H
a j
n
 2
i 1

y 
 i
l

k 1

a k f k  x i    f j  x i    0

dla j  1, 2,
Otrzymujemy układ l równań o l niewiadomych a1 ,
l
 A jk a k  B j
j  1, 2,
,l
k 1
Gdzie:
A jk  Akj 
Bj 
n
n
 f k  xi  f j  xi 
i 1
 y i f j  xi 
i 1
k , j  1, 2,
,l
, al
,l
Aproksymacja – metoda najmniejszych kwadratów
A  a  B

1
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.
St 
  f ( xi )  y 
gdzie: y 
1
n

2
f ( xi )
jest wartością średnią funkcji w punktach poszukiwanych.
Ponieważ wariancja rośnie wraz ze wzrostem n, stosuje się
średnią wartość wariancji – tzw. odchylenie standardowe:

y

St
n 1
Ocena dokładności aproksymacji
Sr 
 xy 
r 
  f ( xi )  F ( xi ) 
2
Sr
n 1
St  Sr
St
r  1  rozw iązanie dokładne
Ocena dokładności aproksymacji
r
2

St  Sr
St
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:
A jk  Akj 
Bj 
n
n
 f k  xi  f j  xi 
i 1
 y i f j  xi 
k , j  1, 2,
,l
i 1
Potrzeba stworzenia oddzielnej funkcji aproksymacyjnej !!!
Aproksymacja – algorytm rozwiązania
a  A\B'

a=A
1
 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ę