Выполнить анализ кода нажатой в ответ на запрос клавиши: при нажатии “Y” повторить ввод снова, при нажатии “N” перейти в окно с меню.
Алгоритм поиска решения системы уравнений методом Рунге-Кутта-Мерсона в подпрограмме процедуре rukutm включает:
Создание окно для ввода исходных данных и вывода результатов вычисления.
Восстановления отображение курсора нормального размера соответствующей подпрограммой - процедурой.
Задание начального шаг-h, начальных значений xо,y10,…,yN0 и точности вычисления- ε.
Подпрограмме-процедуре задаём вид системы дифференциальных уравнений
В подпрограмме-функции задаём вид правой части уравнений
С помощью пяти циклов с управляющей переменной J=1,N вычисляем коэффициенты по формулам (7)-(11).
В последнем цикле находим решение системы дифференциальных уравнений по формуле (12) и погрешность по формуле (13).
Проверка выполнение условий (14) и (15). Если первое условие не выполняется то h:=h/2 и переходим к п.5.
Если выполняются оба условия, то значение xi+1=xi+h и Yj(i+1) выводим на экран.
Если второе условие не выполняется, то h:=h+h и переходим к п.5.
Вывести результаты вычислений в том же окне.
Вывести в окне запрос о продолжении вычислений с новыми исходными данными.
Выполнить анализ кода нажатой в ответ на запрос клавиши: при нажатии “Y” пoвторить ввод снова , при нажатии “N” перейти в окно с меню.
4. Идентификаторы программы
Для указания соответствия обозначений переменных в формулах математической формулировки и их идентификаторов в программе сведем их в таблицу 1:
Таблица 1
Обозначение параметров | Смысл параметра | |
В формулах | В программе | |
Y1…Yn | Y[1]…Y[n] | Начальные приближения |
ε | E | Точность результата |
h | H | Шаг интегрирования |
Кij | K[j] | Коэффициенты погрешности |
N | n | Количество уравнений |
F[1] | Первое уравнение системы | |
F[2] | Второе уравнение системы |
Остальные идентификаторы являются промежуточными или служебными.
5. Блок-схема алгоритма
5.1 Блок-схема алгоритма головной программы
Нет Да
#72 #80Да Нет Да Нет
5.2 Блок-схема алгоритма подпрограммы–процедуры runkut
e3:=0; |