
- •С. В. Трубников численные методы
- •Isbn 5-89838-334-7
- •Оглавление
- •Предисловие
- •1. Содержание курса
- •2. Практические работы (1-3)
- •2.1. Практическая работа № 1. Многочленная, кусочно-многочленная, сплайновая и обратная интерполяция
- •2.2. Практическая работа № 2. Наилучшее среднеквадратическое приближение. Тригонометрическая интерполяция. Наилучшее равномерное приближение
- •2.3. Практическая работа № 3. Численное дифференцирование. Метод Рунге-Ромберга
- •3. Контрольная работа № 1
- •4. Практические работы (4-5)
- •4.1. Практическая работа № 4. Численное интегрирование
- •4.2. Практическая работа № 5. Численные методы решения обыкновенных дифференциальных уравнений
- •5. Контрольная работа № 2
- •6. Задания для домашней работы
- •6.1. Тема 1. Многочленная, кусочно-многочленная, сплайновая и обратная интерполяция Задание 1
- •Задание 2
- •6.2. Тема 2. Наилучшее среднеквадратическое приближение. Тригонометрическая интерполяция. Наилучшее равномерное приближение Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •6.3. Тема 3. Численное дифференцирование. Метод
- •6.4. Тема 4. Численное интегрирование Задание 1
- •Задание 2
- •6.5. Тема 5. Численные методы решения обыкновенных
- •Задание 1
- •7. Контрольные вопросы и задания
- •7.1.Теоретические вопросы Тема 1. Многочленная, кусочно-многочленная, сплайновая и обратная интерполяция.
- •Тема 2. Наилучшее среднеквадратическое приближение. Тригонометрическая интерполяция. Наилучшее равномерное приближение.
- •Тема 3. Численное дифференцирование. Метод Рунге-Ромберга.
- •Тема 4. Численное интегрирование.
- •Тема 5. Численные методы решения обыкновенных дифференциальных уравнений и систем.
- •7.2. Практические задания Тема 1. Многочленная, кусочно-многочленная, сплайновая и обратная интерполяция.
- •Тема 2. Наилучшее среднеквадратическое приближение. Тригонометрическая интерполяция. Наилучшее равномерное приближение.
- •Тема 3. Численное дифференцирование. Метод Рунге-Ромберга.
- •Тема 4. Численное интегрирование.
- •Тема 5. Численные методы решения обыкновенных дифференциальных уравнений и систем.
- •6. Найти точное решение краевой задачи:
- •Список использованной и рекомендуемой литературы
4.2. Практическая работа № 5. Численные методы решения обыкновенных дифференциальных уравнений
и систем
Для студентов специальности «Математическое обеспечение и администрирование информационных систем» отведено 4 часа практических занятий, а для студентов специальности «Программное обеспечение вычислительной техники и автоматизированных систем» 2 часа.
План занятий:
Актуализация понятий обыкновенного диф-ференциального уравнения, порядка дифференциального уравнения, частного и общего решения дифференциального уравнения, решения задачи Коши и краевой задачи, метода разделения переменных, методов решения однородных и линейных дифференциальных уравнений 1-го порядка.
Повторение понятия точного и приближенного сеточного решения задачи Коши, схем Эйлера и Рунге-Кутта 4-го порядка как для одного уравнения, так и для системы уравнений.
Повторение многошаговых методов Адамса.
Повторение метода пристрелки и разностного метода решения краевых задач.
Решение примеров.
Консультирование студентов по выполнению домашней работы.
Рассматриваемые примеры:
1. Составить алгоритм для вычисления приближённого решения задачи Коши
методом Рунге-Кутта четвертого порядка точности (число отрезков разбиения N считается заданным). Записать его на алгоритмическом языке.
Решение:
Исходными данными
для алгоритма являются: N,
a,
b,
,
а также функция
.Результаты:
- приближенные значения
.
Здесь
,
,
.
Вычислительная схема метода Рунге-Кутта 4-го порядка точности записывается в виде
,
Поскольку значение
N
может быть достаточно велико и заранее
не известно, в алгоритме мы не будем
использовать табличные переменные
,
.
Для текущих расчетов мы введем простые
переменныеx
и u,
а результаты будем записывать в файл
вывода в следующей последовательности:
………
Кроме того, мы
используем в качестве результата в
заголовке алгоритма величину
.
Нам это понадобится в дальнейшем при
записи алгоритма повторного счета в
примере 3. Для записи в файл значения
любой величиныp
мы введем команду запись
(p),
а для перевода строки – команду перевод.
Запишем теперь алгоритм вычисления приближенного решения задачи Коши.
алг
Метод Рунге-Кутта для 1 уравнения и с
заданным шагом (арг
вещ
a,
b,
,цел
N,
рез
вещ
z)
нач
вещ
x,
u,
h,
;
цел
n
x:=a;
u:=
;
;
запись(x);
запись(u);
перевод
| Запись в файл вывода
,
нц для n от 0 до N-1 | Начало цикла метода Рунге-Кутта.
|
|
|
|
|
|
запись(x);
запись(u)
| Запись в файл вывода
,
перевод | Переменные x и u здесь уже приняли значения,
| необходимые для выполнения следующего
| шага цикла.
кц | Конец цикла метода Рунге-Кутта.
кон
2. Составить алгоритм для вычисления приближённого решения задачи Коши
методом Рунге-Кутта
четвертого порядка точности с погрешностью,
не превышающей заданного положительного
числа
(число отрезков разбиенияN
вычисляется
методом повторного счета). Записать его
на алгоритмическом языке.
Решение:
Исходными данными
для алгоритма являются:
,
a,
b,
,
а также функция
.Результаты:
приближенные значения
.
Здесь
,
,
.
ЗначениеN
вычисляется
методом повторного счета.
Метод повторного счета представляет собой цикл, в котором вычисляются приближенные сеточные решения задачи Коши. На каждом шаге этого цикла величина N увеличивается в два раза. Для записи приближенных решений мы будем использовать один и тот же файл вывода. При этом каждый раз мы будем решение записывать с начала файла. Таким образом, каждое новое приближенное решение будет автоматически стирать в файле решение старое (новое приближенное решение вдвое длиннее старого). Когда заданная точность будет достигнута и цикл повторного счета свою работу закончит, в файле будет записано последнее приближенное решение, имеющее заданную точность.
При реализации метода повторного счета мы будем использовать алгоритм из примера 1.
Введем в алгоритмический язык цикл с постусловием, аналогичный циклу repeat в языке Паскаль:
нц повторять
Команды, повторяемые в цикле
кц пока не Условие окончания цикла
Запишем теперь алгоритм вычисления приближенного решения задачи Коши.
алг
Метод Рунге-Кутта для 1 уравнения с
автоматическим выбором шага (арг
вещ
a,
b,
,
)
нач
вещ
,
;цел
n,
N
|
Задание начального значения параметра
N
Метод Рунге-Кутта
для 1 уравнения и с заданным шагом (a,
b,
,N,
)
нц повторять | Начало цикла метода повторного счета
;
| Передача значения
с предыдущего шага
| цикла или начального значения.
;
| Удвоение значения параметра N.
Метод Рунге-Кутта
для 1 уравнения и с заданным шагом (a,
b,
,N,
)
кц
пока
не
| Конец цикла метода
| повторного счета
кон
3. Составить алгоритм для вычисления приближённого решения задачи Коши для системы дифференциальных уравнений:
;
методом Рунге-Кутта четвертого порядка точности (число отрезков разбиения N считается заданным). Записать его на алгоритмическом языке.
Решение:
Исходными данными
для алгоритма являются: N,
m,
a,
b,
,
,
… ,
,
а также функции
,
,
… ,
.Результаты:
- приближенные значения
.
Здесь
,
,
,
.
Вычислительная схема метода Рунге-Кутта 4 порядка точности в координатах записывается в виде:
,
Так же, как и в
алгоритме из первого примера, мы не
будем использовать табличные переменные
,
.
Для текущих расчетов мы введем простую
переменнуюx
и одномерный массив
,
а результаты будем записывать в файл
вывода в следующей последовательности:
………
Кроме того, в
качестве дополнительного результата
в заголовке алгоритма используем массив
z
[1:m],
такой, что
.
Это может понадобиться в дальнейшем
при записи алгоритма повторного счета.
Для записи в файл значения любой величины p мы введем команду запись (p), а для перевода строки – команду перевод.
Значения
мы будем брать из файла ввода. Они должны
быть записаны в файл ввода до начала
исполнения алгоритма в следующей
последовательности:
.
Для чтения очередного значения из файла ввода и присвоения его переменной p мы введем команду чтение (p).
Чтобы описать
множество функций
c
аргументом, мы введем функцию трех
аргументов:
,
где
массив с m
компонентами.
Запишем теперь алгоритм вычисления приближенного решения задачи Коши.
алг
Метод Рунге-Кутта для m
уравнений и с заданным шагом (арг
вещ
a,
b,
цел
m,
цел
N,
рез
вещ
таб
)
нач
вещ
x,
h,
вещ
таб
,
,
,
,
;
цел
n,
p
x:=a;
;
нц для p от 1 до m
чтение;
| Чтение из файла ввода начальных
|
данных:
кц
запись(x);
перевод
| Запись в файл вывода
нц для p от 1 до m
запись()
| Запись в файл вывода
кц
перевод
нц для n от 0 до N-1 | Начало цикла метода Рунге-Кутта
нц для p от 1 до m
|
кц
|
нц для p от 1 до m
|
кц
нц для p от 1 до m
|
кц
нц для p от 1 до m
|
кц
нц для p от 1 до m
|
кц
|
нц для p от 1 до m
|
кц
нц для p от 1 до m
|
кц
запись(x);
перевод
| Запись в файл вывода
нц для p от 1 до m
|
запись()
| Запись в файл вывода
|
кц
перевод | Переменная x и массив u здесь уже
| приняли значения, необходимые для
| выполнения следующего шага цикла
кц | Конец цикла метода Рунге-Кутта.
нц для p от 1 до m
|
кц
кон