Interpolacja i modelowanie krzywych 2D i 3D Dariusz Jacek Jakóbczak Politechnika Koszalińska Wydział Elektroniki i Informatyki Zakład Podstaw Informatyki i Zarządzania e-mail: Dariusz.Jakobczak@tu.koszalin.pl 07.03.207
Agenda. Cel i metody interpolacji 2. Problem 3. Dwupunktowa Interpolacja Gładka (DIG) 4. Wyniki i porównania 5. Wnioski i przyszłe badania 07.03.207 2
Interpolacja jako kluczowy element szacowania nieznanych wielkości w punktach pośrednich prowadzenie gładkich krzywych przez punkty pomiarowe lub z symulacji (funkcje sklejane); Curve fitting dopasowanie krzywej do punktów; analizy numerycznej: funkcje sklejane są używane w numerycznym różniczkowaniu i całkowaniu, rozwiązywaniu równań różniczkowych zwyczajnych i cząstkowych, znajdowaniu miejsc zerowych funkcji, zastępowaniu skomplikowanego wzoru funkcji prostszą formułą oraz obliczaniu wartości stablicowanej funkcji w punkcie różnym od danych; CAD - funkcje sklejane (i ich uogólnienia) podstawowe narzędzie projektowanie geometrycznego (CAD). 07.03.207 3
Metody interpolacji krzywych płaskich wielomianowa interpolacja dowolnej funkcji gładkiej o dowolnych węzłach, kubiczna - splajny stopnia 3; wymierna brak jednoznacznego rozwiązania; trygonometryczna tylko dla funkcji okresowych; wykładnicza; wielomianowe i wymierne interpolacyjne krzywe B-sklejane stopnia 3 do grafiki i modelowania, nieodpowiednie do zastosowań numerycznych. 07.03.207 4
Oszacowanie błędu interpolacyjnego dla interpolacji wielomianowej f ( x) W M n n ( x) sup f x[ a, b] M n ( x x ( n )! ( n) ( x) o )( x x )...( x x n ) x i = 0;;2;3 x = 0.5;2.5 wyższy stopień wielomianu interpolacyjnego (więcej węzłów) nie musi oznaczać poprawy jakości interpolacji przykładem negatywnym jest interpolowanie funkcji y= x, y=/x, y=/(+ax^2): im niższy stopień wielomianu, tym bezpieczniej 07.03.207 5
Pytania dotyczące interpolacji wielomianowej: Jak zmniejszyć błąd interpolacji? Jak wyeliminować ekstrema między węzłami? Jak interpolować krzywe różniące się znacząco od wielomianu? Jak interpolować funkcje nie mające pochodnej w węźle wewnętrznym? Jak interpolować nie posiadając wiedzy o wartościach 2-ej pochodnej w węzłach (splajny kubiczne)? 07.03.207 6
Dane: Problem zbiór punktów funkcji ciągłej na płaszczyźnie: (x i,y i ) minimum 3 węzły Ograniczenia: - interpolowana krzywa będzie co najwyżej klasy C; - wyznaczany punkt zależy tylko od dwóch sąsiednich węzłów i zawarty jest w prostokącie określonym przez sąsiednie węzły; - krzywa mogła być gładka w węzłach lub nie, w zależności od przyjętych założeń; - numeracja węzłów zgodna z kolejnością ich położenia na krzywej; - współrzędne y trzech kolejnych węzłów (jedna taka trójka węzłów) są monotoniczne lub znana jest wartość pochodnej w jednym węźle wewnętrznym; - zbiór funkcji modelujących. 07.03.207 7
Problem Czy przy określonych danych i przyjętych ograniczeniach możliwe jest interpolowanie i parametryzowanie krzywej tak, aby mieć pewność co do następujących cech: a) brak ekstremów między węzłami (mniejszy błąd w porównaniu z interpolacją wielomianową); b) interpolację w punkcie, gdzie brak pochodnej; c) jednoznaczną interpolację bez wiedzy o wartości 2-ich pochodnych w węzłach? 07.03.207 8
Dwupunktowa Interpolacja Gładka (DIG) węzły: p =(x,y ), p 2 =(x 2,y 2 ),, p n =(x n,y n ) kombinacja węzłów: h (p,p 2,,p m ) x() = x i + (-)x i+, i =,2, n-, y( ) yi ( ) yi ( ) h( p, p2,..., p m ) α [0;], γ = F(α) [0;], F:[0;] [0;], F(0)=0, F()=, F - rosnąca 07.03.207 9
Funkcje modelujące przykłady h = 0 : y ( ) y i ( ) yi parametry rzeczywiste: α[0;] oraz s > 0 γ=α s, γ=sin(α s π/2), γ=sin s (α π/2), γ=-cos(α s π/2), γ=-cos s (α π/2), γ=tan(α s π/4), γ=tan s (α π/4), γ=log 2 (α s +), γ=log 2s (α+), γ=(2 α ) s, γ=2/π arcsin(α s ), γ=(2/π arcsinα) s, γ=-2/π arccos(α s ), γ=-(2/π arccosα) s, γ=4/π arctan(α s ), γ=(4/π arctanα) s, γ=ctg(π/2 α s π/4), γ=ctg s (π/2-α π/4), γ=2-4/π arcctg(α s ), γ=(2-4/π arcctgα) s, γ=β α 2 +(-β) α, γ=β α 4 +(-β) α,, γ=β α 2k +(-β) α, β[0;], k N 07.03.207 0
Wybór dwóch funkcji modelujących umożliwiających: - gładkość w węzłach wewnętrznych - określenie wypukłości między węzłami γ=α s, γ=sin(α s π/2) Przykład interpolacji DIG (bez założenia gładkości w węzłach) funkcji y=2 x dla 7 węzłów oraz h=0, γ=α 0.8. 07.03.207
Metoda DIG. współrzędne y trzech kolejnych węzłów są monotoniczne obliczenie współczynnika s dla funkcji modelującej między i 3 węzłem z uwzględnieniem węzła środkowego xi xi y (0;) t x x y i i i i (*) w zależności od położenia 4 węzła względem 3 (wypukłość): 2 s log t s log ( arcsin t) 2. wyznaczenie s dla kolejnego przedziału węzłów tak, aby iloraz różnicowy lewo- i prawostronny był taki sam w danym węźle wewnętrznym: wybór γ analogiczny jak (*). (0;) 3. punkt 2 powtarzany jest dla każdego przedziału węzłów. 07.03.207 2 i y y i
Ad. 2) Wyznaczenie s dla kolejnego przedziału węzłów c wartość ilorazu różnicowego lewostronnego (lub wartość pochodnej 0) jeżeli γ=α s jeżeli γ=sin (α s π/2) u c( ) Jeżeli węzeł, dla którego porównujemy ilorazy różnicowe oraz jego węzły sąsiednie nie są monotoniczne, to: xi xi u c( ) y y 07.03.207 3 x y i i x y s log s log i i i u 2 ( arcsin u) i
Cechy DIG dokładniejsza interpolacja możliwa kosztem gładkości w węzłach; określenie wypukłości między węzłami za pomocą wyboru funkcji modelującej; jeżeli w tych węzłach;, to funkcja stała między tymi węzłami brak gładkości stabilność niewielka zmiana węzła powoduje niewielkie zmiany wyniku; y i y i jeżeli znana jest wartość pochodnej 0 w jednym węźle wewnętrznym, to przyrównując do niej iloraz różnicowy lewo- i prawostronny wyznaczamy s na lewo i prawo od tego węzła. 07.03.207 4
Przykład : y=/(+x 2 ) gładka w węźle (0;) x y-dig błąd= - 0,5 0-0,9 0,520788 0,03699-0,8 0,573796 0,03596-0,7 0,645368 0,025773-0,6 0,72376 0,0533-0,5 0,8 0-0,4 0,867902 0,005833-0,3 0,923627 0,00696-0,2 0,965006 0,003467-0, 0,990825 0,000726 0 0 0,287 γ=sin(α s π/2) x y-dig błąd= 0 0 s=.932 s=.236 0, 0,990825 0,000726 0,2 0,964565 0,003027,2,2 0,3 0,923583 0,00652 0,4 0,87073 0,008662 0,5 0,80987 0,00987 0,8 0,8 0,6 0,742309 0,00705 0,6 0,6 0,7 0,673557 0,00246 0,4 0,4 0,8 0,606538 0,00328 0,9 0,545503 0,006983 0,2 0,2 0,5 0 0 0 0,047385 -,5 - -0,5 0 0 0,5,5-0,5 0-0,9 0,5608 0,00834-0,8 0,6224 0,02644-0,7 0,6836 0,02459-0,6 0,7432 0,007906-0,5 0,8,E-6-0,4 0,8528 0,009269-0,3 0,9004 0,0703-0,2 0,946 0,09938-0, 0,9752 0,04899 0 0 0,0246 0 0 0,,048 0,02470 0,2,084 0,056862 0,3,0096 0,09269 0,4 0,9872 0,253 0,5 0,95 0,5 0,6 0,8968 0,6506 0,7 0,8264 0,55259 0,8 0,7376 0,27844 0,9 0,6292 0,07674 0,5,E-6 0,97085 07.03.207 5
DIG dla y=/(+x 2 ): nie jest gładka w węźle (0;), ale interpolacja dokładniejsza γ=sin(α s π/2) s=.272 x y-dig błąd= 0 0 0, 0,990327 0,000228 0,2 0,962803 0,00265 0,3 0,92066 0,002735 0,4 0,865647 0,003578 0,5 0,80277 0,00277 0,6 0,73586 0,00009 0,7 0,666574 0,004567 0,8 0,600698 0,009058 0,9 0,54935 0,0055 0,5 0 0,03486,2 0,8 0,6 0,4 0,2 0 0 0,2 0,4 0,6 0,8,2 07.03.207 6
Przykład 2: y=/x gładka w węźle (2;0.5) γ=α s x y-dig błąd= 0,5 2 0 0,65,627485 0,089024 0,8,3943 0,06943 0,95,070667 0,08035, 0,875828 0,033263,25 0,729323 0,070677,4 0,625276 0,0890,55 0,557457 0,087704,7 0,5952 0,069083,85 0,502928 0,03762 2 0,5 0 0,563839 x y-dig błąd= 2 0,5 0 2,2 0,496096 0,0455 2,4 0,49804 0,07537 2,6 0,487028 0,0243 2,8 0,48632 0,24489 3 0,475408 0,42075 3,2 0,46808 0,5558 3,4 0,458847 0,64729 3,6 0,446572 0,68795 3,8 0,427236 0,64078 4 0,25,E-6,38785 2,5 2,5 0,5 0 s=2.70 s=0.49 0,6 0,4 0,2 0 0 0,5,5 2 02,5 2 3 4 5 0,5 2 0 0,65,62978 0,0932 0,8,322 0,072 0,95,07594 0,08962, 0,8735 0,03559,25 0,722656 0,077344,4 0,64 0,00286,55 0,542469 0,02693,7 0,503 0,085235,85 0,49053 0,050009 2 0,5 0 0,633439 2 0,5 0 2,2 0,538 0,083455 2,4 0,594 0,77333 2,6 0,656 0,27385 2,8 0,72 0,354857 3 0,75 0,46667 3,2 0,758 0,4455 3,4 0,724 0,429882 3,6 0,636 0,358222 3,8 0,482 0,28842 4 0,25,E-6 2,75643 07.03.207 7
DIG dla y=/x: nie jest gładka w węźle (2;0.5), ale dokładniejsza interpolacja γ=α s s=.585 x y błąd= 2 0,5 0 2,2 0,4655 0,007005 2,4 0,425524 0,008858 2,6 0,392043 0,007428 2,8 0,36252 0,004 3 0,33333 2,7E-06 3,2 0,308507 0,003993 3,4 0,287083 0,007034 3,6 0,269502 0,008276 3,8 0,2565 0,006657 4 0,25,E-6 0,053364 0,6 0,5 0,4 0,3 0,2 0, 0 0 2 3 4 5 07.03.207 8
Przykład 3: y= x x y-dig błąd= -2 2 0 -,8,8 0 -,6,6 0 -,4,4 0 -,2,2 0-0 -0,8 0,8 0-0,6 0,6 0-0,4 0,4 0-0,2 0,2 0 0 0 0 0 x y-dig błąd= 0 0 0 0, 0, 2,78E-7 0,2 0,2 5,55E-7 0,3 0,3 0 0,4 0,4 0 0,5 0,5 0 0,6 0,6 0 0,7 0,7 0 0,8 0,8,E-6 0,9 0,9,E-6,E-6 4,6E-6 γ=α s s= 2,5,2 0,8,5 0,6 0,4 0,50,2 0 0-2,5-2 -,5 - -0,5 0 0 0,5 2-2 2 0 -,8,896 0,096 -,6,728 0,28 -,4,52 0,2 -,2,264 0,064-0 -0,8 0,736 0,064-0,6 0,488 0,2-0,4 0,272 0,28-0,2 0,04 0,096-2,78E-6 9,25E-7 9,25E-7 0,8 0 0 0 0, -0,023 0,23 0,2-0,024 0,224 0,3-0,00 0,30 0,4 0,048 0,352 0,5 0,25 0,375 0,6 0,232 0,368 0,7 0,37 0,329 0,8 0,544 0,256 0,9 0,753 0,47,E-6 2,475,2 0,8 0,6 0,4 0,2 0 0 0,2 0,4 0,6 0,8,2 07.03.207 9
y= x - DIG dla gładkiej w (0;0) s=.585 γ=sin(α s π/2) s=.93 x y-dig błąd= -2 2 0 -,8,94923 0,4923 -,6,785004 0,85004 -,4,55728 0,5728 -,2,286956 0,086956-2,22E-6-0,8 0,78792 0,08208-0,6 0,4687 0,3883-0,4 0,244468 0,55532-0,2 0,0867 0,8329-2,8E-6 0 2,78E-6,06446 2,5,2 x y-dig błąd= 0 0 0 0, 0,040835 0,05965 0,2 0,4530 0,054699 0,3 0,28694 0,03086 0,4 0,442706 0,042706 0,5 0,594935 0,094935 0,6 0,7325 0,325 0,7 0,843699 0,43699 0,8 0,9278 0,278 0,9 0,98088 0,08088 0 0,74834 2,5 0,8 0,6 0,4 0,5 0,2 0-2,5-2 -,5 - -0,5 0 0 0 0,2 0,4 0,6 0,8,2 07.03.207 20
Przykład 4: y=2^x gładka w węźle (2;4) x y-dig błąd= 0 0 0,2,7933 0,03065 0,4,367 0,047603 0,6,56494 0,049225 0,8,774908 0,033806 2 0,2 2,24474 0,052656,4 2,56605 0,224,6 2,829827 0,20606,8 3,29885 0,26237 2 4 8,88E-6 0,80024 x y błąd= 2 4 0 2, 4,390058 0,02964 2,2 4,78254 0,8646 2,3 5,73735 0,24958 2,4 5,567693 0,28966 2,5 5,96338 0,306526 2,6 6,366 0,298293 2,7 6,76579 0,26356 2,8 7,65576 0,2072 2,9 7,57549 0,0885 3 8 5,33E-5 2,008679 5 4 3 2 0 γ=α s s=0.585 s=0.974 0 8 6 4 0 0,5,5 2 2 2,5 0 0 2 3 4 0 0 0,2,68 0,09302 0,4,344 0,024492 0,6,536 0,020283 0,8,752 0,00899 2 0,2 2,288 0,009397,4 2,624 0,0506,6 3,06 0,05433,8 3,472 0,00202 2 4 0 0,25024 2 4 0 2, 4,2935 0,006406 2,2 4,608 0,03207 2,3 4,9445 0,09922 2,4 5,304 0,025968 2,5 5,6875 0,030646 2,6 6,096 0,03334 2,7 6,5305 0,03248 2,8 6,992 0,027595 2,9 7,485 0,07236 3 8,78E-5 0,206595 07.03.207 2
y=2^x nie jest gładka w węźle (2;4) γ=α s s=0.79 x y błąd= 2 4 0 2, 4,39847 0,032754 2,2 4,647227 0,052433 2,3 4,983297 0,05879 2,4 5,329592 0,0556 2,5 5,688227 0,03372 2,6 6,062287 0,000579 2,7 6,456655 0,04364 2,8 6,8802 0,084293 2,9 7,352768 0,496 3 8 5,33E-5 0,46457 9 8 7 6 5 4 3 2 0 0 2 3 4 07.03.207 22
Analiza błędów interpolacji funkcja - 4 węzły wiel. 3 st. - suma błędów DIG (gładka)-suma błędów DIG (brak gładkości)- suma błędów y=/(+x^2),072645 0,68572 0,56047 y=/x 3,389582,702624 0,67203 y=abs(x) 3,275,8255 0 y=2^x 0,3369 2,80899,2648 Złożoność obliczeniowa: wielomianowe splajny 3 stopnia: rozwiązanie układu równań liniowych m x m, gdzie m to liczba wszystkich węzłów O(m); DIG obliczenie wartości: s >0, t (0;) s γ=α s γ=sin(α s π/2) 2 log t s log ( arcsin t) 07.03.207 23
Splajn kubiczny dla węzłów (, ), (0, 0), (, ) rozwiązanie nie jest jednoznaczne w( x) w( x) 5x 3x 3 3 4x, 4x, x [ ;0] x (0;] Ekstrema między węzłami lub w( x) x 2 Wartości 2-ich pochodnych w węzłach jednoznaczne rozwiązanie 07.03.207 24
Zastosowanie interpolacji DIG Obliczanie prawdopodobieństwa w rozkładzie ciągłym, jeżeli: gęstość rozkładu nie jest znana przy przejściu z rozkładu dyskretnego (skokowego) do ciągłego dana jest tylko skończona liczba punktów leżących na krzywej Konieczność numerycznego całkowania gęstości, opartego na interpolacji wartości funkcji obliczanie kwadratur (np. metodą prostokątów, trapezów czy parabol) Rozkład Cauchy ego przykład dokładniejszej interpolacji DIG niż wielomianowa g( x) x 07.03.207 25 2
Wnioski Błąd DIG w każdym przedziale węzłów (oszacowanie ogólne): i y i y i Zastosowanie: - analiza numeryczna, - dopasowanie krzywej do danych. Brak negatywnych cech interpolacji wielomianowej (np. zjawisko Rungego, niepożądane ekstrema). Możliwość interpolacji krzywej gładkiej w węzłach lub nie w zależności od przyjętych założeń Parametryzacja krzywej niezależnie między każdą parą węzłów. 07.03.207 26
Krzywa w 3D x y ( ) x k ( ) xk ( ) y k ( ) yk z( ) zk ( ) zk ( ) h( p, p2,..., p m ) 07.03.207 27
Dalsze badania:. dobór funkcji modelującej z liczniejszego zbioru, 2. dobór węzłów dla najlepszej interpolacji, 3. wyższa klasa niż C, 4. ekstrapolacja danych dla α[0;], 5. dokładniejsze oszacowanie błędu, 6. dobór współczynnika s dla najdokładniejszej interpolacji bez warunku gładkości w węzłach wewnętrznych, 7. przekształcenia geometryczne krzywej, 8. dowolna krzywa otwarta lub zamknięta, 9. analiza własności krzywych w 3D. 07.03.207 28
Interpolacja i modelowanie krzywych 2D i 3D Dariusz Jacek Jakóbczak Dziękuję za uwagę e-mail: Dariusz.Jakobczak@tu.koszalin.pl 07.03.207 29