5.5. Что еще почитать
Как вы понимаете, на одном занятии невозможно освоить принципы отладки и тестирования в полной мере. Если вы намерены совершенствовать свое мастерство программиста, вам придется ознакомиться с более серьезными работами по этому вопросу, чем эти краткие заметки.
Надо сказать, что такой литературы, которая учила бы принципам программирования, а не синтаксическим правилам какого-либо языка программирования не так уж много. «Программистов часто учат программировать и редко – отладке» (ван Тассел).
Могу порекомендовать следующие книги, в которых вопросы отладки и тестирования подробно рассмотрены:
Ван Тассел Д. Стиль, разработка, эффективность, отладка и испытания программ. 1981
Керниган, Пайк. Практика программирования. 2004
Иванова Г.С. Технология программирования. 2002
5.6. Задания
Написать программу решения дифференциальных уравнений по методу Эйлера. При отладке и тестировании вести учет ошибок. Получить решение этой же задачи, используя библиотечную функцию MATLAB’а. Сравнить полученные результаты
№ |
Задача Коши для уравнения первого порядка |
Задача Коши для уравнения высшего порядка |
|
1 |
|
|
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
|
6 |
|
|
|
7 |
|
|
|
8 |
|
|
|
9 |
|
|
|
10 |
|
|
|
11 |
|
|
|
12 |
|
|
|
13 |
|
|
|
14 |
|
|
|
15 |
|
|
|
16 |
|
|
|
17 |
|
|
|
18 |
|
|
|
19 |
|
|
|
20 |
|
|
5.7. Справочная информация
Обыкновенное дифференциальное уравнение 1-го порядка
Рис. 1
.
Такая постановка задачи решения дифференциальных уравнений называется задачей Коши.
Рис. 2
Задача Коши для нормальной системы обыкновенных дифференциальных уравнений записывается в виде
,
или в матричной форме следующим образом
,
,
где
,
,
.
Система дифференциальных уравнений связывает независимую переменную x, искомые функции y1, y2, ..., yn и их первые производные. В данном случае решение задачи Коши заключается в отыскании функций y1 = y1(x), y2 = y2(x),..., yn = yn(x), обращающих каждое уравнение системы в тождество на конечном или бесконечном интервале (a, b) и удовлетворяющих начальным условиям.
Такая форма записи задачи Коши является канонической для систем обыкновенных дифференциальных уравнений. К ней могут быть приведены как любые другие формы представления систем дифференциальных уравнений, разрешенных относительно старших производных, так и аналогичные дифференциальные уравнения высших порядков. Приведение дифференциальных уравнений высших порядков к нормальной системе дифференциальных уравнений осуществляется по следующей схеме. Если дана задача Коши следующего вида
,
,
,
,
… ,
,
то замена
,
,
,
… ,
,
приводит ее к
,
что является задачей Коши для нормальной системы дифференциальных уравнений.
Для решения такой задачи Коши используются те же методы, что для обыкновенных дифференциальных уравнений 1-го порядка. Это обуславливается тем, что матричная форма записи задачи Коши для нормальной системы полностью совпадает с ее формулировкой для этих уравнений. Единственным отличием является то, что вместо функций y(t) и f(t,y) используются вектор-функции y и f, состоящие из n функций y1(t), y2(t),...,yn(t) и f1(t,y1,...,yn), f2(t,y1,...,yn),..., fn(t,y1,...,yn), соответственно. При этом расчетные схемы методов и оценки их погрешностей сохраняются.
Метод Эйлера
Он является старейшим методом решения задачи Коши и заключается в последовательном применении следующих формул
,
,
,
Рис. 3
,
.
Метод Эйлера - самый простой метод численного интегрирования. Он относится к методам первого порядка точности, поскольку его решение совпадает с истинным только в том случае, когда истинное решение является линейной функцией y = a1 + a2t. Его погрешность k на каждом шаге пропорциональна величине h2. Это обусловлено тем, что в качестве направления, определяющего положение следующей точки численного решения, используется касательная в крайней левой точке каждого отрезка [tk, tk+1]. Из рис.3 видно, что для получения более точного численного решения надо использовать некоторое промежуточное направление между направлениями касательных в крайних точках рассматриваемого отрезка.
Соотношения метода Эйлера для нормальной системы в матричной форме имеют вид
,
.
или в развернутой форме
,
.
Геометрическая интерпретация работы метода Эйлера решения задачи Коши для нормальной системы идентична его геометрической интерпретации для дифференциальных уравнений 1-го порядка. Однако в данном случае движение осуществляется вдоль некоторой гиперкривой в (n+1)-мерном пространстве переменных t, y1, y2,...,yn.
