Лекции по вычмату преподавателя Друка / L010
.doc|
ЛЕКЦИЯ 10. НЕЯВНЫЕ РАЗНОСТНЫЕ СХЕМЫ И РЕШЕНИЕ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ НА ПК. |
10.1 Неявная разностная схема для уравнения Пуассона.
Рассмотрим
уравнение Пуассона для двух переменных
,
в прямоугольной области с размерами
сторон
,
![]()
|
|
(10.1) |
Обычно
для уравнения Пуассона задаются граничные
условия, т.е. значения функции "
"
на сторонах прямоугольника считаем
известными. Нужно определить значения
внутри прямоугольника, см. рис. 9.1.
Пусть
шаг дискретизации по обеим координатам
одинаков и равен
.
Для вторых производных выберем формулу
численного дифференцирования (4.4), что
дает разностную схему
|
|
(10.2) |
Этой разностной схеме соответствует пятиточечный шаблон рис.10.1, который называют ''крестом''.
|
|
|
Рис. 10.1. Шаблон "крест" для уравнения Пуассона. |
В какое
бы место рассматриваемой области, см.
рис.9.1, мы не поместили этот шаблон,
уравнение (10.2) будет содержать три или
более неизвестных. Это не позволяет
явно вычислять значения функции "
"
на следующем слое, как это выполнялось
для явной схемы (9.8). Поэтому разностная
схема (10.2) называется неявной.
При
трех переменных
,
,
«крест» имеет еще одно направление
перпендикулярно плоскости. Чтобы найти
неизвестные значения в случае неявной
схемы, необходимо записать уравнение
(10.2) для каждого внутреннего узла
рассматриваемой сетки. В результате
получим систему линейных уравнений, в
которой количество неизвестных равно
количеству уравнений. Например, если
имеем
внутренних узлов по
и
внутренних узлов по y,
то количество неизвестных и уравнений
равно
,
т.е. обычно очень велико.
Отметим, что полученная система будет иметь пятидиагональный вид, т.е. состоять, в основном, из нулей, расположенных регулярно. Для решения полученной системы, как и в случае разреженных матриц (см. лекцию 3), применяют специальные эффективные методы, а не метод Гаусса.
Следовательно, в случае явных разностных схем каждое неизвестное значение определяется путем простых вычислений по явной формуле, например, (9.8), а в случае неявных разностных схем решается система линейных уравнений для определения всех или группы неизвестных.
Вычисления в случае неявных разностных схем существенно сложнее, чем в случае явных, но у неявных схем есть очень важное достоинство – они всегда устойчивы. Это означает, что при неправильном соотношении шагов дискретизации не будет генерироваться и усиливаться вычислительный шум, что характерно для явных схем.
На
рис.10.2 для случая двух независимых
переменных показано как зависит
погрешность решения
от шага дискретизации
по одной переменной, а шаг дискретизации
по другой переменной является параметром
для каждой кривой. Возрастание погрешности
при уменьшении шага
для явных схем соответствует неустойчивости.
Отметим, что в случае неявных схем при
возможно проявление погрешностей
округления при численном дифференцировании,
рассмотренных в лекции 4, но столь малые
шаги при решении уравнений в частных
производных не используются.
|
|
|
Рис.
10.2 Зависимость погрешности
|
10.2. Контроль точности.
Пусть
при произвольно выбранных шагах
дискретизации
и
получено решение уравнения в частных
производных в узлах сетки рис.9.1. Для
контроля, как и в лекции 7 при решении
ОДУ, нужно выполнить повторный расчет
с другими шагами или другим методом.
Обычно расчет повторяют с шагами
,
и
сравнивают два решения в узлах первой
(более крупной) сетки. За оценку погрешности
можно взять значение
|
|
(10.3) |
где
номера узлов первой сетки,
– первое решение,
– второе решение в тех же точках
.
При
уменьшении шагов дискретизации в случае
явных разностных схем необходимо
обращать внимание на условие устойчивости.
Например, условие (9.24) показывает, что
для сохранения устойчивости решение
уравнения теплопроводности при контроле
точности целесообразно выполнять с
уменьшенными шагами
и
.
10.3. Решение уравнений в частных производных на ПК.
При моделировании реальных физических процессов, например, движения носителей в полупроводниковых структурах или погодных явлений, нужно учитывать все три пространственные координаты и время, т.е. должны рассматриваться функции четырех переменных.
Пусть
нужно найти решение
уравнения в частных производных в
области пространства, имеющей форму
куба с единичными сторонами, т.е. считаем,
что все независимые переменные изменяются
от нуля до 1, или, другими словами, они
нормированы. Время
нормировано таким же образом.
Для решения методом конечных разностей выбираем сетку с количеством узлов 1000 по каждой переменной, что является типичным значением в практических расчетах. Получаем всего 1012 узлов. Положим, что используется простая явная разностная схема и для вычисления значения функции в каждом узле требуется 10 операций центрального процессора. Тогда для определения значений функции во всех узлах потребуется 1013 операций.
Будем считать производительность ЭВМ, т.е. количество выполняемых центральным процессором операций в секунду, равной величине её тактовой частоты. Это характерно для современных компьютеров, выполняющих одну операцию за один такт (RISC - архитектура). Например, положим производительность рабочей станции на базе процессора Intel Pentium4 с тактовой частотой 4,2ГГц равной 4200 млн. операций/сек, а ПК (Intel Celeron с тактовой частотой 2,4ГГц) - 2400 млн. операций/сек.
Разделив количество операций на производительность, получим время решения одного уравнения в частных производных. При выбранных производительностях получаем около двух часов вычислений для ПК и менее одного часа для рабочей станции! И это без контроля точности, который проводить необходимо и, кроме того, обычно решается не одно уравнение, а система нескольких уравнений в частных производных.
Поэтому
в настоящее время стараются использовать
упрощенные математические модели
распределенных систем, в которых,
например, пренебрегают зависимостью
от одной пространственной координаты,
что уменьшает время решения в 1000 раз. В
случае учета всех переменных
,
,
,
применяют более грубые сетки или более
эффективные методы решения, например,
метод конечных элементов (МКЭ).
Кроме того, для эффективного решения уравнений в частных производных возможно использование многопроцессорных вычислительных комплексов и параллельных алгоритмов.


