Leniwce.com | blog technologiczny
O związku motyli z pogodą...
Kuba Krakowski, 2011-08-26 21:00:00
kategoria: Inne

czyli dlaczego długoterminową prognozę pogody umieszczam w kategorii s-f :-)


Tekst dedykuję koledze, który zasugerowawszy się taką prognozą, wyjechał na weekend i spędził 3 dni w deszczu...

 

Zacznijmy od prostego eksperymentu w excelu. Ustawmy wartość pierszej komórki na 0.2 (w excelu będzie przecinek zamiast kropki), a kolejne komórki niech się liczą wg formuły z obrazka:


 

Wydaje się oczywiste, że kolejne komórki powinny być wypełniane wartością 0.2 (bo przecież 11*0.2-2=0.2) - przedłużmy więc formułę na kolejne wiersze...

Wygląda niesamowicie i budzi spore zdziwienie - co tu się porobiło ? To dobra nauczka, żeby nie wierzyć bezkrytycznie we wszystko, co wyrzuci z siebie komputer.
Otrzymane wartości mają dość prosty powód: komputer przechowuje liczby w pamięci w swoim naturalnym systemie - czyli dwójkowym. Do zapisania liczby ma do dyspozycji skończoną liczbę zer i jedynek. W dodatku nie każda liczba dziesiętna da się przedstawić dokładnie w systemie binarnym. Wszystko to powoduje, że to, co excel prezentuje nam jako 0.2 w rzeczywistości jest czymś badzo bliskim tej wartości.
Ponieważ kolejne wartości są mnożone, więc mała niedokładność na dalekim miejscu po przecinku daje (jak widać) ogromne różnice już po 20 iteracjach.
Widać to będzie wyraźniej kiedy w drugiej kolumnie przeprowadzimy podobne obliczenia, ale tym razem zaczynając od innej wartości - bardzo bliskiej 0.2:

I powielimy formułę jak wcześniej:

Rozpoczęliśmy prawie od tej samej wartości, a trudno uwierzyć jak bardzo różnią się końcowe wyniki!

Co tu się właściwie działo?
Braliśmy punkt startowy (x0), następnie wrzucaliśmy do czarnej skrzynki (f), która wypluwała nam nową wartość (x1). Traktując tę wartość znów jako startową powtarzamy operacje:

x0  ->  x1=f(x0)  ->  x2=f(x1)  ->  x3=f(x2)  -> ...

Pogodę oblicza się w zasadzie bardzo podobnie:

Czarną skrzynką (f) jest matematyczny model atmosfery, a punktem startowym (x0) pomiary temperatury, ciśnienia, wiatru itp. zbierane w różnych miejscach w pewnym momencie.
Obliczenia startują z punktu x0 by dać stan atmosfery (temperaturę, ciśnienie itd...) chwilę później: x1=f(x0).
Dalej postępuje się jak w poprzednim przykładzie: oblicza się x2=f(x1), x3=f(x2) ... w kolejnych momentach czasu tak długo, aż dojdzie się do żądanego czasu np. 24 godzin:

moment pomiarów x0  ->  x1=f(x0)  ->  x2=f(x1)  -> ...->... prognoza za 24h


Dlaczego więc mimo używania superkomputerów do tych obliczeń nawet prognoza "na jutro" często znacznie rozmija się z rzeczywistością ?

1) Po pierwsze sama skrzynka (czyli model) jest mniejszą lub większą idealizacją prawdziwych procesów zachodzących w atmosferze.
Wynika to częściowo z naszej niewiedzy na temat rzeczywistych zjawisk.
Poza tym uproszczenia muszą być czynione po to, by cokolwiek obliczyć w sensownym czasie - nawet dla superkomputerów używane w prognozowaniu równania są ciężkim kawałkiem chleba.

2) Drugim punktem krytycznym jest siatka miejsc, z któych zasysane są dane początkowe oraz obliczana jest przyszła pogoda.
Im jest gęstsza tym dokłaniej można przewidzieć pogodę w danym miejscu - niestety zagęszczanie siatki prowadzi do szybkiego wzrostu złożoności obliczeń i może dojść do sytuacji, w której prognoza na jutro jest znana pojutrze :-)
W tej chwili w najlepszych modelach jej rozmiar wynosi kilka kilometrów.

3) Po trzecie - wartości temperatury, ciśnienia i innych parametrów, które wprowadzamy do naszej czarnej skrzynki różnią się od rzeczywistych.
Wynika to po pierwsze z ograniczeń naszych przyrządów np: termometr pokazał  25.5 °C -taka wartość może oznaczać, że prawdziwa wartość wynosiła równie dobrze 25.50324343242343 °C.
Drugim ograniczeniem jest dokładność liczb w komputerze, który akceptuje tylko określoną liczbę cyfr po przecinku.
Wszystko to składa się na to, że do modelu trafiają dane trochę różne od wartości rzeczywistych, a przecież wyżej widzieliśmy jak bardzo rozjeżdżają się wyniki, które startowały od prawie takich samych wartości początkowych - nazywa się to wrażliwością na warunki początkowe.
Badał to już dawno temu Edward Lorenz, który zajmował się problemem przewidywalności prognozy pogody. W słynnej już dziś pracy z 1963 roku badał działanie jednej z takich czarnych skrzynek (układu równań).
Wizualizacja przykładowego rozwiązania tych równań animuje się poniżej.


To właśnie jest słynny motyl Lorenza.
Poniżej możemy zobaczyć nałożone wykresy dwóch rozwiązań układu Lorenza, które startowały od baaardzo bliskich wartości początkowych.

Oraz wykres pokazujący różnice rozwiązań:

To właśniej przez widoczne powyżej rozjeżdżanie się rozwiązań powstało powiedzenie, że ruch skrzydeł motyla w Ameryce Południowej wpływa na pogodę w Europie.

Być może część czytelników po lekturze spojrzy nieco inaczej na prognozy - ja osobiście znając powyżej przedstawione przeszkody tym bardziej doceniam metody, jakie musiano wypracować, żeby osiągnąć całkiem wysoką sprawdzalność.
Dzięki temu zaraz po skończeniu artykułu sprawdzę http://new.meteo.pl , żeby zaplanować jutrzejszy wolny dzień (warto tu też zaglądać co parę godzin, żeby sprawdzić, jak bardzo potrafi się zmienić prognoza w tym czasie...).

Powiązane artykuły
Atraktor Lorenza (2011-08-29)
3.1415926535897932385... (2010-05-19)
GPS w lekkostrawnym sosie podany (2009-08-05)
Wszechświat na ekranie, czyli słowo o skalowaniu (2009-07-15)
Rzetelność dziennikarska (2009-04-26)


Komentarze


n/c [2011-08-27 01:21:29]
Wszystko fajnie...tylko znów diabeł tkwi w szczegółach:

http://office.microsoft.com/pl-pl/excel-help/zmienianie-sposobu-ponownego-obliczania-iteracji-lub-dokadnosci-formuy-HP010054149.aspx#BMchange_the_precision_of_calculations_

Przy takim ustawieniu prezentowany przykład działa. A komputer zawsze wyrzuca dane zgodnie z tym jak podamy mu dane. Tylko trzeba wiedzieć jak to zrobić...
criss [2011-08-27 09:33:11]
@n/c:

tylko tu nie chodzi o Excela. Chodzi o mechanizm i przyczyne powstawania błędów.
n/c [2011-08-27 14:18:18]
Kwestia tego co uznamy za przyczynę - zaokrąglenia czy brak wiedzy na temat sposobu wprowadzania informacji. A drugi temat to czy należy mówić o błędzie w sytuacji, gdy "coś" (w tym przypadku komputer) działa zgodnie z założeniami? W mojej ocenie nie.

Niestety ostatnio bardzo często poprawiam programy, których podstawowym błędem są przyjęte założenia (lub ich brak), a nie samo działanie oprogramowania.
Kuba [2011-08-27 15:55:20]
Zgadzam się. Wyraźnie tego nie napisałem, ale przedstawione działanie excela jest w tym sensie jak najbardziej poprawne, i nie może być mowy o błędnym działaniu. Inną kwestią jest świadomość użytkownika, skąd biorą się takie, a nie inne wyniki obliczeń.
Artykułem chciałem właśnie zwrócić uwagę na to, że kłopoty z numerycznymi prognozami biorą się z niejako naturalnych zjawisk (punkty 1-3).
Kacper [2011-09-27 12:00:59]
Wspomniane w tym artykule zjawisko nowi nazwę "Efekt motyla" i jest ściśle związane z teorią chaosu ;)

Według niej, niektórych rzeczy nigdy nie będzie w stanie przewidzieć - niezależnie od szybkości procesorów i technologii :)

Dodaj komentarz:
Autor:*

WWW:

Treść:*

Wprowadź kod zabezpieczający*:


        * - pola wymagane
Kategorie
C# (13)
Inne (6)
Java (3)
Matlab (1)
OpenGL (1)
PHP (2)


Najnowsze wpisy

Ostatnie komentarze