WIZUALIZACJA W OBLICZENIACH NAUKOWYCH: STANDARDOWE TECHNIKI

Niżej, przestawiamy część materiałów, na których był oparty wykład. Niniejsze notatki nie są więc pełnym źródłem wymaganej wiedzy na ten temat!

Podstawowe techniki wizualizacji

Omówimy je na przykładzie grafiki komercyjnego pakietu obliczeń symbolicznych (sic!) Maple V, dostępnego w Instytucie Matematyki Stosowanej. Jeszcze większe możliwości wizualizacji daje numeryczny Matlab, natomiast jego darmowe klony: Octave i Scilab dysponują tylko absolutnie podstawowymi narzędziami. Z darmowych pakietów, dużo większe możliwości wizualizacji dają Vigie i Vis5D, które omawiamy poniżej 2.1.


Najprostszy wykres

Nawet wyświetlanie najprostszych wykresów można zmodyfikować tak, by wycisnąć z nich więcej informacji. Dzieje się tak w szczególności dla funkcji bardzo szybko rosnących/malejących: wówczas lepiej zastosować na przynajmniej jednej z osi skalę nieliniową. Powszechnie stosuje sie w takim wypadku skalę logarytmiczną.


Osie skalowane liniowo - informacja o drugiej funkcji jest niezauważalna


Pionowa oś - skala logarytmiczna

Skali logarytmicznej użyjemy na przykład, aby porównywać szybkość zbieżności dwóch metod iteracyjnych zbieżnych superliniowo.

Gdy dane są dwie (trzy) funkcje jednej zmiennej określone na wspólnej dziedzinie, to naturalnie możemy przedstawić ich grafy na jednym wykresie. (Bywa, że dodatkowo należy przeskalować wykres jednej funkcji względem drugiej.)


Dwa wykresy

Czasem jednak warto zdać sobie sprawę z wzajemnych zależności i potraktować te dwie funkcje jako jedną parametryzację krzywej w R2(R3)). Zazwyczaj interpretacja modelu pozwoli nam zdecydować się na jeden z opisów (na przykład, jeśli x(t) oznacza współrzędną x-ową w chwili t, a y(t)- współrzędną y-ową, to naturalnie (x(t),y(t)) przedstawimy nie z osobna, lecz jako trajektorię punktu (x,y) w czasie, na płaszczyźnie.


Trajektoria

A propos równań różniczkowych zwyczajnych, jeśli chcemy zorientować się, jak będą wyglądały trajektorie punktu y0 spełniającego równanie


\begin{eqnarray*}y'(t) &=& -\sin(t) - y/10, \qquad t\in (t_0,t_{max})\\
y(t_0) &=& y_0
\end{eqnarray*}


to oczywiście możemy narysować ich odpowiednio dużo. Innym trochę podejściem, dającym większy wgląd w dynamikę układu, będzie zobrazowanie pola wektorowego odpowiadającego temu równaniu, tzn. pola


\begin{displaymath}(t,y) \rightarrow (1,\frac{dy}{dt}).
\end{displaymath}

Długość strzałek odpowiada naturalnie wielkości pochodnej y, pozwalając nam wzrokowo określić, gdzie ewolucja następuje szybciej, a gdzie wolniej.


Pole wektorowe

Dane dyskretne. Czasem lepiej przedstawić takimi, jakie są, a innym razem lepiej interpolować: funkcją kawałkami liniową lub gładszą (splajnem).


Dane dyskretne


Dane dyskretne + najprostsza interpolacja

Wizualizacja funkcji więcej niż jednej zmiennej: na przykładzie


\begin{displaymath}f(x,y) = x\cdot e^{-x^2-y^2}, \qquad (x,y)\in [-2,2]^2.
\end{displaymath}

Najprościej, podzielić dziedzinę siatką i dla każdego pixla wyznaczyć wartość funkcji. Po unormowaniu, można im przypisać odcienie szarości...


Wykres f(x,y).

...lub pewną skalę kolorową.


Wykres f(x,y).

A propos: wizualizacja macierzy!!

Czasem warto dodać izolinie...


...ewentualnie tylko do nich się ograniczyć.


Wreszcie, wartość f można potraktować jako trzecią współrzędną, a wykres f - jako powierzchnię w R3: (kolory odpowiadają zmieniającej się współrzędnej x-owej.


...dodajemy światło...


...a teraz nadajemy kolorom lepszy sens, uzależniając barwę ponownie od wartości funkcji (zob. Rysunek 1). (Dodatkowo powierzchnia siatkowa)


Inny sposób wyboru koloru (intensywność proporcjonalna do wartości f);


W przypadku obrazowania odwzorowania

\begin{displaymath}(x,y)\in R^2 \rightarrow (f_1(x,y), f_2(x,y))\in R^2
\end{displaymath}

można użyć znowu metafory pola wektorowego:


Pole wektorowe 2-wymiarowe.

Bardziej zaawansowane techniki wizualizacji

Z licznych powodów, ograniczymy się do demonstracji możliwości dwóch pakietów freeware: Vigie i Vis5D. Ich komercyjne odpowiedniki mają nieporównanie bogatsze możliwości; wśród takich komercyjnych pakietów dużą popularnością w Polsce i na świecie cieszy się AVS. Podobno dobry jest także pakiet Khoros.

   
Vigie

Jednym z bardziej elastycznych, o sporych możliwościach, a przy tym dość prostych w obsłudze darmowych pakietów wizualizacyjnych jest francuski Vigie.

(Spore) możliwości Vigie będą zademonstrowane w trybie interakcyjnym.

Vis5D

Pakiet Vis5D jest bardziej okienkowy, lecz z drugiej strony ma więcej ograniczeń w porównaniu z Vigie. Najistotniejszym jest, że przeznaczony jest w zasadzie do wyświetlania danych określonych na kostce w przestrzeni trojwymiarowej, na siatce równomiernej w dwoch wymiarach. Z zalet wymieńmy łatwy interfejs, możliwości robienia sekcji płaszczyzną, rozmaite sposoby wizualizacji (linie prądu, pole wektorowe, volume rendering, etc.). Zostaną one omówione na przykładzie danych demonstracyjnych dostarczanych wraz z pakietem Vis5D.

Częścią rozwiązań równań Naviera-Stokesa uogólnionych tak, by mogły modelować pogodę (i zapewne uproszczonych tak, aby dawało się je rozwiązać w rozsądnym czasie) jest pole prędkości wiatru $u(\underline{x})$, gdzie $\underline{x}=(x,y,z)$ (w każdym punkcie przestrzeni jest określona prędkość wiatru) oraz u = (u1,u2,u3)(wektor prędkości wiatru ma trzy składowe: poziomą x-ową i y-ową, pionową z-ową).

Takie pole wektorowe generuje linie prądu, tzn. krzywe, wzdłuż których poruszałyby się cząsteczki unoszone wiatrem. Jesli dokonać obcięcia naszego pola do pewnej płaszczyzny, to będziemy mogli obrazować linie prądu pola u obciętego do tej płaszczyzny:


Linie prądu.

Można dołożyć jeszcze jedną płaszczynę, np. poziomą, aby mieć większe wrażenie przestrzenności, przy zachowaniu względnej przejrzystości rysunku.


Pole wiatru obcięte do prostopadłych płaszczyzn: linie prądu

Dodatkowo, moęmy przyjrzeć się, jak w danej płaszczyźnie wygląda nasze pole wektorowe u. Zwróćmy uwagę na to, że wektory ''wystają'' poza płaszczyznę.


Pole wiatru obcięte do płaszczyzny poziomej + linie prądu

Dalej, ograniczając się do jednej składowej, można wizualizować jej wartości obcięte do pewnych płaszczyzn.



Rozkład x-owej współrzędnej składowej prędkości obcięty do płaszczyzny.

Technika wizualizacji zwana volume rendering pozwala na zobrazowanie jednej ze składowych wiatru (lub np. normy wektora prędkości) w postaci półprzejrzystej, kolorowej mgły, gdzie kolor odpowiada pewnej wartości funkcji w punkcie przestrzeni trójwymiarowej.


Volume rendering dla x-owej współrzędnej pola prędkości wiatru.

Inny przykład, z medycyny (źródło: Advanced Medical Imaging Laboratory):


Obraz medyczny w technice volume rendering.

Jest to bardzo popularne zastosowanie, gdyż volume rendering jest w pewnym sensie naturalne dla obrazowania medycznego (mają bardzo wiele wspólnego ze zdjęciami rentgenowskimi).

Inne techniki


Ta strona zostala stworzona na podstawie pliku w formacie LaTeX2e przy uzyciu konwertera Latex2HTML

Piotr Krzyzanowski
2000-03-30