Метод Кранка-Ніколсон

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Метод Кранка-Ніколсон — це спеціальний чисельний метод розв'язку диференціальних рівнянь з частинними похідними в обчислювальній математиці, за допомогою особливої схеми методу скінченних різниць, зокрема для рівняння теплопровідності та дифузії. Це неявний метод 2 порядку і є чисельно стабільним щодо кроку різницевої сітки. Метод винайшли в середині 20-го століття англійські вчені Джон Кранк та Филліс Ніколсон.

Для рівняння теплопровідності, дифузії і багатьох інших схожих рівнянь можна довести, що метод Кранка-Ніколсон є безумовно чисельно стабільним. Проте, при використанні великого кроку сітки (коли \Delta t/\Delta x^2 > 0.5) розв'язок може містити сильні коливання. У випадку, коли крок різницевої сітки змінити неможливо, при нестабільності розв'язку рекомендується використовувати менш точний, але також чисельно стабільний неявний зворотній метод Ейлера.

Опис методу[ред.ред. код]

Різницева схема сітки в методі Кранка-Ніколсон для одновимірної задачі

Неявна схема, яку винайшли Джон Кранк та Филліс Ніколсон ґрунтується на чисельному наближенню параболічного диференціального рівняння другого порядку. Як приклад візьмемо одновимірне рівняння теплопровідності

u_{t}(x,t)=c^{2}u_{xx}(x,t)

для 0\le x<a та 0<t<b з початковою умовою u(x,0)=f(x) та крайовими умовами u(0,t)=g_{1}(t) ; u(a,t)=g_{2}(t) в точці (x,t+\Delta t/2) котра знаходиться між рядами різницевої сітки з кроком h=\Delta x та k=\Delta t.

Тоді для похідних отримаємо

u_{t}(x,t+k/2)   =       \frac{u(x,t+k)-u(x,t)}{k}+O(k^{2})
u_{xx}(x,t+k/2)  =       \frac{1}{2h^{2}}\left(u(x-h,t+k)-2u(x,t+k)+u(x+h,t+k)+u(x-h,t)-2u(x,t)+u(x+h,t)\right)+O(h^{2})

Тобто використовується середнє значення наближень похідних u_{xx}(t,k) та u_{xx}(x,t+k) для наближення u_{xx}(x,t+k/2)

Підставляючи ці вирази в рівняння теплопровідності (і спрощуючи запис u(x_{j},t_{n})\rightarrow u_{j,n} ) отримаємо

\frac{u_{j,n+1}-u_{j,n}}{k}      =       c^{2}\frac{u_{j-1,n+1}-2u_{j,n+1}+u_{j+1,n+1}+u_{j-1,n}-2u_{j,n}+u_{j+1,n}}{2h^{2}}

Використовуємо для зручності r=c^{2}k/h^{2} і переносимо всі значення функції з часом t+k в ліву частину рівняння.

Після впорядкування членів рівняння отримаємо неявну різницеву схему для j=2,3,...,N-1

-r\, u_{j-1,n+1}+(2+2r)u_{j,n+1}-r\, u_{j+1,n+1}=(2-2r)u_{j,n}+r(u_{j-1,n}+u_{j+1,n})

Рівняння у такій формі має вигляд тридіагональної системи алгебраїчних рівнянь

AX=B

і розв'язується звичайними прямими чи ітераційними методами лінійної алгебри.

В схемі Кранка-Ніколсон використовується шість точок основної різницевої сітки для наближення проміжної точки u_{xx}(x,t+k/2), на якій базуються всі чисельні наближення.