- •1.1. Основные этапы решения задач с помощью эвм
- •1.2. Погрешности результатов численного решения задач
- •1.3. Основные требования к алгоритмам и программному обеспечению
- •2.1. Метод дихотомии (деления отрезка пополам)
- •2.2. Метод хорд
- •2.3. Метод простой итерации
- •2.4. Метод Ньютона
- •2.5. Модификации метода Ньютона
- •3.1. Основные понятия вычислительной линейной алгебры
- •3.2. Некоторые точные методы решения слау
- •3.3. Итерационные методы решения слау
- •3.4. Вычисление собственных значений матрицы
- •4.1. Постановка задачи интерполяции
- •4.2. Полиномиальная интерполяция. Формула Лагранжа
- •4.3. Разделенные разности и интерполяционная формула Ньютона
- •4.4. Кусочно-полиномиальная интерполяция
- •4.4. Программы решения задач интерполяции с помощью Matlab
- •5.1. Численное дифференцирование
- •5.2. Погрешности методов численного дифференцирования
- •5.3. Численное интегрирование. Простейшие методы
- •5.4. Метод Ньютона-Котеса и его модификация
- •5.5. Методы Монте-Карло
- •6.1. Решение пере- и недоопределенных слау
- •6.2. Примеры решение переопределенной слау методом наименьших квадратов Пусть
- •6.3. Метод наименьших квадратов для регрессионного анализа
- •Задание к главе 6
- •7.1. Методы решения задачи Коши
- •7.2. Методы Рунге-Кутта решения задачи Коши
- •7.3. Решение краевой задачи для оду
- •Задания к главе 7
- •8.1. Решения дифференциальных уравнений первого порядка
- •8.2. Решения дифференциальных уравнений параболического типа
- •8.3. Решение дифференциальных уравнений эллиптического типа
- •8.4. Решение дифференциальных уравнений гиперболического типа
7.2. Методы Рунге-Кутта решения задачи Коши
Построим расчетные формулы с заданным порядком погрешности, метод построения такого численного решения задачи Коши называется методом Рунге-Кутта. В соответствии с формулой (7.6) представим аппроксимацию интеграла в виде
, (7.14)
где
(7.15)
а ,и– некоторые фиксированные числа, являющиеся параметрами.
Рассмотрим вопрос о выборе этих параметров. Обозначим . Еслидостаточно гладкая функция своих аргументов, то– гладкие функции параметраи для существуют производные до порядка включительно. Величина называется погрешностью метода на шаге. Рассмотрим ее разложение в ряд Тейлора в окрестности точки
, (7.16)
где – порядок погрешности метода, а. Коэффициенты,ивыберем так, чтобы выполнялось условие
. (7.17)
Тогда погрешность метода на шаге будет определяться соотношением
. (7.18)
Учтем, что согласно уравнению (7.3) и правилу дифференцирования сложных функций выполняется цепочка равенств
.
Тогда для справедливо
(7.19)
Второе равенство выполняется для всех гладких функций лишь в том случае, если, что соответствует методу Эйлера.
Пусть , вычислим производные и подставим, получим
Очевидно, что в этом случае . Условие (7.18) будет выполняться для всех, если будут одновременно выполнены условия
(7.20)
Задавая один из параметров можно вычислить остальные, таким образом, получим различные методы Рунге-Кутта с погрешностью второго порядка малости по .
Постоим численные схемы решения. Пусть , тогда,,. В соответствии с (7.15) и (7.16) получим
(7.21)
Вычисления по этому соотношению совпадают с вычислением по формуле (7.12).
В практических расчетах используют формулы с погрешностью третьего и четвертого порядка малости по . Соответственно длянаиболее употребительны соотношения:
(7.22)
Для используют метод в виде:
(7.23)
В качестве примера рассмотрим реализацию метода Рунге-Кутта четвертого порядка дифференциального уравнения на отрезкес начальным условием. Здесь
Программа 7.1.
tau=0.01; %Шаг изменения t
t=0:tau:1; %Сетка
u(1)=1; %Начальное условие
for i=1:100,
k1(i)=tau*exp(t(i)*u(i));
k2(i)=tau*exp((t(i)+tau/2)*(u(i)+k1(i)/2));
k3(i)=tau*exp((t(i)+tau/2)*(u(i)+k2(i)/2));
k4(i)=tau*exp((t(i)+tau)*(u(i)+k3(i)));
u(i+1)=u(i)+(k1(i)+2*k2(i)+2*k3(i)+k4(i))/6;
end;
plot(t,u)
Рис.7.1. Решение дифференциального уравнения
7.3. Решение краевой задачи для оду
В отличие от задачи Коши краевые задачи предусматривают однозначное определение решения, используя значения неизвестной функции, ее первой производной или их линейной комбинации на границе рассматриваемой области. Ограничимся случаем одной переменной, тогда, если значения функции задано во внутренних точках области определения, то такую задачу называют внутренней краевой задачей, а, если на границе, то внешней краевой задачей. Среди таких задач существенную часть составляют задачи для дифференциальных уравнений второго порядка. Рассмотрим один из методов решения этих задач.
Пусть требуется найти решение дифференциального уравнения
, (7.24)
на отрезке , которое удовлетворяет краевым условиям:
(7.25)
Построим сетку на отрезке , на которой определим сеточные функции , и , приближенное решение в виде сеточной функции будем, как и прежде, обозначать через . Аппроксимируем производные, входящие в уравнения (7.24)-(7.25), со вторым порядком точности в результате получим разностную схему для краевой задачи:
, (7.26)
с краевыми условиями
(7.27)
где . Отметим без доказательства тот факт, что данная схема является устойчивой.
Введем обозначения
, , ,
для и
для и . Тогда система линейных алгебраических уравнений (7.26) – (7.27) запишется в виде:
(7.28)
или в матричном виде:
, (7.29)
где – трехдиагональная матрица, а и – вектор столбцы. Решение этой системы осуществляется, как правило, методом прогонки. Численная реализация метода полностью основывается на решении СЛАУ с трехдиагональной матрицей коэффициентов.