Численное решение краевой задачи для уравнения теплопроводности, страница 2

Другой (нестрогий) способ тестирования состоит в задании некоторых простых входных данных, для которых можно предсказать качественное поведение решения. Выбор задач такого рода очень широк, зависит от воображения и от того, насколько нам близка физика. Если замечена практическая сходимость  решения при детализации пространственной и временной сетки, то в этом случае можно сделать также и количественные апостериорные оценки. Для этого за "точное" решение принимают приближенное решение, полученное на самой детальной сетке, а решения на ряде менее детальных сетках сравнивают  с этим решением, принятым за точное.

В обоих случаях ошибку можно исследовать на предмет ее соответствия  теоретически ожидаемому порядку погрешности.


ПРИЛОЖЕНИЕ 1.

Аппроксимация первых производных в граничных условиях.

Пусть на левой границе первая производная аппроксимируется  по (k+1) точке с коэффициентами С m (m=0, …, k)

(Δu)0 = (1/h) Σ Cm u m   (Σ – знак суммирования по m от 0 до k ).             (5)

Легко показать, что Δu =u x +O (h k), если вектор-столбец C  удовлетворяет системе уравнений

W(0, 1, …, m) C = P,                                                                                              (6)

где W – определитель Вандермонда, P – вектор-столбец с компонентами (0, 1, 0, …, 0), т.е.

1      1      1              1         1                           0

0      1      2             k-1       k                          1

W=  ……………………………..   ,             P =   0

……………………………..                        …

0      1      2k         (k-1)k     kk                          0

В общем случае система (6) имеет решение

Cm = (-1)m+1 (1 / m) Ckm, (m = 1, …, k), C0 = –(C1 + C2 + … + Ck)               (7)

где Ckm – число сочетаний из k по m (доказать в качестве самостоятельного упражнения!).

В данном случае  нас интересуют только два варианта: k = 2 и k = 4.

Если Вы не решили систему (6) в общем случае, решите ее в этих двух случаях и проверьте, совпадает ли решение с приведенным в формуле (7).

На правой границе

(Δu)N = (1/h) Σ B m u N-m  (Σ – знак суммирования по m от 0 до k ).                    (8)

Вектор B удовлетворяет системе уравнений

W(0, -1, …, -m) B = P,                                                                                            (9)

Легко установить, что Вm = – C  (Докажите это самостоятельно!)

По вопросу решения системы уравнений с "длинными" граничными условиями см. Приложение 2.


ПРИЛОЖЕНИЕ 2.

Реализация трехточечной прогонки с "длинными" граничными условиями

Классическая прогонка решает трехточечные разностные уравнения с одно-двухточечными граничными условиями. Иначе говоря, решает систему  Mu = F, где матрица M имеет трехдиагональную структуру

*  *  0  0      …   0   0  0  0

*  *  *  0      …   0   0  0  0

0  *  *  *      …   0   0  0  0

………………………

0  0  0  0      …   *  *  *  0

0  0  0  0      …   0  *  *  * 

0  0  0  0      …   0  0  *  * 

При "длинных" граничных условиях структура матрицы M отличается от приведенной первой и последней строками, в которых находится более двух ненулевых элементов

*  *  *  * … *  0      …   0   0  0  0

*  *  *  0    ………  …   0   0  0  0

0  *  *  *     ……… …   0   0  0  0

………………………

0  0  0  0      … ……      *  *  *  0

0  0  0  0      … ….         0  *  *  * 

0  0  0  0      …  0  * …. *  *  *  * 

Очевидно, вычитанием из первой  (последней) строки линейной комбинации нескольких ближайших строк матрица приводится к трехдиагональному виду. Этот процесс можно осуществлять рекурсивно, на каждом шаге уменьшая длину  строки на единицу (при этом каждый раз требуется пересчитывать только два предпоследних элемента) либо методом неопределенных коэффициентов, решая сопряженную задачу для определения коэффициентов подходящей линейной комбинации уравнений, которую следует вычесть из граничного условия, чтобы получить двухточечное модифицированное граничное условие. Это может делать с помощью программы или, если длина крайних строк не очень велика, искать вручную модифицированное граничное условие.

Замечание. Операции, проводимые со строками матрицы M, не следует забывать проводить также с правыми частями соответствующих уравнений. Иначе говоря, оперировать нужно с расширенной матрицей.