Stosowane modele równowagi ogólnej (CGE) Wykład 2
Błąd linearyzacji (1) Przykład: Równanie „na poziomach”: Y=X 2 +Z Postać zlinearyzowana: y=2X 2 /Y·x + Z/Y·z gdzie małe litery wyrażają procentowe przyrosty (krańcowe), a duże – poziomy zmiennych (ich wartości wyrażające początkowe rozwiązanie równania „na poziomach”). W równaniu zlinearyzowanym x, y, z są zmiennymi; X, Y, Z – współczynnikami (stałymi).
Błąd linearyzacji (2) Mając następujące rozwiązanie początkowe: X=3, Z=6, Y=15 równanie zlinearyzowane przyjmuje postać: y=6/5·x + 2/5·z Zakładając, że X↑20%, Z↓10%, tj. x=20, z=–10, otrzymujemy: y= [Y↑ ] Jest to wynik przybliżony. Dokładny wynik to y*= Błąd linearyzacji
Błąd linearyzacji (2) Mając następujące rozwiązanie początkowe: X=3, Z=6, Y=15 równanie zlinearyzowane przyjmuje postać: y=6/5·x + 2/5·z Zakładając, że X↑20%, Z↓10%, tj. x=20, z=–10, otrzymujemy: y=6/5·20 + 2/5·(–10)=20[Y↑20%] Jest to wynik przybliżony. Dokładny wynik to Y↑22,4%.
Błąd linearyzacji – ćwiczenie Równanie „na poziomach”: Rozwiązanie początkowe: X=4, Y=2. Równanie zlinearyzowane: …………. Zakładamy wzrost X z 4 do 16 (o 300%). Wynik dokładny: Y rośnie o …………%. Aproksymacja: y=………………….. Błąd linearyzacji: y=…………………..
Błąd linearyzacji – ćwiczenie Równanie „na poziomach”: Rozwiązanie początkowe: X=4, Y=2. Równanie zlinearyzowane: y=0,5·x. Zakładamy wzrost X z 4 do 16 (o 300%). Wynik dokładny: Y rośnie z 2 do 4 (o 100%). Aproksymacja: y=0,5·300=150.
Błąd linearyzacji – ilustracja Y exact – rozw. dokładne; Y J – rozw. przybliżone (metoda Johansena). Źródło: dokumentacja modelu MINIMAL.
Jak zmniejszyć błąd linearyzacji? (1) Podział zmiany X na kilka mniejszych kroków (dla mniejszych kroków błędy linearyzacji są proporcjonalnie mniejsze) – metoda Eulera (wielokrokowa – multistep). Źródło: dokumentacja modelu MINIMAL.
Jak zmniejszyć błąd linearyzacji? (2) Dzieląc zmiany X na nieskończoną (a w praktyce – bardzo dużą) liczbę kroków otrzymalibyśmy dokładne rozwiązanie… …ale takie podejście jest nieefektywne (relatywnie długi czas obliczeń)… …dlatego zaproponowano wykorzystanie ekstrapolacji.
Ekstrapolacja rozwiązań (1) Rozw. w 2 krokach – w każdym zwiększamy X o 100% Rozw. w 4 krokach – w każdym zwiększamy X o 41,42% W tym przykładzie podwojenie liczby kroków zmniejsza błąd ok. dwukrotnie – więc np. dla 8 kroków y 106% itd. Źródło: dokumentacja modelu MINIMAL. · MetodayBłąd Johansena (1 krok)150%50 p.p. Eulera (2 kroki)125%25 p.p. Eulera (4 kroki)112,3%12,3 p.p. Eulera ( kroków) 100%0
Ekstrapolacja rozwiązań (2) Faktycznie GEMPACK dzieli zmianę X nieco inaczej, tak że otrzymamy: · MetodayBłąd Johansena (1 krok)150%50 p.p. Eulera (2 kroki)127,5%27,5 p.p. Eulera (4 kroki)114,16%14,16 p.p. Eulera ( kroków) 100%0
Rozw. wielokrokowe a współczynniki (1) W poprzednim przykładzie zlinearyzowane równanie nie zawierało współczynników. Inny przykład: Y=X 2 +1 Po linearyzacji: y=2·X 2 /Y·x Lub y=C·xgdzie C=2·X 2 /Y W powyższym równaniu występuje współczynnik C.
Rozw. wielokrokowe a współczynniki (2) Zał. rozw. początkowe: X=1, Y=2. Symulujemy zmianę X=1→X=4, dzieląc ją na 2 kroki: X=1→X=2→X=4. W punkcie X=1 współczynnik C= Ale w punkcie X=2 współczynnik C= Zatem w symulacji wielokrokowej (inaczej niż w 1-krokowej) współczynniki nie są stałe i powinny być aktualizowane z każdym krokiem symulacji.
Rozw. wielokrokowe a współczynniki (2) Zał. rozw. początkowe: X=1, Y=2. Symulujemy zmianę X=1→X=4, dzieląc ją na 2 kroki: X=1→X=2→X=4. W punkcie X=1 współczynnik C=1. Ale w punkcie X=2 współczynnik C=1,6. Zatem w symulacji wielokrokowej (inaczej niż w 1-krokowej) współczynniki nie są stałe i powinny być aktualizowane z każdym krokiem symulacji.
Rozw. wielokrokowe a współczynniki (3) W kodzie modelu (TABLO) do aktualizacji współczynników służy polecenie Update.
Rozw. wielokrokowe a współczynniki (4) UWAGA – jeśli model „na poziomach” jest liniowy, to na podstawie modelu przekształconego do postaci zawierającej procentowe przyrosty zmiennych dokładne rozwiązanie otrzymujemy w 1 kroku! Aby rozwiązanie wielokrokowe było także poprawne potrzebne są odpowiednie polecenia Update.
Rodzaje Update Jeśli w modelu jest zmienna p_x wyrażająca procentowy przyrost X: Update X = p_x; Jeśli X=X 1 ·X 2 ·X 3 : Update X = p_x 1 *p_x 2 *p_x 3 ; W pozostałych przypadkach potrzebna formuła na zwykły przyrost (krańcowy) X. Update (change) X = ;
Model i-o w GEMPACKu Dane:
Zapis modelu i-o
Model.tab (1)
Model.tab (2)
Model.tab (3)
Symulacja.cmf (1)
Symulacja.cmf (2)