Pierwiastki na brzegu trójkąta Beziera

Własności wielomianów; pierwiastki, współczynniki. Dzielenie wielomianów. Wzory Viete'a. RÓWNANIA I NIERÓWNOŚCI wielomianowe (wyższych stopni). Rozkład na czynniki.
Awatar użytkownika
Borneq
Użytkownik
Użytkownik
Posty: 247
Rejestracja: 23 lip 2010, o 07:50
Płeć: Mężczyzna
Lokalizacja: geo:lat=0 geo:lon=0
Podziękował: 13 razy

Pierwiastki na brzegu trójkąta Beziera

Post autor: Borneq »

Baza wielomianów Bernsteina ma postać:
\(\displaystyle{ B^n_i(u) = \binom{n}{i}(1-u)^{n-i}u^i, u \in [0;1]}\)
Konwersja do bazy Bernsteina w przypadku jednowymiarowym:
$$\begin{bmatrix}
1 & 1 &1 \\
0 & 1/2 & 1\\
0 & 0 & 1
\end{bmatrix}$$
i odwrotnie, do bazy wielomianowej:
$$\begin{bmatrix}
1 & -2 &1 \\
0 & 2 & -2\\
0 & 0 & 1
\end{bmatrix}$$
Płatek Beziera dla stopnia 2 ma 6 punktów, trzy punkty to punkty wierzchołkowe, dla których wartość zgadza się z wartością funkcji w tych puntach, a pozostałe trzy są pomiędzy nimi.
konwertujemy wielomian uszeregowany \(\displaystyle{ 1,x,y,x^2,xy,y^2}\) mnożąc przez macierz
$$
\left|\begin{array}{c|cc|ccc}
1 & 0 & 0 & 0 & 0 & 0 \\
\hline
1 & 1/2 & 0 & 0 & 0 & 0 \\
1 & 0 & 1/2 & 0 & 0 & 0 \\
\hline
1 & 1 & 0 & 1 & 0 & 0 \\
1 & 1/2 & 1/2 & 0 & 1/2 & 0 \\
1 & 0 & 1 & 0 & 0 & 1 \\
\end{array}\right|
$$
podział na sekcje jest tylko po to, by było łatwiej zauważyć z czego ta macierz się składa
i konwersja do bazy wielomianowej:
$$
\left|\begin{array}{c|cc|ccc}
1 & 0 & 0 & 0 & 0 & 0 \\
\hline
-2 & 2 & 0 & 0 & 0 & 0 \\
-2 & 0 & 2 & 0 & 0 & 0 \\
\hline
1 & -2 & 0 & 1 & 0 & 0 \\
2 & -2 & -2 & 0 & 2 & 0 \\
1 & 0 & -2 & 0 & 0 & 1 \\
\end{array}\right|
$$

Szukamy pierwiastków układu dwóch równań.
Teraz pytanie: może być złośliwy przypadek, gdy pierwiastek jest na wierzchołku, wtedy któryś z trzech punktów wierzchołkowych ma wartość (0,0). Ale również może być nie na wierzchołkach, ale na krawędziach.
Z dwiema krawędziami sobie radzę: są to krawędzie o wyrazach \(\displaystyle{ 1,x,x^2 }\)oraz \(\displaystyle{ 1,y,y^2}\), z tym sobie dobrze radzę konwertując j na bazę wielomianową i licząc trójmian kwadratowy.
Zostaje trzecia , która ma współczynniki przy wyrazach \(\displaystyle{ x^2,xy,y^2}\), można zauważyć że tu \(\displaystyle{ y=1-x}\) czyli też dostalibyśmy wielomian jednej zmiennej.

Drugim zadaniem jest po znalezieniu pierwiastków na brzegu, uniknięcie szukania ich wewnątrz.
Myślę że zrobiłbym to w ten sposób:
- konwertuję do bazy wielomianowej
- ograniczam się do jego wnętrza o grubość epsilon, powiększając tak z 1.000000001 razy względem środka (r=s=t=1/3)
- konwertuję do bazy Bernsteina
Ta dość czasochłonna operacja będzie wykonywana tylko gdy pierwiastki będą na brzegu, czyli rzadko; nawet gdy będzie złośliwy przypadek, to tylko raz na początku będzie wykonywana ta operacja.
Awatar użytkownika
Borneq
Użytkownik
Użytkownik
Posty: 247
Rejestracja: 23 lip 2010, o 07:50
Płeć: Mężczyzna
Lokalizacja: geo:lat=0 geo:lon=0
Podziękował: 13 razy

Re: Pierwiastki na brzegu trójkąta Beziera

Post autor: Borneq »

Prawidłowe macierze 1D (liczać od najniższego zamiast od najwyższego współczynnika) to
$$\begin{bmatrix}
1 & 0 &0 \\
1 & 1/2 & 0\\
1 & 1 & 1
\end{bmatrix}$$
i odwrotnie, do bazy wielomianowej:
$$\begin{bmatrix}
1 & 0 &0 \\
-2 & 2 & 0\\
1 & -2 & 1
\end{bmatrix}$$

Natomiast macierz przeliczająca z trzeciego brzegu to
$$\begin{bmatrix}
1 & 1 &1 \\
0 & -1 &-2\\
0 & 0 & 1
\end{bmatrix}$$

Ciekawostka: ta macierz jest równa swojej odwrotności, tak że podniesiona do kwadratu daje macierz diagonalną, to tak jakby była pierwiastkiem z diagonalnej.
ODPOWIEDZ