- •220201 - «Управление и информатика в технических системах» Коломна, 2013
- •Численные методы Методические указания к лабораторным работам
- •220201 - «Управление и информатика в технических системах» Коломна , 2013
- •Содержание
- •Введение
- •Лабораторная работа №1 Организация Windows-приложения в Delphi с использованием визуальных компонентов классов: tEdit, tLabel, tMemo, tButton. Программирование интерполяционных алгоритмов Цель работы
- •1. 1. Краткие сведения из теории
- •1.1.1. Понятия аппроксимации и интерполяции
- •1.1.2. Вычисление многочленов по схеме Горнера
- •1.2. Выполнение работы Исходные данные для выполнения работы
- •1.3. Контрольные вопросы
- •2.1. Краткие сведения из теории
- •2.1.1. Метод прямоугольников
- •2.1.2. Метод трапеций
- •2.1.3. Метод Симпсона
- •2.1.4. Алгоритм автоматического выбора шага
- •2.2. Выполнение работы Порядок выполнения работы
- •Исходные данные для выполнения работы
- •2.3. Контрольные вопросы
- •3.1. Краткие сведения из теории
- •3.1.1. Обзор методов решения систем решения линейных алгебраических уравнений
- •3.1.2. Метод Гаусса
- •Вычисление определителя
- •Прямой ход метода Гаусса
- •3.1.3. Метод Гаусса-Зейделя
- •3.2. Выполнение работы Порядок выполнения работы
- •Исходные данные для выполнения работы
- •3.3. Контрольные вопросы
- •Лабораторная работа №4 Использование графики в Delphi. Организация меню в приложении. Программирование итерационных алгоритмов решения нелинейных уравнений Цель работы
- •4.1. Краткие сведения из теории
- •4.1.1. Метод бисекции
- •4.1.2. Метод хорд
- •4.1.3. Метод касательных
- •4.1.4. Метод простой итерации
- •4.2. Выполнение работы Порядок выполнения работы
- •Исходные данные для выполнения работы
- •4.3. Контрольные вопросы
- •Лабораторная работа №5 Организация многооконного приложения в Delphi для решения о.Д.У. Одношаговыми разностными методами. Программная работа с файлами данных Цель работы:
- •5.1. Краткие сведения из теории
- •5.1.1. Метод Эйлера
- •5.1.2. Метод Эйлера с пересчётом
- •5.1.3. Метод Рунге-Кутта
- •5.1.4. Решение дифференциальных уравнений высшего порядка
- •5.2. Выполнение работы Порядок выполнения работы
- •Исходные данные для выполнения работы
- •5.3. Контрольные вопросы
- •Справка по работе с основным набором визуальных компонентов Delphi, требуемых при выполнении лабораторных работ
- •Компонент Окно выбора файла (tOpenDialog)
- •Компонент Окно сохранения файла (tSaveDialog)
- •Список использованной литературы
5.1.1. Метод Эйлера
Метод
основан на разложении функции
в ряд Тейлора в окрестности
:
.
Если мало, то члены, содержащие во второй и более высоких степенях, являются малыми и ими пренебрегают. Тогда
.
Значение
находим из дифференциального уравнения,
подставив в него начальные условия.
Таким образом можно получить приближённое
значение зависимой переменной при малом
смещении
от номинальной точки. Этот процесс можно
продолжать, используя соотношение
,
,
(5.4)
делая сколь угодно много шагов.
В
результате получен простейший алгоритм
решения задачи Коши, который называется
методом Эйлера, или методом ломаных.
Последнее связано с геометрической
интерпретацией процесса: искомая функция
заменяется ломаной линией, представляющей
собой отрезки касательных к этой функции
в узлах
.
При
достаточно малой величине шага
метод Эйлера даёт решение с большой
точностью, т.к. погрешность решения
близка к
на каждом шаге интегрирования. На рис.
5.1 приведена блок-схема решения задачи
Коши методом Эйлера.
Да
Нет
Рис. 5.1 Блок-схема метода Эйлера для задачи Коши
5.1.2. Метод Эйлера с пересчётом
Значение
правой части
уравнения (5.2) возьмём равным среднему
арифметическому между
и
.
Используя схему метода Эйлера (5.4),
получим:
,
(5.5)
Это
неявная схема, т.к.
входит и в правую и левую части. Здесь
применяют один из итерационных методов.
Но если имеется хорошее начальное
приближение
,
то можно построить решение с использованием
двух итераций следующим образом: считая
начальным приближением, вычисляем
первое приближение
по формуле метода Эйлера (5.4):
.
Новое значение подставляем вместо в (5.5) и находим окончательное значение :
.
(5.6)
Это модификация метода Эйлера, называемая методом Эйлера с пересчётом.
Метод Эйлера с пересчётом можно получить и иначе, используя разложение функции в ряд Тейлора:
.
Аппроксимируем вторую производную с помощью отношения конечных разностей:
.
Заменяя
и
,
где
найдено по методу Эйлера, приходим к
формуле метода Эйлера с пересчётом.
Здесь мы получили оценку погрешности
метода: на каждом шаге локальная
погрешность равна
,
суммарная – имеет порядок
.
Для
метода Эйлера с пересчётом рационально
вводить автоматический выбор шага в
каждом узле: если величина
,
то шаг увеличиваем, если
,
то шаг уменьшаем.
На рис. 5.2 приведена блок-схема метода Эйлера с пересчётом.
– обращение
к подпрограмме функции, задающей правую
часть дифференциального уравнения
Да
Нет
Да
Нет
Рис. 5.2 Блок-схема метода Эйлера с пересчётом
5.1.3. Метод Рунге-Кутта
Это очень распространённый явный одношаговый метод. На его основе могут быть построены разностные схемы разного порядка точности. Приведём схему Рунге-Кутта 4-го порядка. Запишем алгоритм в виде:
,
(
- усреднённая первая производная)
,
,
,
,
.
Погрешность
метода Рунге-Кутта оценивается величиной
.
Уточнение достигается за счёт специального
подбора координат четырёх точек, в
которых вычисляется первая производная
.
Вместо первой производной
,
используемой в формуле Эйлера, вычисляется
усреднённая первая производная
.
Поэтому метод Рунге-Кутта требует на
каждом шаге четырёхкратного вычисления
правой части уравнения
.
Значит, удобно выделить в подпрограмму
вычисление правых частей по формуле
,
придавая аргументам последовательно
нужные значения.
Блок-схема метода Рунге-Кутта приведена на рис.5.3.
Метод Эйлера и его модифицированный вариант (с пересчётом) могут рассматриваться как методы Рунге-Кутта первого и второго порядков. Метод Рунге-Кутта требует большого объёма вычислений, но это окупается повышенной точностью, что даёт возможность проводить счёт с большим шагом.
– обращение
к подпрограмме функции, задающей правую
часть дифференциального уравнения
Да
Нет
Рис. 5.3. Блок-схема метода Рунге-Кутта 4-го порядка
