|
Запишем для уравнения (11.2) схему предиктор-корректор:
предиктор
| |
\(\displaystyle \frac{u_{j,k}^{n+1/4} - u_{j,k}^{n}}{\Delta t/2} = \sigma \frac{u_{j+1,k}^{n+1/4} - 2u_{j,k}^{n+1/4} + u_{j-1,k}^{n+1/4}}{h_x^2},\) |
(11.9) |
| | \(\displaystyle \frac{u_{j,k}^{n+1/2} - u_{j,k}^{n+1/4}}{\Delta t/2} = \sigma \frac{u_{j,k+1}^{n+1/2} - 2u_{j,k}^{n+1/2} + u_{j,k-1}^{n+1/2}}{h_y^2};\) |
|
корректор
| |
\(\displaystyle \frac{u_{j,k}^{n+1} - u_{j,k}^{n}}{\Delta t} = \sigma \frac{u_{j+1,k}^{n+1/2} - 2u_{j,k}^{n+1/2} + u_{j-1,k}^{n+1/2}}{h_x^2} + \sigma \frac{u_{j,k+1}^{n+1/2} - 2u_{j,k}^{n+1/2} + u_{j,k-1}^{n+1/2}}{h_y^2} - k u_{j,k}^{n+1/2} + f(x_j, y_k).\) |
|
Как и схема переменных направлений (11.8), схема предиктор-корректор (11.9) является
абсолютно устойчивой (абсолютную устойчивость схемы обеспечивает предиктор) и имеет
второй порядок аппроксимации по времени (благодаря наличию корректора). Таким образом,
в данном случае допускается такая же величина шага итерации, как и при использовании схемы
переменных направлений (11.8), для получения результатов с такой же точностью. Количество
итераций как и в случае схемы переменных направлений (11.8) определяется соотношением:
| |
\(\displaystyle n < \frac{1}{h}.\) |
|
Каждая из подсхем, входящих в состав предиктора, решается с помощью
метода прогонки. Коэффициенты, соответствующие уравнению (4.10), имеют вид:
для первой подсхемы предиктора
| |
\(\displaystyle a_j = c_j = -\frac{\sigma}{2} \frac{\Delta t}{h_x^2}, \qquad b_j = 1 + \sigma \frac{\Delta t}{h_x^2}, \qquad \xi_{j,k}^{n} = u_{j,k}^{n};\) |
|
для второй подсхемы предиктора
| |
\(\displaystyle \widetilde{a}_k = \widetilde{c}_k = -\frac{\sigma}{2} \frac{\Delta t}{h_y^2}, \qquad \widetilde{b}_k = 1 + \sigma \frac{\Delta t}{h_y^2}, \qquad \widetilde{\xi}_{j,k}^{\,n+1/4} = u_{j,k}^{n+1/4}.\) |
|
Легко видеть, что для обеих подсхем достаточное условие сходимости прогонки (4.16) выполняется.
Алгоритм решения схемы предиктор-корректор (11.9), а также методики определения прогоночных коэффициентов
и решения на правой границе аналогичны описанным ранее.
Также как и в случае метода простой итерации, в качестве нулевой итерации
( начального условия, необходимого для решения в связи с введением фиктивной производной по времени)
обычно задают свободный член:
| |
\(\displaystyle u_{j,k}^0 = f(x_j, y_k).\) |
|
Расчёт итераций следует продолжать до тех пор, пока итерационный процесс не сойдётся, т.е. пока не будет
выполняться условие (11.3), в разностном представлении соответствующее неравенству:
| |
\(\displaystyle \left\|u^{n+1} - u^n\right\| = \sqrt{h^2\sum_{k=1}^{N}\sum_{j=1}^{N}(u_{j,k}^{n+1} - u_{j,k}^n)^2} \le \varepsilon.\) |
|
Итерационным выражением для подсхем, входящих в состав предиктора, является прогоночное соотношение (4.11),
имеющее вид:
для первой подсхемы предиктора \(\displaystyle u_{j,k}^{n+1/4} = \alpha_j u_{j+1,k}^{n+1/4} + \beta_j;\)
для второй подсхемы предиктора \(\displaystyle u_{j,k}^{n+1/2} = \widetilde{\alpha}_k u_{j,k+1}^{n+1/2} + \widetilde{\beta}_k.\)
Итерационное выражение для корректора имеет вид:
| |
\(\displaystyle u_{j,k}^{n+1} = u_{j,k}^{n} + \sigma \Delta t \, \lambda_{xx} u_{j,k}^{n+1/2} + \sigma \Delta t \, \lambda_{yy} u_{j,k}^{n+1/2} - k \Delta t \, u_{j,k}^{n+1/2} + \Delta t \, f(x_j, y_k).\) |
|
|