багаторешітний метод для вирішення PDE


15

Мені потрібно просте пояснення мультисерединного методу чи деякої літератури про це.

Мені знайомі ітераційні методи, включаючи BiCGStab, CG, GS, Jacobi та попередні кондиціонування, але я початківець з багаторешітним методом.

Чи може хтось детально пояснити це чи хоча б надати чітко псевдокод чи вихідний код, навіть із хорошою літературою для початківців? Спасибі!

Відповіді:


15

Основна ідея мультирешітки - проекція. Я намагаюся думати про це так:

Припустимо, я хочу вирішити PDE з великою точністю, тому я переходжу до дискретизації домену (припустимо, використовуючи метод кінцевих різниць) на дуже тонкій сітці з великою кількістю та великою кількістю очок. Зрештою, я налаштовую свою систему рівнянь і я готовий її вирішити. Я намагаюся використовувати мій улюблений ітеративний вирішувач (jacobi, gauss seidel, градієнт спряжених тощо). Я продовжую чекати більше дня і розумію, що мій комп'ютер все ще намагається обчислити відповідь !!!

Причина, по якій ці ітераційні методи не працюють швидко, полягає в тому, що (як правило), коли ви встановлюєте велику систему рівнянь, як це, сама матриця має власні значення вкрай близькі до 1. Чому це має значення? Оскільки швидкість конвергенції багатьох ітеративних методів обернено пов'язана з найбільшою власною цінністю (див. Посилання Крістіана Класона на багатогранні навчальні слайди Брігга, частина 1, стор. 27). Отже, чим ближче найбільше власне значення до 1, тим повільніше ітераційний метод. (Примітка. Це трохи спрощує речі, але це допомагає мотивувати потребу в мультисеткі).

Очевидно, що проблему завжди швидше вирішити, якщо є менше невідомих (тобто на грубій сітці з меншою кількістю точок сітки). Але ще важливіше, що рішення (або приблизне рішення) на більш грубій сітці - це хороша відправна точка для вирішення проблеми на тоншій сітці. Це ключова ідея більшості (якщо не всіх) багатоядерних методів. Чому це так? Інтуїтивно це має сенс, але існує математично суворий спосіб виправдання цього.

Давайте розглянемо фур'є-режими помилки в ітеративному методі (задля аргументів, скажімо, jacobi або gauss seidel), застосованому до початкової проблеми тонкої сітки. Ми побачимо, що протягом перших кількох ітерацій більшість високочастотних (високо коливальних) помилок видаляється! Це чудово, але є низькочастотна (менш коливальна) помилка, яка все ще залишається і не минає швидко. Насправді, низькочастотна помилка не дозволяє за допомогою стандартного ітеративного методу швидко сходитися.

коли ми вирішуємо проблему на більш грубій сітці (скажімо, ітераційним методом, таким як jacobi або gauss-seidel), ми по суті здатні видаляти помилки нижчої частоти набагато швидше (тобто за меншою кількістю ітерацій), ніж на тонкій сітці . Отже, якщо ми вирішимо задачу грубої сітки, ми маємо рішення, помилки нижчої частоти яких значно зменшилися. Таким чином, це було б корисно як відправна точка для ітеративного методу на тоншій сітці.

Хоча існують різні мультирешітні методи, більшість з них функціонують за допомогою певного варіанту наступного:

  1. Почніть з проблеми тонкої сітки
  2. Проектуйте на грубу сітку (також відомий як обмеження )
  3. Орієнтовний розчин на грубій сітці (використовуючи інший розчинник)
  4. Проектуйте грубе рішення сітки на більш тонку сітку (також відому як подовження )
  5. Використовуючи проекцію від 4. як початкову здогадку, розв’яжіть задачу тонкої сітки ітераційним методом.

Для мене найважча частина мультисерединного методу - це проекції між сітками. Підручники Бріггса, запропоновані @ChristianClason, вирішують цю тему набагато краще, ніж я можу.


Дякую за детальну відповідь! Зараз у мене є основні знання про метод multigrdi. Зараз у мене є конкретні запитання щодо процесів обмеження та продовження. Я читав, що деякі матриці обмеження R та матриця інтерполяції M та формули на зразок A2 = RAI використовувались для проектування між сітками. Але я не розумів, як будувати матриці R і я ... Чи є ідеї з цього приводу?
Нурлан

Подивіться слайди 45-57 навчального підручника Бріггса (частина 1), який розмістив ChristianClason. Там Бріггс описує процес для геометричного мультисерединного методу. Це найпростіше пояснення, яке я можу знайти. Якщо у вас є додаткові запитання з цього приводу, сміливо публікуйте нове запитання! :)
Пол

15

Цей веб-сайт, можливо, не є добрим місцем для запиту детального пояснення з псевдокодом (як зазначено в FAQ , "Якщо ви можете уявити всю книгу, яка відповідає на ваше запитання, ви занадто багато запитуєте".), Тож ви можете захотіти почнемо з однієї з класичних книг на цю тему (перелічена нижче) і поверніться з конкретними питаннями щодо конкретних деталей, з якими ви маєте проблеми.


2
Бріггс - це справді добре!
vanCompute

5

Ще одна класика:

  • Весселінг, Вступ до багатомережних методів, Джон Вілей і сини, 1992.

Приклади кодів можна знайти на MGNet

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.