70
relaksacją. Następną relaksację rozpoczynamy znów od węzła (1, 1). Zakończenie obliczeń i wydruk rezultatów następuje, gdy maksymalna różnica temperatur obliczonych w kolejnych cyklach okazuje się mniejsza od założonej przez nas wartości e. Przebieg obliczeń wygodnie jest przedstawić w formie tzw. schematu blokowego (rys. 2). Zgodnie z przyjętym zwyczajem, prostokąty na schemacie odnoszą się do operacji arytmetycznych, a romby do relacji. Kolejność wykonywania programu zaznaczono strzałkami. Małe strzałki, zwrócone w lewo, symbolizują operację podstawienia. Przykładowo wykonanie instrukcji j*-j+ 1 oznacza, że zawartość komórki w pamięci komputera, odpowiadającej zmiennej j, została zwiększona o 1, a więc zamiast np. 3 wynosi po tej operacji 4. Znaczenie poszczególnych instrukcji jest następujące:
Rys. 1. W płycie wydzielono 64 węzły. Temperatury w 28 węzłach na krawędzi płyty są zadane przez warunki brzegowe, w pozostałych węzłach znajdujemy je ze związku 7
1 - pomocniczej zmiennej d nadajemy na początku przebiegu wartość 0. Po przebiegu | ma wartość równą maksymalnej różnicy pomiędzy temperaturami obliczonymi w dwu kolejnych cyklach;
2, 3 - przyjmujemy 1, tzn. miejscem startu jest lewy dolny narożnik
płyty;
4 1 obliczamy temperaturę w węźle o indeksach (i, j), zgodnie ze wzorem
7. Przy pierwszym przebiegu będzie to temperatura T1A\
5 - sprawdzamy, czy różnica między nową i dawną wartością temperatury
jest większa od „dotąd największej” różnicy d. Jeśli tak, to d przyjmuje tę aktualnie największą wartość;
6 - do węzła (i, j) wpisujemy nową wartość temperatury TUJ\
©
Rys. 2. Schemat blokowy rozwiązania równania eliptycznego metodą Gaussa-Seidla
&
®
;■©
©
®
7 - sprawdzamy, czy doszliśmy do końca wiersza. Jeśli nie, to przesuwamy
się do następnego węzła w tym samym wierszu i«- i + 1;
8 - sprawdzamy, czy jesteśmy w ostatnim wierszu. Jeśli nie, to przesuwamy
się do następnego wiersza ]<-]+{. Jak więc widać, węzły rozpatrywane są w sposób przypominający przebieg wiązki elektronów po ekranie telewizyjnym;
9 - sprawdzamy, czy maksymalna różnica d temperatur obliczonych
w dwu kolejnych cyklach jest mniejsza od założonej wartości s. Jeśli nie, wówczas powtarzamy cykl, tzn. rozpoczynamy obliczenia od instrukcji 1;
10 - następuje wydruk rezultatów, w tym wypadku końcowych temperatur
w węzłach.