Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Математикада, Герман Шварц атымен аталатын аддитивті Шварц әдісі, жартылай дифференциалдық теңдеу үшін шекаралық мәні есебін шамамен, оны кішірек домендердегі шекаралық мәні есептеріне бөліп, содан кейін нәтижелерді қосу арқылы шығарады.
In mathematics, the additive Schwarz method, named after Hermann Schwarz, solves a boundary value problem for a partial differential equation approximately by splitting it into boundary value problems on smaller domains and adding the results.
Компьютерде шешу
Мұны істеудің әдеттегі жолы f-ті [0,1] × [0,1] квадратындағы белгілі бір аралықтармен іріктеу болып табылады. Мысалы, x = 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 және 0.9 нүктелерінде x бағытында 8 үлгі алсақ, ал y бағытында да ұқсас координаттарда 8 үлгі алсақ. Осылайша, бізде квадраттың 64 үлгісі болады, мысалы (0.2, 0.8) және (0.6, 0.6) сияқты нүктелерде. Компьютерлік бағдарламаның мақсаты – f-тің осы 64 нүктедегі мәнін есептеу, бұл квадрат үшін абстрактілі функцияны табудан әлдеқайда оңай. Бірақ кейбір қиындықтар бар, мысалы, f тек квадраттың 64 нүктесінде белгілі болған жағдайда, (0.5, 0.5) нүктесіндегі fxx-ті есептеу мүмкін емес. Мұны шешу үшін туындыларды сандық түрде жуықтау қолданылады, мысалы, шекті элементтер әдісі немесе шекті айырмашылықтар әдісі. Біз бұл қиындықтарды ескермей, мәселенің басқа бір жағына назар аударамыз.
A typical way of doing this is to sample f at regular intervals in the square [0,1] × [0,1]. For instance, we could take 8 samples in the x direction at x = 0.1, 0.2, , 0.8 and 0.9, and 8 samples in the y direction at similar coordinates. We would then have 64 samples of the square, at places like (0.2,0.8) and (0.6,0.6). The goal of the computer program would be to calculate the value of f at those 64 points, which seems easier than finding an abstract function of the square. There are some difficulties, for instance it is not possible to calculate fxx(0.5,0.5) knowing f at only 64 points in the square. To overcome this, one uses some sort of numerical approximation of the derivatives, see for instance the finite element method or finite differences. We ignore these difficulties and concentrate on another aspect of the problem.
Доменнің ыдырауы
Бұл бізді домендік ыдырау әдістеріне жеткізеді. Егер [0,1] × [0,1] доменін екі субдоменге – [0,0.5] × [0,1] және [0.5,1] × [0,1] – бөлсек, әрқайсысында тек үлгілік нүктелердің жартысы болады. Сондықтан, әрбір субдоменде біздің модельдік мәселенің бір түрін шешуге тырысамыз, бірақ бұл жолы әрбір субдоменде тек 32 үлгілік нүкте болады. Соңында, әрбір субдомендегі шешімдерді ескере отырып, біз оларды үйлестіріп, [0,1] × [0,1] доменіндегі бастапқы мәселенің шешімін алуға тырысамыз.
Which brings us to domain decomposition methods. If we split the domain [0,1] × [0,1] into two subdomains [0,0.5] × [0,1] and [0.5,1] × [0,1], each has only half of the sample points. So we can try to solve a version of our model problem on each subdomain, but this time each subdomain has only 32 sample points. Finally, given the solutions on each subdomain, we can attempt to reconcile them to obtain a solution of the original problem on [0,1] × [0,1].
Доменді ыдырау алгоритмі
Өкінішке орай, техникалық себептерге байланысты 64 нүктелі (64x64 сызықтық теңдеулер жүйесі) торды 32 нүктелі екі торға (32x32 сызықтық теңдеулер жүйесі) бөліп, 64x64 жүйесіне жауап алу әдетте мүмкін емес. Оның орнына, келесі алгоритм іске асырылады:
Unfortunately, for technical reasons it is usually not possible to split our grid of 64 points (a 64×64 system of linear equations) into two grids of 32 points (two 32×32 systems of linear equations) and obtain an answer to the 64×64 system. Instead, the following algorithm is what actually happens:
1) 64×64 жүйесінің жуық шешімімен бастаңыз. 2) 64х64 жүйесінен жуық шешімді жақсарту үшін екі 32х32 жүйесін жасаңыз. 3) Екі 32х32 жүйесін шешіңіз. 4) Екі 32х32 шешімдерін "біріктіріп", 64х64 жүйесінің жуық шешімін жақсартыңыз. 5) Егер шешім әлі де жеткіліксіз болса, 2-ден қайталаңыз. Бұл алгоритм 64x64 базалық жүйесін шешуге қарағанда артықшылықтары бар екі жағдайда мүмкін. Біріншіден, егер алгоритмнің қайталану саны аз болса, екі 32x32 жүйесін шешу 64x64 жүйесін шешуге қарағанда тиімдірек болуы мүмкін. Екіншіден, екі 32x32 жүйесін бір компьютерде шешу міндетті емес, сондықтан бұл алгоритм бірнеше компьютердің мүмкіндіктерін пайдалану үшін параллель түрде орындалуы мүмкін. Шындығында, параллельдік қолданбай, бір компьютерде 64x64 жүйесінің орнына екі 32x32 жүйесін шешу тиімді болмауы мүмкін. Дегенмен, егер біз екіден астам кіші домендерді қолдансақ, жағдай өзгеруі мүмкін. Мысалы, біз 16х16-дағы төрт мәселені пайдалана аламыз, оларды шешу домендік жіктеу алгоритмі бірнеше рет қайталанса да, жалғыз 64х64 мәселені шешуден артық болуы мүмкін.
1) Begin with an approximate solution of the 64×64 system. 2) From the 64×64 system, create two 32×32 systems to improve the approximate solution. 3) Solve the two 32×32 systems. 4) Put the two 32×32 solutions "together" to improve the approximate solution to the 64×64 system. 5) If the solution isn't very good yet, repeat from 2. There are two ways in which this can be better than solving the base 64×64 system. First, if the number of repetitions of the algorithm is small, solving two 32×32 systems may be more efficient than solving a 64×64 system. Second, the two 32×32 systems need not be solved on the same computer, so this algorithm can be run in parallel to use the power of multiple computers. In fact, solving two 32×32 systems instead of a 64×64 system on a single computer (without using parallelism) is unlikely to be efficient. However, if we use more than two subdomains, the picture can change. For instance, we could use four 16×16 problems, and there's a chance that solving these will be better than solving a single 64×64 problem even if the domain decomposition algorithm needs to iterate a few times.