Modelowanie matematyczne

Modelowanie matematyczne – użycie języka matematyki do opisania zachowania jakiegoś układu (na przykład układu automatyki, biologicznego, ekonomicznego, elektrycznego, mechanicznego, termodynamicznego).

Praktyka inżynierska często wymaga sterowania układem lub wykonania analizy jego zachowania, do czego używa się modelowania matematycznego. W analizie inżynier buduje opisowy model układu będący hipotezą co do sposobu działania układu i na podstawie tego modelu może wnioskować co do wpływu potencjalnych zakłóceń na stan układu. W sterowaniu model może posłużyć do teoretycznego wypróbowania różnych strategii sterowania bez wpływania na rzeczywisty układ.

Model matematyczny opisuje dany układ za pomocą zmiennych. Ich wartości mogą należeć do różnych zbiorów: liczb rzeczywistych, całkowitych, wartości logicznych, ciągów znakowych i tym podobnych. Zmienne reprezentują pewne właściwości układu, na przykład zmierzone wartości wyjść układu, wartości liczników, wystąpienia zdarzeń (tak/nie). Właściwy model to bowiem grupa funkcji wiążących ze sobą różne zmienne i w ten sposób opisujących powiązania między wielkościami w układzie.

Wiedza a priori[edytuj | edytuj kod]

Problemy modelowania matematycznego często klasyfikuje się jako „czarne skrzynki” (ang. black-box) lub „białe skrzynki” (ang. white-box), w zależności od ilości informacji o układzie posiadanych przed modelowaniem. Model „czarnej skrzynki” przedstawia układ, o którym nie posiada się absolutnie żadnej informacji, podczas gdy model „białej skrzynki” przedstawia układ, o którego działaniu ma się pełną wiedzę. W rzeczywistości wszystkie układy plasują się pomiędzy tymi dwoma modelami idealnymi.

Zazwyczaj preferowane jest wykorzystanie możliwie dużej ilości wiedzy a priori, aby uzyskany model był dokładniejszy. Modele „białej skrzynki” są uważane za prostsze, gdyż jeśli tylko wiedzy a priori użyto poprawnie, to model będzie zachowywał się zgodnie z rzeczywistym układem. Często informacja posiadana wcześniej o układzie ukazuje nam rodzaj zależności (charakter funkcji) wiążącej zmienne układu. Na przykład, gdy tworzy się model działania leku w ludzkim organizmie, wiadomo, że zazwyczaj ilość leku we krwi maleje wykładniczo wraz z czasem. Ciągle jednak pozostają pewne niewiadome; jak szybko zmniejsza się ilość leku i ile początkowo go było we krwi? Ten przykład nie jest więc modelem „białej skrzynki”, gdyż nieznane parametry muszą być wyznaczone w jakiś sposób, zanim model będzie mógł zostać użyty.

W modelach „czarnej skrzynki” należy wyznaczyć zarówno postać funkcji wiążącej wielkości w układzie, jak i wartości liczbowych parametrów tych funkcji. Nie posiadając wiedzy a priori próbuje się użyć funkcji możliwie ogólnych, by objąć nimi wszystkie modele. Często używanym sposobem na uzyskanie modelu „czarnej skrzynki” jest użycie sieci neuronowych, które nie zakładają niczego o nadchodzących do nich danych. Podstawowym problemem występującym przy używaniu zestawów wielu funkcji opisujących układ jest szybko wzrastający poziom trudności przy estymacji parametrów funkcji, gdy ilość tych parametrów wzrasta.

Złożoność[edytuj | edytuj kod]

Inną podstawową sprawą jest złożoność modelu. Zgodnie z zasadą Brzytwy Ockhama model powinien być na tyle prosty na ile to możliwe. Oznacza to, iż powinien wiernie odzwierciedlać dane zjawisko z niezbędną dokładnością.

Na przykład, przy modelowaniu zachowania samolotu w powietrzu, można uwzględnić w opisie zachowanie każdej najdrobniejszej nawet części samolotu i w ten sposób otrzymać idealny „białoskrzynkowy” model układu. Jednak koszt obliczeniowy dodania tylu drobnych szczegółów praktycznie uniemożliwiłby korzystanie z modelu. Dodatkowo, margines błędu całego modelu zwiększyłby się na skutek błędów wprowadzanych w opisie każdej części. Wynika stąd, że celowym jest wprowadzanie pewnych przybliżeń i uproszczeń, aby utrzymać stopień złożoności modelu na rozsądnym poziomie. Przykładowo newtonowska mechanika klasyczna jest tylko przybliżonym modelem świata rzeczywistego. Mimo to, model ten jest wystarczająco dokładny do opisu większości sytuacji z otaczającego nas świata, w którym prędkości ciał są zazwyczaj znacząco mniejsze od prędkości światła w próżni.

Ocena modelu[edytuj | edytuj kod]

Ważną częścią procesu modelowania jest ocena wykonanego modelu. Jak określić, czy model dobrze opisuje rzeczywisty układ? Odpowiedź na to pytanie nie jest prosta. Zazwyczaj inżynierowie posiadają zbiór pomiarów wielkości w układzie, który to zbiór jest użyty przy wykonywaniu modelu. Później, jeżeli opis został dobrze skonstruowany, model będzie wykazywał odpowiednie zależności dla znanego zestawu pomiarów. Rodzą się wtedy kolejne pytania: Jak określić, czy użyty zestaw pomiarów jest reprezentatywny dla wszystkich możliwych sytuacji? Czy model dobrze opisuje własności układu dla danych pomiędzy punktami pomiarowymi (interpolacja)? Czy model dobrze opisuje zdarzenia spoza przedziału pomiarów (ekstrapolacja)? Często spotykanym podejściem jest podział posiadanych wyników pomiarów na dwie grupy: dane treningowe i dane do weryfikacji modelu. Danych treningowych używa się do zbudowania modelu i wyznaczenia jego parametrów. Pozostałe dane są używane w szacowaniu zgodności modelu z rzeczywistością. Zakładając, że dane treningowe i dane do weryfikacji były różne, a model jest zgodny z nimi wszystkimi, można uznać, że model będzie dobrze opisywał rzeczywistość.

Niestety podejście takie ciągle pozostawia kwestię ekstrapolacji jako nierozstrzygniętą. Jak dobrze model opisze dane spoza zakresu posiadanych pomiarów? Znowu można odwołać się do newtonowskiego modelu mechaniki klasycznej. Newton wykonywał swoje pomiary bez zaawansowanego sprzętu, więc nie mógł zmierzyć własności cząstek poruszających się z prędkościami bliskimi prędkości światła w próżni. Nie mógł również dokonać pomiarów ruchu molekuł i innych podstawowych cząstek materii – pomiary wykonywał tylko w skali makro. Nie dziwi więc fakt, że jego model nie ekstrapoluje się dobrze na skalę mikro, podczas gdy jest wystarczający do opisu ogromnej większości sytuacji rzeczywistych.

Zobacz też[edytuj | edytuj kod]