PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  ·...

57
POLITECHNIKA WARSZAWSKA Wydzial Fizyki Technicznej i Matematyki Stosowanej PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji do rozwiązywania ukladów równań wielomianowych Praca zostala wykonana pod kierunkiem prof. dr hab. Krzysztofa Marciniaka Warszawa 1997 1

Transcript of PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  ·...

Page 1: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

POLITECHNIKA WARSZAWSKA

Wydział Fizyki Technicznej i Matematyki Stosowanej

PRACA DYPLOMOWA

Wykonujący: Andrzej Borucki

temat:

Ocena przydatności metod eliminacji do

rozwiązywania układów równań wielomianowych

Praca została wykonana pod kierunkiem

prof. dr hab. Krzysztofa Marciniaka

Warszawa 1997

1

Page 2: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Spis treści

1 Wstęp 2

1.1 Zastosowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Przegląd rozwiązań . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Wprowadzenie 5

2.1 Opis problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Krzywe Beziera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.1 Wielomiany Bernsteina . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.2 Krzywe Beziera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.3 Algorytm de Casteljau . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2.4 Zmiana Baz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3 Trójkąty Beziera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3.1 Współrzędne barycentryczne . . . . . . . . . . . . . . . . . . . . . 10

2.3.2 Wielomiany Bernsteina . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.3 Trójkąty Beziera . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3.4 Zmiana Baz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3.5 Algorytm de Casteljau . . . . . . . . . . . . . . . . . . . . . . . . 21

3 Metoda podpodziału 27

3.1 Szukanie pierwiastków metodą bisekcji . . . . . . . . . . . . . . . . . . . 27

3.2 Metody przyśpieszenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2.1 Warunek lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2.2 Metoda płaszczyzn ograniczających . . . . . . . . . . . . . . . . . 35

3.2.3 Metoda Newtona . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4 Testy i podsumowanie 47

4.1 Metoda płaszczyzn ograniczających . . . . . . . . . . . . . . . . . . . . . 47

4.2 Metoda Newtona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.3 Generowanie danych doświadczalnych . . . . . . . . . . . . . . . . . . . . 48

2

Page 3: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

4.4 Testowanie czasu wykonania . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.5 Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5 Inne metody 52

5.1 Algorytm PP - przecięcia rzutów wielościanów . . . . . . . . . . . . . . . 53

5.2 Algorytm LP - programowania liniowego . . . . . . . . . . . . . . . . . . 54

1 Wstęp

1.1 Zastosowanie

Fundamentalnym problemem w CAD jest sprawne wyliczanie wszystkich rozwiązań ukła-

du równań wielomianowych wewnątrz pewnej skończonej dziedziny. Problem taki możemy

zaobserwować w wielu różnych aplikacjach. Dla przykładu w CAD jest to często niezbęd-

ne do identyfikacji wszystkich charakterystycznych punktów krzywej przecięcia między

dwoma powierzchniami, ażeby móc śledzić wszystkie gałęzie krzywej. W przeważającej

większości wypadków płaszczyzny są przynajmniej kawałkami wielomianowe, musimy za-

tem rozwiązać układ nieliniowych (ale wielomianowych ) równań aby zidentyfikować te

punkty.

Podobne problemy powstają również w planowaniu ruchów robotów, obliczaniu odległości

funkcji i ekstremów, wyznaczaniu dokładnej odległości między poruszającymi się bryłami

( ślizganie się brył, wykluczanie kolizji ) oraz w wielu innych zastosowaniach CAD/CAM.

1.2 Przegląd rozwiązań

W wielu pracach badawczych z dziedziny CAD faworyzowane są trzy klasy metod do

obliczania układów nieliniowych wielomianowych: technika algebraiczna , homotopia i

podpodział . Metody te mogą być zaklasyfikowane jako globalne , ponieważ są przezna-

czone do obliczania wszystkich pierwiastków w pewnych interesujących zakresach.

Istnieje również pewna liczba lokalnych technik numerycznych , używających niektórych

wariacji iteracji Newtona - Raphsona lub numerycznej optymizacji . Metody te są bardzo

3

Page 4: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

dokładne i wydajne ( zbieżność kwadratowa ), mają jednak tą wadę, że wymagają dobre-

go przybliżenia początkowego pierwiastka oraz nie dają pewności znalezienia wszystkich

pierwiastków. Przybliżenia początkowe uzyskiwane są zwykle poprzez niektóre rodzaje

poszukiwań globalnych. Dobre wyniki daje połączenie metod globalnych i lokalnych. Taki

hybrydowy algorytm przy szukaniu pierwiastka korzysta początkowo z metody globalnej

dając początkowe przybliżenia pierwiastka, następnie znajduje dokładny pierwiastek za

pomocą metody lokalnej - np. metody Newtona.

Przejrzyjmy się krótko trzem klasom metod globalnych:

Metody używające baz Gröbnera - klasa metod korzystająca z techniki geometrii al-

gebraicznej umożliwiająca obliczenie wszystkich zespolonych pierwiastków układu rów-

nań wielomianowych. Metody te mają wiele zalet: są eleganckie, gwarantują znalezienie

wszystkich zespolonych pierwiastków układu niezależnie od wymiaru zbioru rozwiązań

i dobrze dostosowują się do implementacji symbolicznej. Niestety, ich wadą jest nume-

ryczna niestabilność, która utrudnia implementację w arytmetyce zmiennopozycyjnej. Co

więcej - są niewydajne, jeżeli chodzi o wykorzystanie czasu procesora i pamięci, co czyni je

nieatrakcyjnymi dla wielu zastosowań. Za to często dają nam o wiele więcej informacji niż

my potrzebujemy: wiele aplikacji CAD nie wymaga znalezienia wszystkich pierwiastków,

a wyłącznie tych, które leżą w pewnym rzeczywistym n-boksie.

Drugą kategorią metod jest klasa technik homotopii (Garcia & Zangwill -[5]) Metody te

mogą być użyte do znalezienia wszystkich zespolonych rozwiązań układów wielomiano-

wych, jeżeli ilość pierwiastków jest skończona.

Niestety, przy bliższym przyjrzeniu, okazują się również numerycznie źle uwarunkowane.

Jeśli będziemy chcieli obejść ten problemu przez implementację algorytmu w dokładnej

arytmetyce wymiernej, skończy się to ogromnymi wymaganiami pamięci. Metoda homo-

topii, podobnie jak technika geometrii algebraicznej, dostarcza wiele informacji, których

nie potrzebujemy.

Trzecią klasą są metody oparte na podpodziale . Należą do niej m.in. algorytmy PP i LP

opisane przez Sherbrooke i Patrikalakisa w [15]. Techniki podpodziału bywają również

często używane w rozmaitych problemach przecinania w modelowaniu geometrycznym.

4

Page 5: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Sederberg [13] rozwija adaptatywny algorytm podpodziału, który może być użyty do

przecinania dwóch “planarnych” algebraicznych krzywych wyrażonych w barycentrycz-

nych bazach Bernsteina .

Patrikalakis , Prakash i Kriezis badają użycie podpodziału krzywych algebraicznych w za-

stosowaniu do przecinania algebraicznych powierzchni implicite z wymierną powierzchnią

wielomianową. Ich metoda polega na obliczaniu rzeczywistych punktów charakterystycz-

nych krzywej algebraicznej reprezentowanej w bazach Bernsteina, co zwykle pociąga za

sobą liczenie przecinania się dwóch lub trzech krzywych algebraicznych przez powtarza-

jący się podpodział i minimizację .

Minimizacja została użyta do zwiększenia precyzji wyliczania pierwiastków (wykazuje

zbieżność kwadratową ); alternatywnie, do “oczyszczenia” pierwiastka. może być użyta

iteracja Newtona-Raphsona, która jest również kwadratowo zbieżna.

Nishita [10] rozwija adaptatywną technikę podpodziału znaną jako “Bezier Clipping”

do przecinania promieni z przyciętym płatkiem wielomianowym - również przekształ-

cił problem do przecinania się dwóch krzywych algebraicznych wyrażonych w Bazach

Bernsteina. Sederberg i Nishita [14] rozszerzyli tę metodę do przecinania krzywych para-

metrycznych z płaszczyzną parametryczną.

Należy zauważyć, że technika podpodziału ma kilka wad. Po pierwsze - nie są tak ogólne

jak metody algebraiczne, ponieważ są przeznaczone do wyznaczania zero-wymiarowego

zbioru rozwiązań wewnątrz n-wymiarowego podzbioru przestrzeni euklidesowej ; co wię-

cej, mimo że szanse, że wszystkie pierwiastki zostaną znalezione zwiększają się, gdy to-

lerancja rozdzielczości jest zmniejszana , nie ma całkowitej pewności że wszystkie pier-

wiastki zostaną znalezione - w przypadku, gdy znajdują się bardzo blisko siebie .

Na koniec technika podpodziału nie dostarcza jawnych informacji na temat wielokrotności

pierwiastków bez dodatkowych obliczeń. Mimo tych przeszkód, prędkość i stabilność tych

metod czyni je atrakcyjnymi dla wielu zadań, gdzie mamy do czynienia ze znajdowaniem

pierwiastków.

5

Page 6: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

2 Wprowadzenie

2.1 Opis problemu

Zajmę się tutaj metodą rozwiązywania układu równań wielomianowych w 2 wymiarowej

dziedzinie - trójkącie. Rozwiązywanie takich układów równań jest potrzebne m.in. gdy

chcę znaleźć punkt przecięcia dwóch krzywych parametrycznych - należy wtedy odjąć od-

powiadające sobie funkcje jednej krzywej od funkcji drugiej krzywej i poszukiwać punktu

(0,0). Zakładam, że wierzchołki trójkąta w którym poszukuję rozwiązań mają współrzęd-

ne: (0,0),(0,1),(1,0). Nie zmniejsza to w niczym ogólności metody - inną dziedzinę należy

przeskalować. Skalowanie dziedziny odbywa się poprzez podstawienie: zamiast f(x, y)

mamy f(x′, y′),

gdzie: x′ = a ∗ x+ b; y′ = c ∗ x+ d

Rozwiązanie układu dwóch równań wielomianowych z dwiema niewiadomymi jest rów-

noważne znalezieniu wszystkich wspólnych pierwiastków dwóch funkcji wielomianowych.

Dany jest układ F (x) = F (x1, x2) = (f1(x1, x2), f2(x1, x2)) = 0 = (0, 0), gdzie funkcje

f1, f2 są wielomianami stopnia n zmiennych x1, x2 z dziedziną będącą trójkątem T. Za-

daniem algorytmu jest znalezienie wszystkich pierwiastków leżących wewnątrz dziedziny.

Dokładniej: jeżeli mamy pewną funkcję f1 z R2 w R ( przyjmijmy oznaczenia: funkcja

z (x,y) w z ) - jeżeli przetniemy ją z płaszczyzną zerową (x=0) w typowym przypadku

otrzymamy zbiór rozwiązań mocy continuum - funkcję uwikłaną zmiennych x i y . Dla

drugiej funkcji f2 otrzymamy drugą funkcję uwikłaną na płaszczyźnie (x,y). Przecięcie

tych funkcji da kilka punktów, które stanowią rozwiązanie układu f1 i f2. Funkcje f1, f2

są wielomianami, można przedstawić je w bazie Bernsteina, więc będzie można skorzystać

z własności trójkątów Beziera .

Zajmę się metodą podpodziału . Jest to metoda globalna, znajdująca wszystkie pierwiast-

ki układu w tej dziedzinie.

6

Page 7: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

2.2 Krzywe Beziera

2.2.1 Wielomiany Bernsteina

Baza wielomianów Bernsteina ma postać:

Bni (u) =(ni

)(1− u)n−iui, u ∈ [0; 1]

Najważniejsze własności wielomianów Bernsteina to:

1) ∑ni=0B

ni (u) = 1

własność ta wynika z tego, że Bni (u) są to po prostu człony rozwiniętego dwumianu

[t+ (1− t)]n

2) Bni (u) >, u ∈ [0; 1]

- dowód natychmiastowy

3) Bni (u) = (1− u)Bn−1i (u) + uBn−1

i−1 (u)

2.2.2 Krzywe Beziera

Przedstawienie krzywych w bazie wielomianów Bernsteina B zostało zaproponowane nie-

zależnie przez P. Beziera i P. de Casteljau . Krzywe Beziera definiuje się jako kombinację

liniową wielomianów Bernsteina:

Q(t) = ∑ni=0 PiB

ni (u), t ∈ [t0; t1]

gdzie współczynniki Pi są to punkty z Rn . Zależnie od n (2 lub 3) definiuje się krzy-

wą płaską lub przestrzenną. Punkty Pi noszą nazwę punktów kontrolnych albo punktów

Beziera, a łamana, której są wierzchołkami, jest nazywana łamaną Beziera . Należy od

razu wyjaśnić, że dla uniknięcia ograniczenia dziedziny funkcji stosujemy lokalną para-

metryzację:

t = t0 + u(t1 − t0), u ∈ [0; 1]

Często stosowanym przypadkiem jest n=3 - krzywa Beziera jest postaci:

Q(u) = P0(1− u)3 + P13(1− u)2u+ P23(1− u)u2 + P3u3

7

Page 8: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

P0

P1P2

P3

Rysunek 1:

Łatwo można sprawdzić, że :

Q(0) = P0

Q(1) = P1

Q′(0) = 3(P1 − P0)

Q′(1) = 3(P3 − P2)

Z dwóch pierwszych własności wielomianów Bernsteina wynika, że krzywa leży w po-

włoce wypukłej punktów kontrolnych Pi, i = 0,1,...,n. Trzecia, rekurencyjna zależność,

prowadzi do wyznaczania punktów algorytmem de Casteljau który można wykorzystać

przy dzieleniu krzywej na mniejsze fragmenty.

2.2.3 Algorytm de Casteljau

Oblicz wartość odpowiadającą lokalnej parametryzacji

u = (t− t0)/(t1 − t0);

dla i = 0,1,...,n podstaw Pi,0 = Pi;

dla j=1,2,...,n

dla i = j,j+1,...,n

Pi,j = (1− u)Pi−1,j−1 + uPi, j − 1;

Z obliczonych wielkości można utworzyć tablicę trójkątną:

8

Page 9: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

P0,0

P1,1

P1,0 ·

· P2,1 ·

· · · Pn,n

· · ·

Pn−1,0 ·

Pn,0Jej pierwszą kolumnę tworzą dane punkty kontrolne P krzywej Beziera, a każda następna

kolumna powstaje z punktów, które dzielą odcinek łączący sąsiednie punkty poprzedniej

kolumny w stosunku u:1-u.

P0

P1P2

P3

P1,1

P2,1

P3,1

P2,2 P3,2P3,3

Rysunek 2:

Dowodzi się [1], że Pn,n = Q(t), a wyznaczone punkty P0,0, P1,1, ..., Pn,n są punktami

kontrolnymi fragmentu krzywej od P0 do Q(t); punkty zaś Pn,n, ..., Pn,1, Pn,0 są punktami

kontrolnymi pozostałej części krzywej tzn. od Q(t) do Pn [11].

Algorytm de Casteljau pozwala zatem dzielić krzywą Beziera na mniejsze fragmenty [16]

i traktować je osobno. Jest to istotne w przypadku modelowania krzywych, gdyż prze-

sunięcie w wyjściowej łamanej choćby jednego punktu kontrolnego Pi powoduje zmianę

całej krzywej.

Jeśli chcemy wyznaczyć większą ilość punktów leżących na krzywej Beziera, to rozwiąza-

niem tańszym od przedstawionego wyżej algorytmu jest przejście od kombinacji liniowej

wielomianów Bernsteina do postaci naturalnej wielomianu Q(t) i obliczanie jego wartości

9

Page 10: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

np. algorytmem Hornera .

2.2.4 Zmiana Baz

Niech w bazie wielomianowej P0(u)...Pn(u) ( gdzie u [0,1] ) krzywa Q(u) ma przedsta-

wienie: Q(u) = P0B0(u) + ... + PnBn(u) oraz baza Bi(u) wyraża się w bazie potęgowej

jako Bi(u) = [bi,0, ..., bi,n].[1, u, u2, ..., un]T wtedy

Q(u) =[P0 ... Pn

∣∣∣∣∣∣∣∣∣∣∣∣

b0,0 ... b0,n

... ... ...

bn,0 ... bn,n

∣∣∣∣∣∣∣∣∣∣∣∣·

1

..

un

= PBU

Baza Bernsteina (dla stopnia wielomianu = 3)

BB =

1 −3 3 −1

0 3 −6 3

0 0 3 −3

0 0 0 1

Jeśli wiele punków krzywej ma być obliczonych w ustalonym układzie współrzędnych,

opłaca się przejść do bazy potęgowej to znaczy: wyznaczyć macierz współrzędnych punk-

tów macierzy G, obliczyć raz macierz: A = P ·B stosować schemat Hornera do równania

Q(u) = (PB)U = AU Jeżeli mamy podaną funkcję w bazie wielomianowej, aby przejść

do bazy Bernsteina, należy stosować macierze odwrotne:

dla 2:

1 1 1

0 1/2 1

0 0 1

dla 3:

1 1 1 1

0 1/3 2/3 1

0 0 1/3 1

0 0 0 1

10

Page 11: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

dla 4:

1 1 1 1 1

0 1/4 1/2 3/4 1

0 0 1/6 1/2 1

0 0 0 1/4 1

0 0 0 0 1

Sposób tworzenia takich macierzy: Trójkąt Pascala:0 : 1

1 : 1 1

2 : 1 2 1

3 : 1 3 3 1

4 : 1 4 6 4 1Gdy mamy utworzyć macierz dla wielomianu stopnia N, wtedy wybieramy z trójkąta

Pascala wiersz o numerze N; elementy leżące poniżej przekątnej wypełniamy zerami;

począwszy od przekątnej trójkąt wypełniamy :

1) Dla macierzy przekształcenia zwykłego:

dla wiersza macierzy = r ,wypełniamy iloczynami liczb o numerze r z wybranego wiersza

z trójkąta Pascal przez kolejne liczby z ciągu N-r+1 wiersza trójkąta Pascala; dodatkowo

co drugą mnożymy przez (-1)

2) Dla macierzy przekształcenia odwrotnego:

ułamkami, które w liczniku mają kolejne liczby z N-tej przekątnej trójkąta, a w licz-

niku liczbę stałą dla każdego wiersza - dla kolejnych wierszy bierze się kolejne liczby z

wybranego wiersza trójkąta Pascala.

2.3 Trójkąty Beziera

2.3.1 Współrzędne barycentryczne

Jako pierwszy współrzędne barycentryczne wprowadził Moebius w 1827 roku.

definicja:

Niech T będzie trójkątem z wierzchołkami A,B,C w płaszczyźnie uv. Dowolny punkt

P ∈ T można wyrazić jednoznacznie jako kombinację liniową wierzchołków tego trójkąta

11

Page 12: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

P=rA+sB+tC ; dodatkowo, aby była to kombinacja barycentryczna wymaga się aby

r+s+t=1. Współczynniki r,s,t noszą nazwę współrzędnych barycentrycznych punktu P w

zależności od A, B i C. Dla punktu należącego do trójkąta są spełnione własności :

r ∈ [0, 1], s ∈ [0, 1], t ∈ [0, 1]

Uwaga: Będę często przestawał rozróżniać między punktem a jego współrzędnymi bary-

centrycznymi - będę mówił po prostu o “punkcie (r,s,t)”

P

A

B

C: :u v w

Rysunek 3:

Jeśli tylko dane są dowolne cztery punkty A,B,C i P , zawsze można wyznaczyć współ-

rzędne barycentryczne r,s,t dla P; równości:P = r · A+ s ·B + t · C

r + s+ t = 1mogą być przedstawione jako układ trzech równań liniowych dla trzech niewiadomych

r,s,t . Rozwiązanie można uzyskać przez zastosowanie wzorów Cramera :

r = pole(P,B,C)pole(A,B,C)

s = pole(A,P,C)pole(A,B,C)

t = pole(A,B,P )pole(A,B,C)

Wymagają one liczenia wyznaczników:

Pole(A,B,C) = 12 ·

∣∣∣∣∣∣∣∣∣∣∣∣

Ax Bx Cx

Ay By Cy

1 1 1

∣∣∣∣∣∣∣∣∣∣∣∣gdzie Det = AxBy +BxCy + CxAy − AyBx −ByCx − CyAx

12

Page 13: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Zauważmy, że aby wzory były dobrze zdefiniowane - pole trójkąta (A,B,C) musi się różnić

od 0, co oznacza, że A,B i C nie mogą leżeć na jednej linii.

Współrzędne barycentryczne są afinicznie niezmienne: Niech P ma barycentryczne współ-

rzędne r,s,t w zależności od punktów A,B,C. Odwzorowujemy wszystkie cztery punkty

na inny zbiór przez odwzorowanie afiniczne. Wtedy P ma te same barycentryczne współ-

rzędne r,s,t w zależności od A , B , C.

Rysunek 4:

Dowolne trzy niewspółliniowe punkty A,B,C definiują układ współrzędnych barycentrycz-

nych na płaszczyźnie. Punkty wewnątrz trójkąta mają nieujemne współrzędne barycen-

tryczne, podczas gdy pozostałe mają niektóre współrzędne barycentryczne ujemne.

Możemy użyć współrzędnych barycentrycznych do definiowania liniowej interpolacji. Przyj-

mijmy, że mamy dane trzy punkty P1, P2, P3 ∈ R3. Wtedy punkt zadany wzorem:

P = P (r, s, t) = rP1 + sP2 + tP3 (gdzie r + s+ t = 1)

leży w płaszczyźnie rozpiętej przez P1, P2, P3 Odwzorowanie z R2 do R3 jest nazywane

liniową interpolacją.

Ponieważ r + s + t = 1, możemy interpretować r,s,t jako współrzędne barycentryczne P

względem P1, P2, P3 . Możemy również interpretować r,s,t jako współrzędne barycentrycz-

ne punktu w R2 względem pewnego trójkąta A,B,C ∈ R2. Wtedy powyższy wzór może

być interpretowany jako odwzorowanie trójkąta A,B,C ∈ R2 na trójkąt P1, P2, P3 ∈ R3.

Trójkąt A,B,C nazwiemy trójkątem dziedziny. Uwaga: aktualne położenie lub kształt

trójkątnej dziedziny jest zupełnie nie związany z definicją liniowej interpolacji (oczywi-

ście musimy wymagać, aby był niezdegenerowany).Ponieważ możemy interpretować r,s,t

13

Page 14: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

jako współrzędne barycentryczne zarówno dla 2 lub 3 wymiarów, to pociąga za sobą, że

liniowa interpolacja jest odwzorowaniem afinicznym .

2.3.2 Wielomiany Bernsteina

W przypadku dwóch zmiennych wielomiany Bernsteina Bi,j,k są definiowane przez:

Bni,j,k(u) =(ni,j,k

)risjtk = n!

i!j!k!risjtk gdzie r+s+t=1

Definiujemy dodatkowo Bni,j,k(u) = 0 jeśli pewne (i,j,k) są ujemne.

Wykresy niektórych funkcji Bernsteina:

Rysunek 5: (1− x− y)2

Rysunek 6: (1− x− y) · x

14

Page 15: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Rysunek 7: (1− x− y) · y

Rysunek 8: x · y

Wielomiany te mają własności analogiczne do własności wielomianów jednej zmiennej.

Dokładniej:

1) ∑i+j+k=ni,j,k>0

Bni,j,k(r, s, t) = 1

2) Bnr,s,t > 0 dla r, s, t ∈ [0; 1]

3) Bni,j,k(u) = rBn−1i−1,j,k(u) + sBn−1

i,j−1,k(u) + tBn−1i,j,k−1(u); i+ j + k = n

Jest to wzór rekurencyjny, który wynika z definicji i z użycia równości:(nk

)=(n−1k−1

)+(n−1k

)Jako przykład wielomian Bernsteina stopnia 4 pokazany jest na schemacie:

15

Page 16: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

s4

4s3t 4rs3

6s2t2 12rs2t 6r2s2

4st3 12rst2 12rst2 4r3s

t4 4rt3 6r2t2 4r3t r4

2.3.3 Trójkąty Beziera

De Casteljau wprowadził trójkąty Beziera w 1959 r. Zauważmy, że są one bardziej “na-

turalnym” uogólnieniem krzywych Beziera na powierzchnie niż płatki produktów tenso-

rowych. [4] Dla funkcji 2 stopnia 2 zmiennych jest 6 parametrów: x2, x, 1, y2, y, xy dla 3

stopnia 10 parametrów:1

x y

x2 xy y2

x3 x2y xy2 y3

czyli dla n suma stopni dla x i y nie może przekraczać n; oznacza to np. że jeże-

li w pewnym równaniu zapisanym przy pomocy bazy wielomianowej występuje x2 +

y2 można je przekonwertować na bazę Bernsteina dla stopnia co najmniej 4. Liczba

parametrów=1/2(n+1)(n+2) i jest równa liczbie współczynników w trójkąta Beziera

. Trójkątny płat (u, v) ∈ T powierzchni Beziera definiuje się następująco: S(u, v) =∑i+j+k=ni,j,k>0

Pi,j,kBni,j,k(r, s, t) gdzie Pi,j,k są danymi punktami kontrolnymi, a Bi,j,k wie-

lomianami Bernsteina postaci: Bnr,s,t = n!i!j!k!r

isjtk

Powierzchnia Beziera definiowana w obszarze trójkątnym jest określona 1/2(n+1)(n+2)

punktami Pi,j,k i odpowiadającymi im składnikami wielomianu.

16

Page 17: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

P0,3,0

P1,2,0P0,2,1

P1,1,1 P2,1,0

P0,1,2

P0,0,3

P1,0,2 P2,0,1P3,0,0

Rysunek 9:

Z dwóch pierwszych własności wielomianów Bernsteina wynika, że trójkątny płatek Bez-

iera leży wewnątrz powłoki wypukłej swoich punktów kontrolnych, a trzecia własność

jest podstawą algorytmu obliczania wartości S(u,v) - algorytmu de Casteljau dla trójką-

tów Beziera, za pomocą którego można dzielić trójkąt na części. (Zheng [17] i Zhou [18]

omawiają warunki na wypukłość trójkątów Beziera )

2.3.4 Zmiana Baz

Dla wielomianu stopnia n mamy (n+1)(n+2)/2 współczynników i tyle samo punktów

liczy siatka kontrolna na trójkącie. Przykładowo, dla wielomianu stopnia n=2 mamy

współczynniki:1

x y

x2 xy y2

natomiast siatka punktów kontrolnych ma postać:

17

Page 18: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

a00

a01 a10

a02 a11 a20

Aby przetransformować współczynniki bazy wielomianowej na

siatkę punktów kontrolnych czy odwrotnie, potrzebna jest znacznie większa macierz niż

w przypadku krzywych - musi być to macierz N x N gdzie N=(n+1)(n+2)/2. Powstaje

problem kolejności współczynników - dla jednego wymiaru macierz transformowała bazę

typu 1, x, x2, x3, ... na kolejne współczynniki bazy Bernsteina; tutaj należałoby dzielić na

sekcje: najpierw 1, potem x,y ; następnie x2, xy, y2 itd.. Powstaje baza składająca się z

(n + 1)2 bloków. Spróbuję tu wyprowadzić macierz przekształcenia dla stopnia n = 2:

(dla trójkąta mającego wierzchołki : (0,0),(0,1),(1,0) )

f(x,y) = a00(1-x-y)2 + a012(1-x-y)x + a02x2 + a102(1-x-y)y + a112xy + a20y2 = x2(a00-

2a01+a02) + 2xy(a00-a01-a10+a11) + 2x(a01-a00) + y2(a00-2a10+a20) + 2y(a10-a00)

+ a00 1: a00 x: 2(a01-a00) y: 2(a10-a00) x2: a00-2a01+a02 xy: 2(a00-a01-a10+a11) y2:

a00-2a10+a20 Jeżeli chodzi o kolejność współczynników aij, również dzielę je na sekcje: w

pierwszej występuje tylko a00, w drugiej a01 i a10, w trzeciej a02, a11 i a20 itd. Ogólnie

w sekcji numer n+1 będą współczynniki aij, dla których i+j = n. Powstaje macierz:∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

1 0 0 0 0 0

−2 2 0 0 0 0

−2 0 2 0 0 0

1 −2 0 1 0 0

2 −2 −2 0 2 0

1 0 −2 0 0 1

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣Dla stopnia 3 będziemy mieli macierz:

18

Page 19: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

1 0 0 0 0 0 0 0 0 0

−3 3 0 0 0 0 0 0 0 0

−3 0 3 0 0 0 0 0 0 0

3 −6 0 3 0 0 0 0 0 0

6 −6 −6 0 6 0 0 0 0 0

3 0 −6 0 0 3 0 0 0 0

−1 3 0 −3 0 0 1 0 0 0

−3 6 3 −3 −6 0 0 3 0 0

−3 3 6 0 −6 −3 0 0 3 0

−1 0 3 0 0 −3 0 0 0 1

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣Do przeliczania z bazy wielomianowej na bazę Bernsteina będziemy potrzebowali macierzy

odwrotnych: dla 2:∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

1 0 0 0 0 0

1 1/2 0 0 0 0

1 0 1/2 0 0 0

1 1 0 1 0 0

1 1/2 1/2 0 1/2 0

1 0 1 0 0 1

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣dla n=3:∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

1 0 0 0 0 0 0 0 0 0

1 1/3 0 0 0 0 0 0 0 0

1 0 1/3 0 0 0 0 0 0 0

1 2/3 0 1/3 0 0 0 0 0 0

1 1/3 1/3 0 0/3 0 0 0 0 0

1 0 2/3 0 0 1/3 0 0 0 0

1 1 0 1 0 0 1 0 0 0

1 2/3 1/3 1/3 1/3 0 0 1/3 0 0

1 1/3 2/3 0 1/3 1/3 0 0 1/3 0

1 0 1 0 0 1 0 0 0 1

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣Tutaj prawidłowość tworzenia takich macierzy staje się widoczna dopiero od n=4 czy

19

Page 20: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

nawet 5.

Algorytm tworzenia tego typu macierzy korzystający z trójkąta Pascala:

procedure MakePascal;

var i,j:integer;

begin

Pascal[0,0]:=1;

for i:=1 to stopien do

begin

Pascal[i,0]:=1;

for j:=1 to i-1 do Pascal[i,j]:=Pascal[i-1,j-1]+Pascal[i-1,j];

Pascal[i,i]:=1;

end;

end;

procedure MakeMac;

var i,j:integer;

x0,y0,x1,y1,delta0,delta1:integer;

wartosc:real;

begin

for y0:=0 to stopien do

for x0:=0 to stopien do

begin

delta0:=y0-x0;

if delta0>=0 then

for y1:=0 to y0 do

for x1:=0 to x0 do

begin

delta1:=y1-x1;

if (delta1>=0)and(delta1<=delta0) then

wartosc:=pascal[stopien,delta0]*pascal[stopien-delta0,x0]*

pascal[x0,x1]*pascal[delta0,delta1]

20

Page 21: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

else wartosc:=0;

if odd(delta0) then wartosc:=-wartosc;

Mac[round(y0*(y0+1)/2+y1),round(x0*(x0+1)/2+x1)]:=wartosc;

end{for x1};

end{for x0};

end;

procedure MakeMacOdw;

var i,j:integer;

x0,y0,x1,y1,delta0,delta1:integer;

wartosc:real;

begin

for y0:=0 to stopien do

for x0:=0 to stopien do

begin

delta0:=y0-x0;

if delta0>=0 then

for y1:=0 to y0 do

for x1:=0 to x0 do

begin

delta1:=y1-x1;

if (delta1>=0)and(delta1<=delta0) then

wartosc:=1/pascal[y0,y1]*pascal[delta0,delta1]

/pascal[stopien,y0]*pascal[stopien-x0,stopien-y0]

else wartosc:=0;

Mac[round(y0*(y0+1)/2+y1),round(x0*(x0+1)/2+x1)]:=wartosc;

end{for x1};

end{for x0};

end;

21

Page 22: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

(notka: S. Lodha i R. Goldman [9] podają swoje algorytmy na konwersję wielomianów

wyrażonych w różnych bazach : wielomianowej i Beziera .)

2.3.5 Algorytm de Casteljau

Algorytm de Casteljau wyznaczania punktów trójkątnego płata powierzchni Beziera jest

zupełnie analogiczny do algorytmu dla krzywych, a główne różnice występują w notacji.

M.in. algorytm dla krzywych używa powtarzającej się liniowej interpolacji, również w

przypadku trójkątów jest ona używana. (Jankowski [8] ) Dane: trójkątna tablica punktów

Pi,j,k ∈ R2 Siatka punktów kontrolnych ma strukturę trójkąta. W przypadku stopnia =

4, siatka kontrolna składa się z:P040

P031 P130

P022 P121 P220

P013 P112 P211 P310

P004 P103 P202 P301 P400

Zauważmy, że wszystkie indeksy

sumują się do 4, W ogólności, siatka kontrolna posiada 1/2(n+1)(n+2) wierzchołków.

Algorytm:

1. Oblicz współrzędne barycentryczne (r,s,t) punktu (u,v) rozwiązując układ 3 równań

liniowych

rA+sB+tC = [u,v]

r+s+t = 1

pierwsza równość rozkłada się na dwie

2. Dla wszystkich i,j,k>=0, takich, że i+j+k=n, podstaw P 0i,j,k = Pi,j,k

3. Dla m=1,2,...,n dla wszystkich i,j,k>=0, takich że i+j+k=n-m oblicz

Pmi,j,k = rPm−1i+1,j,k + sPm−1

i,j+1,k + tPm−1i,j,k+1

Dowodzi się , że S(u, v) = Pn0,0,0

22

Page 23: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

A

B

C

Rysunek 10:

Mówiąc obrazowo : gdy mamy wielomian stopnia n, wtedy siatka kontrolna liczy 1/2(n+1)(n+2)

wierzchołków i n2 trójkątów siatki; dla n=3 siatka kontrolna składa się z 9 trójkątów,

z czego wybieramy co drugi trójkąt i na podstawie danych r,s,t liczymy wierzchołki;

wierzchołki obliczone na podstawie 6 wybranych trójkątów tworzą siatkę następnej war-

stwy; w przypadku algorytmu dla krzywych tworzyliśmy kolejne kolumny na podstawie

poprzednich, tutaj tworzymy kolejne warstwy trójkątnych siatek o zmniejszających się

rozmiarach; na podstawie ostatniej warstwy możemy obliczyć pojedynczy wierzchołek,

którego wartość będzie równa wartości funkcji dla r,s,t,; Podobnie jak to miało w miejsce

w przypadku krzywych Beziera, algorytm de Casteljau można zastosować do podziału

trójkątnego płatu na fragmenty. Algorytm de Casteljau dla trójkątnych płatków jest bez-

pośrednim uogólnieniem odpowiedniego algorytmu dla krzywych. Tam oprócz tego, że

otrzymaliśmy wartość funkcji dla danego parametru, dodatkowo otrzymywaliśmy punkty

kontrolne dla dwóch krzywych. Tutaj można otrzymać punkty kontrolne dla trzech pod-

trójkątów , które powstają przez podział bazowego trójkąta w miejscu odpowiadającym

współrzędnym barycentrycznym r,s,t.

23

Page 24: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

B

A

C

Rysunek 11:

W algorytmie dla krzywych można było wybrać punkty, które stanowiły punkty kontro-

lne dwóch podkrzywych . Tutaj można z kolejnych warstw wybrać punkty, które będą

stanowiły siatkę punktów kontrolnych dla nowopowstałego podtrójkąta . Z każdej war-

stwy wybieramy punkty leżące na krawędzi, tworzą one kolejne warstwy siatki kontrolnej

szukanego trójkąta. W ten sposób algorytm de Casteljau pozwala dzielić powierzchnie na

mniejsze fragmenty i traktować je osobno.

A

B

C

P

Rysunek 12:

Bazując na algorytmie de Casteljau możemy dostać wiele własności trójkątów Bezie-

24

Page 25: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

ra: Afiniczna niezmienność : ta własność bierze się z tego, że liniowa interpolacja jest

odwzorowaniem afinicznym oraz, że algorytm de Casteljau używa wyłącznie liniowej in-

terpolacji.

Własność powłoki wypukłej - jest zagwarantowana, ponieważ dla 0 <= r, s, t <= 1 każdy

Pmi,j,k jest wypukłą kombinacją poprzedniego Pm−1i,j,k . Krzywe brzegowe trójkątnego płatka

są określone przez brzegowe punkty kontrolne (mające co najmniej jedno zero w indeksie).

Dla przykładu punkt na krzywej brzegowej Pn(r, 0, t) jest generowany przez

Pmi,j,k(r, 0, t) = rPm−1i+1,j,k + tPm−1

i,j,k+1 ; r+t=1

Jeżeli punkt podziału wybierzemy na krawędzi trójkąta, wtedy jeden z podtrójkątów

zdegeneruje się do odcinka.

A

B

C

P

Rysunek 13:

Gdy wybierzemy jako punkt podziału środek najdłuższej krawędzi otrzymamy algorytm

bisekcji będący szczególnym przypadkiem algorytmu de Casteljau .

Interesujący, ze względu na upraszczanie się obliczeń, jest przypadek, kiedy trójkąt pro-

stokątny (w dodatku równoramienny) dzielimy przez środek najdłuższej krawędzi.

25

Page 26: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

A

B

C

P1

2

Rysunek 14:

Jeżeli trójkąt prostokątny jest zorientowany równolegle do układu współrzędnych, uprasz-

cza to dodatkowo obliczenia, ale aby własność ta była zachowana, należy jeszcze podzielić

powstałe trójkąty; w ten sposób trójkąt dzielimy od razu na cztery podtrójkąty; ma to

również tę zaletę, że podtrójkąty mają średnicę dokładnie dwa razy mniejszą od trójkąta

bazowego.

A

B

C

P1

2

34

Rysunek 15:

W. Boehm [2] przedstawia algorytmy Haase’go i de Casteljau podziału krzywych oraz

algorytm na podział trójkątów Beziera. R Goldman prezentuje również [6] różne sposo-

by podziału trójkątnego płata na fragmenty. Boehm i Farin w swoim “Letter to editor”

26

Page 27: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

[3] krótko opisują trzy różne sposoby podziału trójkąta Beziera. Pierwszym jest sposób

opisany powyżej, czyli podział trójkąta jednym wierzchołkiem. Drugi sposób pozwala na

obliczenie siatki dla podtrójkąta, którego dwa wierzchołki znajdują się w dowolnym miej-

scu wewnątrz bazowego trójkąta, a trzeci wierzchołek w wierzchołku bazowym. Dla tego

przypadku wymagane jest policzenie dwukrotnie większej liczby warstw. Trzeci sposób

pozwala wyliczyć siatkę dla dowolnego podtrójkąta zawartego w trójkącie bazowym. Jego

wadą jest wielka złożoność obliczeniowa: w przypadku podziału jednym wierzchołkiem,

do wyliczenia jego wartości należało obliczyć n warstw, z których można było wybrać

wartości innych punktów kontrolnych; tutaj dla każdego punktu kontrolnego musimy

obliczyć n warstw.

27

Page 28: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

3 Metoda podpodziału

3.1 Szukanie pierwiastków metodą bisekcji

Mamy dane funkcje wielomianowe dwóch zmiennych : f1 i f2 .Należy przedstawić je w

bazie Bernsteina. Otrzymamy dwie funkcje na trójkącie T. Funkcje te można przedstawić

za pomocą siatki dwuwymiarowych punktów kontrolnych trójkątnego płatka Beziera:

Pi,j,k =

∣∣∣∣∣∣∣∣f1i,j,k

f2i,j,k

∣∣∣∣∣∣∣∣ gdzie0 6 i, j, k

i+ j + k = n

Należy znaleźć takie punkty, dla których obie funkcje osiągają zero. Szukanie odbywa się

za pomocą podziału podejrzanych trójkątów za pomocą algorytmu de Casteljau. Punkt

podziału trójkąta wybieramy na najdłuższej krawędzi, w ten sposób mamy pewność,

że średnica trójkątów będzie się zmniejszała; w przeciwnym razie powstawałyby coraz

cieńsze trójkąty, których pole dążyłoby do zera, ale ich średnica pozostawałaby cały czas

duża.

Opis algorytmu

1.Bierzemy trójkąt jednostkowy o wierzchołkach: (0,0),(1,0) i (0,1); jeżeli funkcji szukamy

w innej dziedzinie - funkcję i dziedzinę (u,v) należy odpowiednio przeskalować.

2.Dzielimy trójkąt na 4 podtrójkąty . Stosując kryterium opisane poniżej określamy, które

trójkąty nie zawierają na pewno pierwiastka , które zawierają pierwiastek, a dla jakich

trójkątów nie możemy tego rozstrzygnąć. Trójkąty nie zawierające pierwiastków można

wyeliminować z dalszych rozważań, zawierające pierwiastek dołączamy do zbioru rozwią-

zań, natomiast pozostałe dzielimy dalej.

Jeżeli nie możemy wyeliminować możliwości istnienia pierwiastka na danym trójkącie a

jego średnica jest mniejsza niż pewne - wtedy uznajemy , że na tym trójkącie występuje

pierwiastek. Postępujemy tak dopóki występują trójkąty, które można podzielić.

Wykorzystujemy własność trójkątnego płatka Beziera: trójkątny płatek Beziera zawie-

ra się wewnątrz powłoki wypukłej swoich punktów kontrolnych. Sprawdzamy wszystkie

punkty kontrolne i patrzymy czy jakiś punkt mieścił się w zakresie:

a <-

28

Page 29: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

b - ...

c >

Na podstawie tego, w jakich przedziałach zaobserwowaliśmy istnienie punktów kontrol-

nych, możemy stwierdzić, czy funkcja na danym trójkącie przecina płaszczyznę zerową:

<- - .. > pierwiastek

nie ma nie ma jest nie ma

nie ma jest nie ma jest

nie ma jest jest nie wiadomo

jest nie ma nie ma nie ma

jest nie ma jest nie wiadomo

jest jest nie ma nie wiadomo

jest jest jest nie wiadomo

Tabela 1:

( przypadek, gdy nie ma w żadnym przedziale - odrzucamy )

Dla obu funkcji jednoczesne wystąpienie zera na danym trójkącie związane jest zależno-

ścią:

na pierwszym na drugim ogólnie

jest jest jest

jest nie wiadomo nie wiadomo

jest nie ma nie ma

nie wiadomo jest nie wiadomo

nie wiadomo nie wiadomo nie wiadomo

nie wiadomo nie ma nie ma

nie ma jest nie ma

nie ma nie wiadomo nie ma

nie ma nie ma nie ma

Tabela 2:

29

Page 30: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

( to sprawdzenie będę nazywał testem podstawowym w odróżnieniu od dodatkowych

metod, za pomocą których można stwierdzić, że dany trójkąt nie zawiera pierwiastka)

Podziału dokonujemy w środku najdłuższej krawędzi za pomocą algorytmu de Castel-

jau i wyznaczamy punkty kontrolne dla obu powstałych trójkątów. Następnie stosujemy

powyższy algorytm analogicznie do obu powstałych pod-trójkątów.

A

B

C

P1

2

34

Rysunek 16:

Przykłady: Niech T będzie trójkątem dla którego pierwsza funkcja ma współczynniki1

−1/4 0

−1 −1/4 1a druga1

1/2 1/2

0 0 −1Nie można rozstrzygnąć, czy w trójkącie są pierwiastki. Po podziale na 4 podtrojkąty:

T1, T2, T3, T4 okazuje się, że tylko trójkąt T2 można odrzucić ponieważ nie ma żadnych

pierwiastków. Podejrzane o istnienie pierwiastków są : T1, T3 i T4. Jeżeli podzielimy T1

,okazuje się, że wszystkie podtrójkąty trójkąta T1 możemy odrzucić. Można by zasta-

nawiać się, dlaczego na podstawie własności powłoki wypukłej nie mogliśmy odrzucić

trójkąta, skoro po podziale na cztery podtrójkąty, odrzuciliśmy wszystkie. Związane jest

30

Page 31: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

to z warunkiem istnienia jednoczesnego pierwiastka na trójkącie: mamy dwie funkcje f1

i f2 na trójkącie. Zarówno f1 jak i f2 na trójkącie przyjmują wartości dodatnie i ujemne.

Przykładowa sytuacja: (gdy podział na dwa) funkcja f1 w części A przyjmuje wartości

tylko dodatnie (i wszystkie współczynniki Beziera ma dodatnie), natomiast w części B,

zarówno dodatnie jak i ujemne. Funkcja f2 w części A przyjmuje dodatnie i ujemne war-

tości, a w B tylko ujemne (i wszystkie współczynniki Beziera ma ujemne). Widać, że

części zarówno A jak i B można odrzucić ponieważ dla każdej części któraś z funkcji nie

osiąga zera - natomiast o całym trójkącie nie można tego powiedzieć.

W pierwszym kroku mamy trójkąty : T1, T3, T4

Wdrugim kroku nadal mamy 3 trójkąty podejrzane o zawieranie pierwiastka : T31, T43, T44

W trzecim kroku : T431, T441, T444,

W czwartym : T4413, T4441, T4442

W typowym przypadku (dla jednego pierwiastka w dziedzinie) niezależnie od średnicy

trójkątów, przeważnie zostają trzy, czasem dwa trójkąty, które są podejrzane. Procedura

szukająca pierwiastków w przypadku gdy stwierdzi, że kilka trójkątów sąsiaduje ze sobą,

mogłaby traktować je jako jeden obszar podejrzany o zawieranie pierwiastków; dokładność

byłaby określona najmniejszym boksem zawierającym te trójkąty.

Pewnym problemem związanym z faktem, że istnieje kilka trójkątów podejrzanych jest

zwiększona liczba obliczeń. Przypuśćmy, że mamy trzy trójkąty, dzielimy je na 4 części,

w ten sposób mamy 12 podtrójkątów, które musimy przebadać, aby pozostawić znowu 3.

Czy w takim przypadku nie opłacałoby się bardziej dzielić trójkąt na dwie części zamiast

na cztery? Okazuje się, że nie: gdy mamy 3 trójkąty - po podziale każdego na połowę

powstaje 6 trójkątów, które należy przetestować. Z tych 6 trójkątów nie można odrzucić

trzech (ilość trójkątów jest niezależna od ich średnicy). W następnym kroku dzielimy

te trójkąty na połowy i znowu musimy przebadać 6 trójkątów. Ogólnie testujemy na

obecność pierwiastka 12 trójkątów - tyle samo, co przy podziale na cztery, tyle że tutaj

w dwóch krokach, a poza tym komplikują się obliczenia w związku z tym, że trójkąty nie

leżą równolegle do osi współrzędnych.

Uwaga: przy bardzo małej średnicy trójkątów zaczyna gwałtownie wzrastać ich liczba.

31

Page 32: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Przyczyną jest to, że ich średnica staje się porównywalna z ε - stałą użytą w teście powłoki

wypukłej. Dla małej średnicy wartości wszystkich punktów kontrolnych mieszczą się w

przedziale -... , co oznacza że w trójkącie na pewno istnieje pierwiastek i dalszy podział

trójkąta nie ma sensu. W powyższym przykładzie, dla średnicy około 2* ilość trójkątów

zwiększa się do 6, dla średnicy trójkąta porównywalnej z ε - do 12; ogólnie dla tego

przykładu średnica/* liczba_trojkatow oscyluje koło 10.7. Czy nie można by rozwiązać

problemu przez ustalenie, że ε = 0 ?

Stosowanie jest związane z eliminowaniem wpływu błędów maszynowych: gdyby nie

uwzględniać badanie istnienia pierwiastków ograniczałoby się do przypadków: wszyst-

kie punkty kontrolne leżą po tej samej stronie płaszczyzny zerowej - i wtedy nie ma

pierwiastka, lub punkty kontrolne leżą zarówno po jednej, jak i po drugiej stronie płasz-

czyzny zerowej - i wtedy nie wiadomo. (jeżeli istniałby punkt o wartości dokładnie równej

zero - byłby traktowany, że należy do obu przedziałów, wskutek stosowania nierówności

nieostrych). Ma to jednak wadę: przypuśćmy, że na pewnym trójkącie wszystkie punk-

ty mają wartości dodatnie, oprócz jednego o wartości <0 z tym, że bardzo bliskiego 0.

Wtedy z powodu błędów maszynowych punkt mógłby być potraktowany jako dodatni i

trójkąt byłby wyrzucony z dalszych rozważań, mimo że mógłby zawierać pierwiastek.

Podsumowując -ε powinno być bardzo małe, uzależnione od wartości błędu maszynowego,

natomiast gdy średnica trójkątów będzie tylko nieznacznie większa niż ε, nie powinny być

dalej dzielone.

3.2 Metody przyśpieszenia

3.2.1 Warunek lambda

Zajmę się tutaj testem, dzięki któremu można wyeliminować z rozważań niektóre trójkąty

które dotychczas były dalej dzielone.

Niech P ∈ T będzie pierwiastkiem, czyli f1(P ) = 0 oraz f2(P ) = 0. Metoda lambda

opiera się na fakcie, że również dowolna kombinacja funkcji f1 i f2 na P musi zawsze

dawać 0, stąd f1(P ) + λ · f2(P ) = 0 dla dowolnego (bo 0 + λ · 0 = 0)

Weźmy teraz dwie funkcje na trójkącie T. Każda z tych funkcji może przecinać płaszczy-

32

Page 33: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

znę zerową, co jednak nie oznacza, że muszą mieć wspólny pierwiastek. Weźmy kombinację

tych funkcji: λ1 · f1(x) +λ2 · f2(x) dla punktów x należących do T . Nie zmieni problemu

ograniczenie się tylko do kombinacji typu f1(x) + λ · f2(x) - ponieważ jedyna różnica

będzie występowała w skali (oprócz przypadku : λ1 = 0, co jednak sprowadza się do

przeskalowanej funkcji f2). Dla niektórych λ (dodatnich lub ujemnych) kombinacja może

przecinać powierzchnię zerową, dla innych nie. Jeżeli na trójkącie będzie istniał pier-

wiastek, wtedy dowolna kombinacja będzie musiała przecinać się z powierzchnią zerową.

W drugą stronę - jeżeli uda nam się znaleźć przynajmniej jedno λ takie, że kombinacja

osiąga wartości dodatnie lub ujemne na całym trójkącie, wtedy możemy stwierdzić, że

trójkąt nie zawiera pierwiastków. Gdy funkcje mamy przedstawione za pomocą punktów

kontrolnych Pi, wtedy szukamy takiego λ, aby f1(Pi) + λ · f2(Pi) było większe od zera

dla każdego punktu kontrolnego (albo mniejsze od zera).

Powstaje problem: w jaki sposób można znaleźć λ spełniające powyższy warunek, skoro

λ może być dowolną liczą rzeczywistą? Dla pojedynczego punktu Pi funkcja f1(Pi) + λ ·

f2(Pi) osiąga zero w miejscu r = −f1(Pi)/f2(Pi); dla lambda mniejszego od r funkcja ma

znak przeciwny do f2(Pi), a dla większego od r znak zgodny z f2(Pi); dla f2(Pi) funkcja

ma znak zgodny z f1(Pi).

Dla większej ilości punktów należy obliczać części wspólne zakresów, dla których funkcje

są większe, bądź mniejsze od zera. Gdy dla wszystkich punktów część wspólna zakresów,

gdzie funkcje przybierają wartości dodatnie lub ujemne jest niepusta, wtedy będzie można

wyeliminować trójkąt.

Algorytm znajdowania części wspólnej:

PlusFrom=-MaxFloat; PlusTo=+MaxFloat;

MinusFrom=-MaxFloat; MinusTo=+MaxFloat;

Po wszystkich punktach:

{ wylicz k:=-f1/f2

jezeli f2 dodatnie:

{

PlusFrom:=max(PlusFrom,k);

33

Page 34: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

MinusTo:=min(MinusTo,k)

}

else gdy ujemne

{

PlusTo:=min(PlusTo,k);

MinusFrom:=max(MinusFrom,k);

}

else gdy=0

{

gdy f1 ujemne - znika przedzial dodatni czyli:

{PlusFrom:=+MaxFloat; PlusTo:=-MaxFloat}

gdy f1 dodatnie - znika przedzial ujemny czyli:

{MinusFrom:=+MaxFloat; MinusTo:=-MaxFloat}

gdy f1=0 - mozna przerwac petle - bo nie mozna znalezc odpowiedniego lambda

}

istnieje przedzial dodatni jezeli PlusTo>PlusFrom

istnieje przedzial ujemny jezeli MinusTo>MinusFrom

Działanie testu lambda prześledzę na tym samym trójkącie co w poprzednim przykładzie.

punkty kontrolne pierwszej funkcji:1

−1/4 0

−1 −1/4 1drugiej funkcji:1

1/2 1/2

0 0 −1Poprzednio podzieliłem trójkąt na cztery podtrójkąty, jeden mogłem wyrzucić (tzn. trój-

kąt o numerze 2), ale pozostały trzy. Dla tych trzech zastosuję teraz warunek lambda.

Pierwszy trójkąt:

34

Page 35: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

f1 f2 zakres

-0.125 0.5 dla (−∞; 0.25) ujemne

-0.625 0.25 dla (−∞; 2.5) ujemne

-1 0 zawsze ujemne

0.125 0.5 dla (−∞; -0.25) ujemne

-0.25 0.25 dla (−∞; 1) ujemne

0.5 0.25 dla (−∞; -2) ujemne

Tabela 3:

Widać stąd, że dla lambda należącego do przedziału (−∞;−2) suma dla każdego punktu

jest ujemna, czyli można wyrzucić trójkąt z rozważań - co pokazuje przydatność warunku

lambda

Drugi trójkąt:

f1 f2 zakres

-0.125 -0.25 dla(−∞; -0.5) dodatnie

0.375 -0.5 dla(−∞; 0.75) dodatnie

1 -1 dla(−∞; 1) dodatnie

0.125 0 zawsze dodatnie

0.5 -0.25 dla(−∞; 2) dodatnie

0.5 0.25 dla(−∞; -2) ujemne

Tabela 4:

Dla lambda z przedziału (-2;-0.5) wszystkie sumy są ujemne - również można wyrzucić.

Trzeci trójkąt:

35

Page 36: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

f1 f2 zakres

-0.125 -0.25

0.125 0 zawsze dodatnie

0.5 0.25

-0.625 0 zawsze ujemne → widać że nie istnieje takie λ

-0.25 0.25

-1 0 zawsze ujemne

Tabela 5:

Tutaj widać, że nie istnieje żaden zakres, dla którego kombinacja dla wszystkich punktów

byłaby dodatnia lub ujemna. Przykład ten pokazuje, jak silny jest warunek lambda; pod-

czas gdy test podstawowy (powłok wypukłych) z czterech podtrójkątów wyeliminował

tylko jeden, tutaj można było wyeliminować pozostałe dwa i zostawić tylko ten podtrój-

kąt, który rzeczywiście zawierał pierwiastek. Co więcej - gdy testowałem warunek lambda

na powyższym przykładzie, w prawie wszystkich krokach otrzymywałem tylko jeden trój-

kąt, który był podejrzewany o zawieranie pierwiastka, za wyjątkiem jednego przypadku,

gdy krawędź jednego z trójkątów leżała niemal na samym pierwiastku.

3.2.2 Metoda płaszczyzn ograniczających

Metodę płaszczyzn ograniczających stosujemy do ograniczenia obszaru podejrzewanego

o istnienie pierwiastków. Jeżeli mamy daną funkcję f1 na trójkącie A,B,C , wtedy dla

punktów A,B,C funkcja przyjmuje wartości równe wartościom węzłów w tych punktach.

Definiujemy płaszczyznę Z0, która przechodzi przez te trzy punkty. Oprócz tego okre-

ślamy dwie płaszczyzny Zg i Zd, które są równoległe do Z0 , przy czym pomiędzy Zg i

Zd mieszczą się wartości wszystkich punktów kontrolnych funkcji na trójkącie. Oznacza

to, że między płaszczyznami mieści się pokrycie wypukłe funkcji, a z własności pokry-

cia wypukłego mamy pewność że wszystkie wartości funkcji mieszczą się pomiędzy tymi

płaszczyznami.

36

Page 37: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Rysunek 17:

Teraz należy znaleźć przecięcie tych płaszczyzn z płaszczyzną zerową, aby otrzymać prze-

dział, w którym funkcja może osiągać wartość zerową. Gdy w ten sam sposób obliczymy

płaszczyzny ograniczające dla drugiej funkcji i przetniemy je ze sobą , wtedy na płasz-

czyźnie (x,y) powstanie równoległobok (nazwijmy go A,B,C,D)

Rysunek 18:

Jeżeli na trójkątnej dziedzinie będą znajdowały się pierwiastki - muszą znajdować się w

równoległoboku A,B,C,D.

Najpierw należy obliczyć płaszczyznę przechodzącą przez trzy wierzchołki. Jej równanie

będzie postaci: f(x, y) = ax+by+c. Wartość f(x, y) dla tej płaszczyzny w punkcie A czyli

(0,0) będzie wynosiła a00 (będzie to wyraz wolny c); aby obliczyć współczynniki przy x

oraz y należy zauważyć, że dla punktu (0,1) funkcja ma mieć wartość a0n a dla punktu

(1,0) - an0 tzn. przy wzroście x o 1 f(x, y) wzrasta o a0n − a00 (nazwiemy to dx), a dla

37

Page 38: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

y: an0−a00 (dy) . Należy teraz policzyć punkty kontrolne , które leżą najwyżej i najniżej

względem znalezionej płaszczyzny. Od każdego punktu kontrolnego odejmujemy wartość,

którą f(x, y) przyjmuje na danych punktach kontrolnych, przykładowo dla stopnia=2

będą to punkty (0,1/2), (1/2,0) i (1/2,1/2) Znajdujemy maksymalne i minimalne wartości

(zmax i zmin) na podstawie których możemy znaleźć płaszczyzny równoległe. Następnym

krokiem będzie policzenie linii przecinania się tych płaszczyzn z płaszczyzną zerową. Dla

każdej funkcji będą to linie równoległe. ogólny wzór tych linii y = kx+ p

k można wyliczyć ze wzoru: k = −dx/dy (jedno k dla pary równoległych linii) przesunię-

cia: dla górnej: p = (−a00 − zmax)/dy dla dolnej: p = (−a00 − zmin)/dy

Gdy już mamy dwie pary równoległych linii, należy teraz policzyć równoległobok powstały

z ich przecięcia.

punkt (x,y) w którym się przecinają: płaszczyzna dolna dla pierwszej funkcji z dolną

dla drugiej (pd1 z pd2):

x := (pd2− pd1)/(k1− k2); y := k1 · x+ pd1

pd1 z pg2:

x := (pg2− pd1)/(k1− k2); y := k1 · x+ pd1

pg1 z pd2:

x := (pd2− pg1)/(k1− k2); y := k1 · x+ pg1

pg1 z pg2:

x := (pg2− pg1)/(k1− k2); y := k1 · x+ pg1

Gdy mamy równoległobok należy znaleźć trójkąt ograniczający. ( Jest to znacznie trud-

niejsze, niż znalezienie boxa ograniczającego ). Szukam trójkąta prostokątnego o równych

bokach, który miałby najmniejsze rozmiary a zawierałby równoległobok. Aby zminima-

lizować wielkość szukanego trójkąta próbuję dopasować trójkąt zorientowany zgodnie z

trójkątem bazowym oraz trójkąt zorientowany przeciwnie.

Dla trójkąta zorientowanego zgodnie: krawędzie ograniczające trójkąt tworzące kąt pro-

sty były by tak dobrane, aby krawędź dolna przechodziła przez punkt dla którego współ-

rzędna y jest najmniejsza, a krawędź pionowa przechodziła przez punkt o minimalnej

współrzędnej x. Trzecia krawędź miałaby nachylenie k=-1 i przechodziłaby przez punkt

38

Page 39: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

dla którego x+y byłoby największe

przykładowo: jest dany wielokąt o bokach: (2,3),(3,2),(7,4) i (6,5) trójkąt ograniczający

będzie miał kąt prosty w punkcie (2,2) aby obliczyć wielkość boku trójkąta należy wyli-

czyć sumę współrzędnych x+y dla wszystkich boków równoległoboku oraz punktu (2,2) i

znaleźć punkt, dla którego suma ta będzie największa - tutaj będą to punkty (7,4) i (6,5)

dla których suma wynosi 11. Stąd rozmiar trójkąta będzie równy 11-4=7

Rysunek 19:

Dopasowanie tego samego równoległoboku do trójkąta zorientowanego przeciwnie: kra-

wędź dolna przechodzi przez punkt dla którego współrzędna y jest najmniejsza, krawędź

pionowa przez punkt o współrzędnej x maksymalnej. Trzecia krawędź ograniczająca bę-

dzie miała nachylenie k=1 i przechodziła będzie przez punkt dla którego y-x jest najwięk-

sze - punkt (2,3) dla którego y-x wynosi 1.Kąt prosty trójkąta będzie w punkcie (7,2) o

wartości y-x równej (-5) Rozmiar boku trójkąta będzie wynosił 1-(-5)=6.Widać stąd, że

to dopasowanie jest lepsze. Weźmy przykład, dla którego liczony był podpodział:

pierwsza funkcja:1

−1/4 0

−1 −1/4 1druga funkcja:

39

Page 40: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

1

1/2 1/2

0 0 −1Równoległobok dla tych funkcji ma współrzędne (1/2,0),(3/4,1/4),(1/2,1/2) i (1/4,1/4)

trójkąt ograniczający ma wielkość boku równą 3/4

Dla trójkąta powstałego z poprzedniego przez podpodział:

pierwsza funkcja:−1

−0.625 −0.25

−0.125 0.125 0.5druga funkcja:

0

0 0.25

−0.25 0 0.25równoległobok ma współrzędne:

(0.447,0.105), (0.263,-0.026), (0.421,0.157) i (0.236,0.026) a k=0.263

Rysunek 20:

Widać stąd, że k ma znacznie mniejszą wartość niż w poprzednim przykładzie. Ogólnie,

przy przybliżaniu się do pierwiastka wartość k maleje Gdy mamy wyliczony trójkąt ogra-

niczający należy znaleźć siatkę punktów kontrolnych. Zrobić to można przez przekształce-

40

Page 41: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

nie afiniczne funkcji do innej dziedziny gdy mamy podaną funkcję w bazie wielomianowej

f(x, y) należy wyliczyć funkcję f(ax+ b, c.x+d) gdzie a = k dla trójkąta zorientowanego

zgodnie i −k dla zorientowanego przeciwnie, c = k

za b i d należy podstawić współrzędne wierzchołka (z kątem prostym) trójkąta. gdy x

jest wektorem współczynników funkcji w bazie wielomianowej wtedy wektor współczyn-

ników po przekształceniu x’ należy wyliczyć ze wzoru : x’=Ax gdzie A jest macierzą

przekształcenia

Dla stopnia 2 mamy macierz:∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

1 b d b2 bd d2

0 a 0 2ab ad 0

0 0 c 0 bc 2cd

0 0 0 a2 0 0

0 0 0 0 ac 0

0 0 0 0 0 c2

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣Dla stopnia 3:∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

1 b d b2 bd d2 b3 b2d bd2 d3

0 a 0 2ab ad 0 3ab2 2abd ad2 0

0 0 c 0 bc 2cd 0 b2c 2bcd 3cd2

0 0 0 a2 0 0 3ab a2d 0 0

0 0 0 0 ac 0 0 2abc 2acd 0

0 0 0 0 0 c2 0 0 bc2 3c2d

0 0 0 0 0 0 a3 0 0 0

0 0 0 0 0 0 0 a2c 0 0

0 0 0 0 0 0 0 0 ac2 0

0 0 0 0 0 0 0 0 0 c3

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣(zawiera macierz stopnia niższego)

3.2.3 Metoda Newtona

Metoda Newtona w przypadku jednowymiarowym:

bierzemy pewien punkt startowy x0, następnie liczymy punkt następny wykorzystując

41

Page 42: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

przybliżenie danej funkcji funkcją liniową - punkt x1 będzie znajdował się w miejscu

przecięcia się prostej stycznej do funkcji w miejscu x0 z prostą y = 0. Następnie na

podstawie x1 wyliczamy x2 itd. Powstały w ten sposób ciąg punktów bardzo szybko

(zbieżność kwadratowa ) dąży do miejsca w którym funkcja osiąga wartość zero.

Rysunek 21:

d = x0 − x1

f ′(x0) = f(x0)/d

stąd

f(x0) = f ′(x0) · did = f(x0)/f ′(x0)

x1 = x0 − d

x1 = x0 − f(x0)/f ′(x0)

ogólnie dla następnych punktów:

xk+1 = xk − fxk/f ′xk

W przypadku większej liczby wymiarów postępujemy analogicznie; główną różnica jest

to że zamiast na prostych liczbach działamy na wektorach; zamiast pochodnej liczymy

Jacobian,

F (x∗ + d) = F (x∗) + dFdx (x∗) · d

Metoda Newtona rzędu 2:∣∣∣∣∣∣∣∣F1(x)

F1(x)

∣∣∣∣∣∣∣∣+∣∣∣∣∣∣∣∣δF1δx1

δF1δx2

δF2δx1

δF2δx2

∣∣∣∣∣∣∣∣ = 0

42

Page 43: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

F1(X) + δF1δx1

d1 + δF1δx2

d2 = 0

F2(X) + δF2δx1

d1 + δF2δx2

d2 = 0czyli:δF1δx1

d1 + δF1δx2

d2 = −F1(X)δF2δx1

d1 + δF2δx2

d2 = −F2(X)Aby rozwiązać ten układ równań należy policzyć wyznaczniki:

D = δF1δx1· δF2δx2− δF2

δx1· δF1δx2

D1 = −F1 ·δF2δx2

+ F2 ·δF1δx2

D1 = −F1 ·δF1δx1

+ F2 ·δF2δx1

jeżeli D 6= 0 to d1 = D1/D d2 = D2/D

Gdy chcemy wykorzystać metodę Newtona do rozwiązania układu równań musimy znać

pochodne tej funkcji. W przypadku gdy funkcje wyrażone są w bazie Bernsteina opłaca

się raz przetransformować je na bazę wielomianową , wyliczyć pochodne, które potem

można stosować w kolejnych krokach metody Newtona.

Gdy chcemy wykorzystać szybko zbieżną metodę Newtona do dokładnego oszacowania

pierwiastka pojawiają się problemy:

- w odróżnieniu od metody podpodziału metoda Newtona nie zawsze jest zbieżna do pier-

wiastka; poradzić sobie z tym problemem można w ten sposób, że określamy maksymalną

liczbę kroków algorytmu - metoda Newtona albo bardzo szybko znajduje pierwiastek,

albo nie znajduje go w ogóle; dodatkowo, aby zwiększyć szansę zbieżności, szukamy pier-

wiastków na małej dziedzinie; wykorzystujemy fakt, że jeżeli pochodna funkcji w całej

dziedzinie niewiele się różni, wtedy występuje szybka zbieżność do pierwiastka, nato-

miast gdy na dziedzinie funkcja wykazuje duże pofalowanie, wtedy metoda Newtona jest

rozbieżna - już w pierwszym kroku może wyjść poza dziedzinę

- jeżeli metoda Newtona w dziedzinie nie znajdzie żadnego pierwiastka - nie możemy

zakładać, ze tam nie ma pierwiastków, tylko musimy nadal dzielić

- może się zdarzyć, że metoda Newtona znajdzie pierwiastek, który jednak nie leży we-

wnątrz dziedziny (mimo, że punkt startowy został wybrany z dziedziny); w tym przy-

43

Page 44: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

padku również nie możemy zakładać, że w naszym trójkącie nie ma pierwiastków

- kiedy metoda Newtona znajdzie pierwiastek wewnątrz trójkątnej dziedziny (nazwijmy

go P), mimo tego, że trójkąt ma małą średnicę, nie możemy zakładać, że jest tylko ten

jeden pierwiastek; aby znaleźć inne pierwiastki ( ewentualnie wykluczyć ich istnienie )

należy podzielić trójkąt tym razem nie na krawędzi lecz w miejscu, gdzie został znaleziony

pierwiastek ( aby wykorzystać informację, jaką dała metoda Newtona );

Rysunek 22:

Po podziale:

44

Page 45: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Rysunek 23:

Należy zauważyć, że gdy zastosujemy dowolny test na badanie istnienia pierwiastków

wewnątrz trójkątów A,P,C A,P,B czy B,P,C zawsze otrzymamy wynik, że trójkąty te

zawierają pierwiastek - ponieważ zawierają punkt P mający wartość (0,0); interesuje nas

inny problem: czy punkt P jest jedynym pierwiastkiem w danym trójkącie; możemy posłu-

żyć się stwierdzeniem: jeżeli wszystkie punkty kontrolne, mają wartości większe od zera,

oprócz jednego wierzchołka dla którego punkt kontrolny ma wartość zero, wtedy funkcja

na trójkącie przybiera wartości dodatnie we wszystkich punktach prócz tego wierzchołka;

aby udowodnić to stwierdzenie posłużmy się metodą podpodziału do znalezienia warto-

ści dowolnego punktu o współrzędnych barycentrycznych (r,s,t) różnego od P. Już dla

pierwszej warstwy utworzonej na podstawie trójkąta wszystkie punkty kontrolne będą

dodatnie; jest to spowodowane tym, że powstają one przez kombinację punktów kontrol-

nych trójkąta ze współczynnikami r,s,t >= 0 pozostałe warstwy oraz szukany punkt będą

również dodatnie - co dowodzi stwierdzenie. Podobnie, jeżeli wszystkie punkty, oprócz P

45

Page 46: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

mają wartości ujemne to funkcja na wszystkich punktach prócz P przyjmuje wartości

ujemne. Do testowania trójkątów A,P,C A,P,B i B,P,C możemy posługiwać się wcze-

śniejszymi metodami (m.in. testem lambda) z tą różnicą, że z testu wyrzucamy punkt

P.

Przykład zastosowania metody Newtona do obliczenia punktów, w którym przecinają się

2 koła.

Rysunek 24:

S(p, q)S1 = (1/4, 1/4)S2 = (1/2, 1/4)

(x− p)2 + (y − q)2 = r2

1 koło: (x− 1/4)2 + (y − 1/4)2 = (1/4)2 → x2 − x/2 + y2 − y/2 + 1/16 = 0

2 koło: (x− 1/2)2 + (y − 1/4)2 = (1/4)2 → x2 − x+ y2 − y/2 + 1/4 = 0

Obliczamy pochodne:df1dx = 2x− 1/2; df1dy = 2y − 1/2df2dx = 2x− 1; df2dy = 2y − 1/2

Gdy punktem startowym jest (1/3,1/3) metoda Newtona zbiega do punktu

(0.375;0.46650635095 )

Aby zastosować metodę Newtona dla funkcji z przykładu dla podpodziału należy prze-

transformować ją do bazy wielomianowej; otrzymamy funkcje:

46

Page 47: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

f1 = 0.5x2 + 0.5y2 − xy + 1.5x+ 1.5y − 1

f2 = y − x2

df1dx = x− y + 1.5; df1dy = y − x+ 1.5df2dx = −2x; df2dy = 1

Dla punktu startowego metoda Newtona znajduje pierwiastek w:

(0.44673309002;0.19957045372)

Za pomocą metody Newtona możemy tylko stwierdzić istnienie pierwiastka na dziedzinie,

nie możemy natomiast wykluczyć jego istnienia, ani stwierdzić ich ilości.

Do wykluczania dziedziny z rozważań podobnie jak w poprzednich przypadkach używamy

własności płatków Beziera - m.in. testu lambda.

Dzielimy trójkąt w miejscu znalezionego pierwiastka i dla podtrójkątów stosujemy testy

na obecność pierwiastka.

Powstaje problem: przy wybieraniu punktu podziału wewnątrz trójkąta powstałe trójkąty

są coraz cieńsze. Wprowadziłem kryterium: jest to stosunek pola trójkąta do jego średnicy.

Liczba ta nie zależy od skali trójkąta ani obrotu. W praktyce zamiast liczenia pola stosuję

wyliczanie wyznacznika (ponieważ pole=1/2*abs(Det))

Nie muszę wyliczać wyznacznika, ponieważ trójkąty są zawsze tak samo zorientowane.

Przykładowo dla trójkąta prostokątnego równoramiennego Det/średnica =1/2

Płaskie trójkąty dzielę na 2 w środku najdłuższej krawędzi zamiast szukać pierwiastków

ponieważ :

1. dla płaskich trójkątów szybko narastają błędy zaokrągleń

2. pierwiastek może znajdować się daleko od środka , natomiast bliżej może być pier-

wiastek nie należący do dziedziny

Ustalam pewne K dla którego : jeżeli Det/średnica>=K wtedy szukam pierwiastków,

w przeciwnym razie dzielę na 2. K nie może być zbyt duże ponieważ metoda Newtona

zamienia się w metodę podpodziału; dla zbyt małego powstają zbyt płaskie trójkąty.

Testując czas wykonania ustaliłem K na 0.28

47

Page 48: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

4 Testy i podsumowanie

Porównuję metodę podpodziału opisaną wcześniej z algorytmami wykorzystującymi me-

todę płaszczyzn ograniczających i metodę Newtona.

4.1 Metoda płaszczyzn ograniczających

1. Liczymy równoległobok, w którym muszą znajdować się pierwiastki.

2. Jeżeli równoległobok będzie znajdował się poza trójkątem - oznacza to, że nie ma

pierwiastka w dziedzinie - usuwamy trójkąt ze zbioru trójkątów podejrzanych o

zawieranie pierwiastka .

3. Opisujemy równoległobok trójkątem;

4. Jeżeli trójkąt opisujący nie jest dostatecznie mały (np. ma średnicę większą niż

połowa trójkąta bazowego) stosujemy metodę podpodziału i dzielimy trójkąt na

cztery. Uwaga - gdyby nie stosować metody podpodziału, nie było by zbieżności w

przypadku, gdy w trójkącie znajdowało się kilka pierwiastków

5. Jeżeli trójkąt opisujący jest dostatecznie mały - zmieniamy dziedzinę funkcji.

4.2 Metoda Newtona

1. Sprawdzamy,czy trójkąt nie jest zbyt płaski

2. Jeżeli jest - dzielimy trójkąt na 2 wzdłuż najdłuższej krawędzi

3. Jeżeli nie jest - ustalamy punkt dla r=s=t=1/3

4. Stosując metodę Newtona liczymy pierwiastek

5. Jeżeli metoda Newtona nie jest zbieżna - dzielimy trójkąt na 2

6. Jeżeli pierwiastek znajduje się poza dziedziną dzielimy na 2, w przeciwnym przy-

padku dzielimy na 3

Test przeprowadziłem na komputerze wyposażonym w procesor Cyrix P166 (133 MHz).Program

został napisany w języku Pascal. Testy przeprowadziłem w środowisku DOS. Czas zmie-

rzyłem przy użyciu zegara systemowego (dokładność ok. 18 tyknięć na sekundę) dla wielu

48

Page 49: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

układów funkcji (rzędu 9 tys.) a następnie ogólny czas podzieliłem przez ilość układów

uzyskując średni czas obliczania układu funkcji.

4.3 Generowanie danych doświadczalnych

Generuję funkcję stopnia 2. Funkcja taka zależy od 6 współczynników przy: 1,x,y,x2,xy,y2

Współczynniki dobieram losowo z przedziału [-2,2] Mam funkcję GenRoot zależną od

parametru seed który służy do początkowego ustawienia generatora liczb pseudolosowych.

(dodatkowo na początku funkcji wywołuję random, w przeciwnym razie dla seed będącym

małym w porównaniu z zakresem longinta (2^32) random zwraca liczbę bardzo bliską 0.5

co psułoby losowośc doświadczenia) na 100000 funkcji:

Liczba pierwiastków Liczba układów funkcji

0 93202

1 6558

2 237

3 3

Widać że zdecydowana większość funkcji na trójkącie jednostkowym nie posiada żadnych

pierwiastków. Aby zwiększyć ilość funkcji mających pierwiastki na dziedzinie wprowa-

dzam poprawki do funkcji GenRoot; losowo ustalam pierwiastek na trójkącie w punkcie

(rootX,rootY) gdzie:

rootX:=random;

rootY:=random*(1-rootX);

Dodatkowo współczynnik przy wyrazie wolnym nie jest losowany, ale obliczany dla danego

(rootX,rootY) Liczba pierwiastków Liczba układów funkcji

49

Page 50: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Liczba pierwiastków Liczba układów funkcji

0 0

1 82106

2 17352

3 525

4 17

4.4 Testowanie czasu wykonania

Testuję oddzielnie dla układów o różnej liczbie pierwiastków na dziedzinie:

Dla 0 pierwiastków

W próbie było 9346 układów

W przeliczeniu na jedno wywołanie:

Metoda podpodziału 0.370 ms

Metoda płaszczyzn ograniczających 0.258 ms

Metoda Newtona 0.317 ms

Dopuszczalny błąd 0.006 ms

Dla układu mającego 1 pierwiastek w dziedzinie:

W próbie było 8226 układów

Metoda podpodziału 9.669 ms

Metoda płaszczyzn ograniczających 1.789 ms

Metoda Newtona 0.787 ms

Dopuszczalny błąd 0.006 ms

Dla układu mającego 2 pierwiastki w dziedzinie:

W próbie było 8661 układów

Metoda podpodziału

50

Page 51: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Metoda podpodziału 19.617 ms

Metoda płaszczyzn ograniczających 4.890 ms

Metoda Newtona 1.592 ms

Dopuszczalny błąd 0.006 ms

Dla układu mającego 3 i 4 pierwiastki w dziedzinie:

W próbie było 258 układów

test wykonałem 10 razy aby zwiększyć dokładność

Metoda podpodziału 30.44 ms

Metoda płaszczyzn ograniczających 9.15 ms

Metoda Newtona 3.11 ms

Dopuszczalny błąd 0.02 ms

4.5 Podsumowanie

Najszybszą metodą okazała się metoda Newtona. W metodzie podpodziału każdy krok

zmniejsza dwukrotnie obszar podejrzany o istnienie pierwiastków. Natomiast zarówno w

metodzie płaszczyzn ograniczających jak i metodzie Newtona występuje zbieżność kwa-

dratowa w pobliżu pierwiastka, ale każdy krok metody Newtona trwa krócej.

Dodatkową zaletą metody Newtona jest możliwość jej rozszerzania na więcej wymiarów.

Przykładowo dla n=3: mamy jednostkowy simpleks o wierzchołkach: (0,0,0),(0,0,1),(0,1,0),(1,0,0)

51

Page 52: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Rysunek 25:

Punkt startowy wybieramy w (1/4,1/4,1/4) stosując metodą Newtona dla trzech wymia-

rów liczymy pierwiastek. W przypadku znalezienia pierwiastka - simpleks dzielimy na

cztery części w tym punkcie i testujemy je na obecność pierwiastka; w przypadku, gdy

nie został znaleziony pierwiastek - dzielimy w środku najdłuższej krawędzi.

52

Page 53: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

5 Inne metody

Sherbrooke i Patrikalakis prezentują dwa algorytmy [15] na obliczanie wszystkich pier-

wiastków układu nieliniowych wielomianowych równań n - zmiennych leżących w n -

wymiarowym boksie polegające na reprezentacji w wielomianowych bazach Bernsteina i

podpodziale .

Ażeby izolować wszystkie pierwiastki w danej dziedzinie, obie metody używają różnych

schematów do konstrukcji ograniczających boksów . Pierwsza metoda rzutuje wielościan

na zbiór równorzędnych płaszczyzn, druga używa liniowej optymalizacji.

Badana jest również lokalna zbieżność obu metod i dowód że pierwsza jest kwadrato-

wo zbieżna dla n=1 i liniowo zbieżna dla n>1; druga zaś jest kwadratowo zbieżna dla

wszystkich n.

Przypuśćmy, że mamy układ n funkcji n zmiennych f1, f2, ..fn. Pierwiastków szukamy w

n-wymiarowym boksie S = [a1, b1]x[a2, b2]x...x[an, bn] Mamy znaleźć wszystkie punkty

u = (u1, u2, ..un) należące do S takie , że f1(u) = f2(u) = ... = fn(u) = 0

Przez wykorzystanie transformacji afinicznej [4] ui = ai + xi(bi − ai) dla każdego i od 1

do n uprościmy problem do szukania x należącego do [0, 1]n takiego ,że f1(x) = f2(x) =

.. = fn(x) = 0

Ponieważ fi są wielomianami, wykorzystując zmianę baz można przedstawić je w bazach

Bernsteina. Można wykorzystać własność, że płatek Beziera zawiera się w pokryciu wy-

pukłym swoim punktów kontrolnych. Pierwiastki muszą należeć do przecięcia pokrycia

wypukłego z płaszczyzną zerową.

53

Page 54: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Rysunek 26:

Ogólny algorytm szukania pierwiastków:

1. Jako początkową dziedzinę bierzemy [0, 1]n

2. Dla każdej funkcji fi wyznaczamy pokrycie wypukłe jej punktów kontrolnych

3. Szukamy przecięć pokryć wypukłych z płaszczyzną zerową jeżeli obszar przecięcia

ma średnicę mniejszą niż pewne dołączamy go do zbioru znalezionych pierwiastków.

4. Jeżeli średnica obszaru nie jest dostatecznie mała: znajdujemy najmniejszy boks

S = [a1, b1]x[a2, b2]x...x[an, bn] zawierający obszar przecięcia

5. Za pomocą transformacji afinicznej ui = ai + xi(bi − ai) przekształcamy funkcje i

dalej działamy na [0, 1]n zamiast na S

6. Skaczemy do punktu 2.

Pozostaje jeszcze problem obliczenia pokryć wypukłych i ich przecięć z płaszczyzną zero-

wą. Zamiast dokładnego wyznaczenia tych obszarów można szukać n-wymiarowych bok-

sów, w których będą się one znajdować. Do znalezienia tych boksów można wykorzystać

poniżej opisane algorytmy PP i LP

5.1 Algorytm PP - przecięcia rzutów wielościanów

(z ang. the projected-polyhedron intersection algorithm)

54

Page 55: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Ta metoda wyznacza prostokąt ograniczający przez rozwiązanie n dwuwymiarowych za-

dań w każdej iteracji zamiast jednego (n+1)wymiarowego. Filozofią tego podejścia jest

wyznaczenie każdego z n-ograniczeń boksu niezależnie, poprzez rzutowanie punktów kon-

trolnych na rózne płaszczyzny. Przyjmijmy, że chcemy znaleźć przedział [aj , bj ] boksu

ograniczającego. Definiujemy funkcję pj: Rn+1− > R2 poprzez:

πj(x) = (πj(x), πn+1(x)) gdzie pij(x) jest rzutem x na płaszczyznę j-tą czyli πj(x) = xj

Używająć πj będziemy rzutować punkty kontrolne każdej z funkcji Fk na płaszczyznę

kartezjańską (nazwiemy ją dla uproszczenia płaszczyzną (x,y)) Będziemy generować dwu-

wymiarowe pokrycia wypukłe tych rzutowanych punktów i przecinać je ze sobą i z osią

X. Oznaczmy przez Bj część wspólną tych przecięć. Wtedy zbiór podejrzanych punktów

jest podzbiorem boksu B = B1xB2x...xBn.

5.2 Algorytm LP - programowania liniowego

Metoda ta opiera się na poszukiwaniu minimum i maksimum funkcji liniowej dla zbioru

punktów podejrzanych. Problem znalezienia B = [a1, b1]x[a2, b2]x...x[an, bn] dzielimy na

2*n niezależnych podproblemów obliczenia wszystkich ai oraz bi. Jeżeli przez A oznaczy-

my obszar przecinania się pokrycia wypukłego z płaszczyzną zerową, czyli obszar szukany

- możemy sobie zadać dwa pytania:

- jeżeli weźmiemy pod uwagę współrzędną i, który punkt ma najmniejszą wartość

- który ma największą wartość

czyli ai = minxi bi = maxxi x należy do A, i=1..n

Aby wyznaczyć ai oraz bi należy zapisać układ równań, który jednoznacznie określa A.

Następnie wykorzystując algorytm optymalizacji można obliczyć minimum i maksimum

wartości xi, które mieszczą się w danych ograniczeniach. Dokładny opis algorytmów wraz

z wyliczeniem ich wydajności można znaleźć w [15] Inną metodą która można stosować

do podpodziału w przypadku większej liczby wymiarów niż dwa jest metoda opisana

w artykule Goodmana i Petersa [7] gdzie podają algorytm na podział simpleksu oraz

warunki na wypukłość siatek Beziera

55

Page 56: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

Literatura

[1] Barry P.J. Goldman Ronald N. De Casteljau - type subdivision is peculiar to Bezier

curves.Computer Aided Design 3/1988 s.114-116

[2] Boehm Wolfgang. An Affine representatin of de Casteljau’s and de Boor’s rational

algorithms. Computer Aided Geometric Design 3-4/1993 s.175-180

[3] Boehm Wolfgang Farin Gerald. Letter to editor. Computer Aided Design 5/1983

s.261

[4] Farin Gerald -Curves and Surfaces for Computer Aided Geometric Design - A Prac-

tical Guide. Academic Press,New York,2nd edn.1990

[5] Garcia C.B Zangwill W.I Global continuation methods for finding all solutions to

polynomial systems of equations in n variables. w Fiacco A.V and Kortanek K.O

eds. Extremal methods and systems analysis. Springer,New York 1980 s.481-497

[6] Goldman Ronald N. Subdivision algorithms for Bezier triangles. Computer Aided

Design 3/1983 s.159-166

[7] Goodman Tim N.T. Peters Jorg Bezier nets, convexity and subdivision on higher-

dimensional simplices. Computer Aided Geometric Design 1/1995 s.53-65

[8] Jankowski Michal. Elementy grafiki komputerowej.Wydawnictwo Naukowo - Tech-

niczne Warszawa 1990.

[9] Lodha Suresh Goldman Ronald N. Change of basis algorithms for surfaces in

CAGD.Computer Aided Geometric Design 8/1995 s.801-824

[10] Nishita T. Sederberg T.W Kakimoto M. Ray tracing trimmed rational surface pat-

ches. ACM Comput. Graphics 24(4) 1990 337-345

[11] Peng Q.S. An algorithm for finding the intersection lines between two B-spline sur-

faces.Computer Aided Design 4/1984 s.191-196

56

Page 57: PRACA DYPLOMOWA - borneqborneq.pl/wp-content/uploads/2018/02/Dyplom2018-02-22.pdf2018/02/22  · PRACA DYPLOMOWA Wykonujący: Andrzej Borucki temat: Ocena przydatności metod eliminacji

[12] Piegl L. Recursive algorithms for the representation of parametric curves and surfa-

ces.Computer Aided Design 5/1985 s.225-229

[13] Sederberg T.W Algorithms for algebraic curve intersection. Computer Aided Design

21 (9) 1989 s.547-554

[14] Sederberg T.W Nishita T. Geometric Hermite approximation of surface patch inter-

section curves. Computer Aided Geometric Design 1991, 97-114

[15] Sherbrooke Evan C. Patrikalakis Nicholas M. Computation of the solutions of non-

linear polynomial systems. Computer Aided Geometric Design 5/1993 s.379-405

[16] Tseng Yuan-Jye Sanjay. Determining feasible tool - approach directions for machining

Bezier curves and surfaces. Computer Aided Design 5/1991 s.367-379

[17] Zheng Jin-Jin. The convexity of parametric Bezier triangular patches of degree 2.

Computer Aided Geometric Design 6/1993 s.521-530

[18] Zhou Chang-Zheng. On the convexity of parametric Bezier triangular surfa-

ces.Computer Aided Geometric Design 7/1990 s.459-463

57