Метод прогонки. Разработка SDI-приложения.
Это соотношение дает две рекуррентные формулы для коэффициентов:
di=-Ci/(ai*di-1+bi) (10) ei=(fi – ai*ei-1) /(aidi-1+bi) (11)
Цикл вычисления последовательности коэффициентов в соответствии с этими формулами носит название прямого хода прогонки. Начальные значения коэффициентов определяются предварительно заданным граничным условием (6):
do=yo, eo=бo,
Цикл прямого хода повторяется N-1 раз. Последними будут вычислены коэффициенты dN-1 и eN-1, которые связывают функции в двух узлах вблизи правой границы:
Un-1=dn-1Un+en-1 (12)
Если на правой границе задано условие первого рода Un = с, то уже можно вычислить Un-1 по формуле (12) и далее продолжать обратный ход прогонки, используя уравнения (9) при I = N -1,…, 1, 0. Если условие более сложное, то вместе с уравнением (12) надо рассмотреть уравнение (7), определяющее граничное условие на правой границе. Напомним его:
Un=ynUn-1+бn (7)
Соотношения (7) и (12) составляют систему из двух уравнений с двумя неизвестными. Используя определители, запишем ее решение.
Un-1=(en-1+бndn-1)/(1-yndn-1) (13) Un=(бn+ynen-1)/(1-yndn-1)
Таким образом, мы нашли значения в двух узлах, лежащих вблизи правой границы расчетной области. Теперь, используя формулу (9) и уменьшая индекс i от N= 2 до 0, можно вычислить все неизвестные £/.. Этот процесс носит название обратного хода прогонки. Почему-то в голову приходит лозунг нашего времени: "Цели ясны, задачи определены. За работу, товарищи!" Нам осталось всего лишь реализовать описанный алгоритм в виде MFC-приложения.
Разработка SDI-приложения
Создайте новый проект типа MFC Application и назовите его Heat, несмотря на то что наша задача немного переросла задачу расчета стационарного теплового поля.
- При выборе типа приложения установите переключатель Select application type в положение Single Document и снимите для разнообразия флажок Document/View architecture support.
- На странице User Interface Features установите флажок Maximized, с тем чтобы окно приложения при начальном запуске открывалось полностью.
- На странице Advanced Features можно снять флажок ActiveX Controls.
- Нажмите кнопку Finish.
Если вам хочется увидеть, как ведет себя заготовка подобного рода, то запустите приложение (CTRL + F5) и убедитесь, что его возможности соответствуют стандарту SDI. Откройте файл StdAfx.h и вставьте сакраментальные коды подключения нужных библиотек:
#include <vector> using namespace std;