- •Н. Б. Борковский Математические методы в экологии
- •Часть I. Численные методы
- •Тема 1 9
- •Тема 2 14
- •Тема 3 30
- •3.0 Постановка задачи 30
- •1. Постановка проблемы
- •2. Выбор или построение математической модели
- •3. Постановка вычислительной задачи
- •4. Предварительный анализ свойств вычислительной задачи
- •5. Выбор или построение численного метода
- •6. Алгоритмизация и программирование
- •7. Отладка программы
- •8. Счет по программе
- •9. Обработка и интерпретация результатов
- •10. Использование результатов и коррекция математической модели
- •1.0 Источники приближенных чисел
- •1.1 Источники и классификация погрешностей
- •1.2 Абсолютная и относительная погрешности вычисления
- •1.3 Погрешности арифметических операций
- •1.4 Обратная задача теории погрешностей
- •Постановка задачи
- •Метод половинного деления (метод «вилки», метод дихотомии)
- •Метод Ньютона (метод касательных)
- •Метод хорд (метод пропорциональных частей)
- •Метод итерации (метод последовательных приближений)
- •Постановка задачи
- •Решение систем линейных уравнений методом итерации
- •Решение систем нелинейных уравнений методом итерации
- •Решение систем линейных уравнений – «подводные камни»
- •4.0 Интерполирование – постановка задачи
- •4.1 Интерполирование полиномами
- •4.2 Аппроксимация функций. Метод наименьших квадратов
- •4.3 Интерполирование сплайнами
- •4.4 Интерполирование – примеры и «подводные камни»
- •4.5 Сглаживание данных (скользящее среднее)
- •5.0 Постановка задачи
- •5.1 Формула трапеций
- •5.2 Формула Симпсона
- •5.3 Формула Ньютона–Котеса
- •5.4 Формула Гаусса
- •5.5 Связь формул интегрирования
- •5.6 Численное интегрирование. Сравнение методов
- •5.7 Численное интегрирование – «подводные камни»
- •6.0 Введение
- •6.1 Обыкновенные ду. Метод Эйлера
- •6.2 Обыкновенные ду. Основные методы решения
- •6.3 Обыкновенные ду. Методы прогноза и коррекции
- •6.5 Обыкновенные ду. Сравнение методов
- •6.6 Оду. Влияние неточности исходной информации
- •6.7 Оду. Представление о конечных разностях
- •6.8 Оду. Краевые задачи – введение
- •8.0 Ду в частных производных. Постановка задачи
- •8.1 Ду в частных производных. Эллиптические уравнения
- •8.2 Ду в частных производных. Гиперболические уравнения
- •8.3 Ду в частных производных. Параболические уравнения
- •9.0 Методы безусловной оптимизации. Введение
- •9.1 Методы безусловной оптимизации. Классификация методов
- •9.2 Методы безусловной оптимизации нулевого порядка
- •9.3 Методы безусловной оптимизации первого порядка
- •9.4 Методы оптимизации второго порядка
- •Тема 10
- •10.0 Метод Монте–Карло. Некоторые задачи
- •10.1 Проблема получения случайных чисел
- •10.2 Общая схема метода
- •10.3 Метод Монте–Карло. Пример
- •10.4 Вычисление кратных интегралов
- •Число испытаний n не зависит от размерности интеграла i0
6.7 Оду. Представление о конечных разностях
П
о
определению, производная функции одной
переменной имеет вид
Компьютер не может совершить предельный переход (да и мы тоже, если функция задана таблично!).
Однако мы можем придать h малое (но не нулевое) значение и проверить, получается ли приближение достаточно точным (проблема точности) и не возрастает ли ошибка в ходе вычислений (проблема устойчивости).
Метод сводится к тому, что производная заменяется разностью.
Разность y(x + h) – y(x) называется конечной разностью.
Пример для многочлена y(x) = 8x3 – 2x + 1 приведен в табл. 6.1.
Таблица 6.1 – Таблица разностей для многочлена y(x) = 8x3 – 2x + 1
Разности первого порядка:
Dy(0) = y(0,5) – y(0), Dy(0,5) = y(1) – y(0,5), Dy(1) = y(1,5) – y(1) и т. д.
Если первые разности разделить на величину шага (здесь 0,5), получим грубую оценку производной (тангенса угла наклона касательной) в разных точках.
В общем случае, когда шаг равен h, правая разность первого порядка функции y(x) в точке x = a имеет вид
Dy(a) = y(a + h) – y(a).
В более привычной записи конечная разность функции y(x) в точке xi:
Dy(xi ) = y(xi+1 ) – y(xi ) = yi+1 – yi.
В исчислении разностей рассматриваются и разности второго порядка в точке xi:
D2y(xi ) = D (D y(xi )) = ( y(xi+2 ) – y(xi+1 ) ) – ( y(xi+1 ) – y(xi ) ) =
= y(xi+2 ) – 2 y(xi+1 ) + y(xi ) = yi+2 – 2yi+1 + yi.
Т
. о.,
приближенно можем записать
Более подробно метод сеток будет рассмотрен в следующей теме.
6.8 Оду. Краевые задачи – введение
До сих пор рассматривались задачи с начальными условиями. Часто бывают даны условия на решение в двух точках.
Иллюстрация приведена на рис. 6.7. Краевые условия имеют вид y(a) = A, y(b) = B.
|
Рис. 6.7. Геометрическая иллюстрация краевой задачи |
Н
апример,
может быть дано уравнение
и требуется узнать у = у(х) для 0 x 1.
Эта ситуация может быть сведена к предыдущему случаю (т. е. к задаче с начальными условиями) методом проб и ошибок.
Н
ачнем
с уравнения
и
попробуем найти два таких значения 1
и 2,
чтобы выполнялись следующие соотношения:
Так как для большинства практических задач y(1) есть непрерывная функция , то можно, даже используя грубый метод деления отрезка пополам, за 10 проб уменьшить длину отрезка |1 – 2 | в 210, т. е. более чем в 1000 раз.
Однако вместо того чтобы сводить краевую задачу к задаче с заданными начальными условиями, нередко выгоднее решать ее непосредственно. На этот счет имеется обширная теория, и мы кратко рассмотрим лишь один пример, чтобы показать некоторые из содержащихся в ней идей.
Рассмотрим уравнение
|
(6.32) |
Прежде всего, аппроксимируем у" второй разностью
|
(6.33) |
считая, что интервал 0 x 1 разделен на N интервалов величиной h = 1/N.
Таким образом,
|
(6.34a) |
или
|
(6.34b) |
Получили N – 1 линейных уравнений с N – 1 неизвестными, которые могут быть решены многими различными способами.
В
качестве примера рассмотрим один
частный случай уравнения (6.32).
Положим
A = B
= 0, f(x)
= 1, g(x)
= x и N
= 4, т. е. уравнение
Р
ешение
известно:
Разностные уравнения имеют вид (см. (6.34а))
или
Умножим первое из уравнений на 16, второе на 33 и третье на 16 и сложим. Получим
Зная y2, легко найти у1 и у3 из первого и третьего уравнений.
Что можно сделать для уточнения решения? Можно положить N = 8 и, используя вычисленное решение для N = 4, оценить решения для N = 8. Затем, подставляя это решение в правые части восьми уравнений, можно вычислить улучшенные значения и повторять процесс до тех пор, пока не прекратятся изменения.
Число точек можно увеличивать как угодно.
Постановка краевых задач
Пусть дано дифференциальное уравнение второго порядка:
|
(6.35) |
Двухточечная краевая задача для уравнения (6.35) ставится следующим образом: найти функцию y = y(x), которая внутри отрезка [a,b] удовлетворяет уравнению (6.35), а на концах отрезка – краевымусловиям
|
(6.36) |
Краевая задача называется линейной краевой задачей, если уравнение (6.35) и граничные условия (6.36) линейны. При этом дифференциальное уравнение и краевые условия записываются в виде
|
(6.37) |
|
(6.38) |
где p(x), q(x), f(x) – известные непрерывные на отрезке [a, b] функции, 0, 1, 0, 1 , A, B – заданные константы, причем
|
Если A = B = 0, краевые условия (6.38) называют однородными.
Методы приближенного решения краевых задач можно разбить на две группы: разностные и аналитические методы.
Метод конечных разностей для линейных дифференциальных уравнений второго порядка
Пусть x0 = a, xn = b, xi = x0 + ih (i = 1, 2, …, n – 1) – система равноотстоящих узлов с некоторым шагом h = (b – a)/n и
pi = p(xi), qi = q(xi), fi = f(xi).
Пусть yi,
,
–
приближенные значения функции y(x)
и ее производных
,
.
Можно приближенно заменить в каждом внутреннем узле производные , конечно-разностными отношениями
|
(6.39) |
На концах отрезка примем
|
(6.40) |
Теперь можно приближенно заменить уравнение (6.37) и краевые условия (6.38) системой (n+1) уравнений с (n+1) неизвестными:
|
(6.41) |
Более точные формулы получаются при использовании центрально-разностных отношений:
|
(6.42) |
Теперь вместо системы (6.41) получаем:
|
(6.43) |
Пример решения уже был рассмотрен.
Оценка погрешности
|
(6.44) |
где y(xi) – значение точного решения при x = xi, M4 = max|y(4)(x)| .
Метод редукции к задаче Коши двухточечной краевой задачи
Рассмотрим на отрезке [a, b] граничную задачу для дифференциального уравнения
|
(6.45) |
с условиями
|
(6.46) |
где p(x), q(x), f(x) – непрерывные на отрезке [a, b] функции.
Решение уравнения (6.45), удовлетворяющее краевым условиям (6.46), будем искать в виде
|
(6.47) |
где u = u(x) – решение соответствующего однородного уравнения
|
(6.48) |
а = (x) – частное решение неоднородного уравнения
|
(6.49) |
Подставим (6.47) в первое условие граничной задачи (6.46), получим
|
(6.50) |
Для того
чтобы равенство (6.50) было справедливо
при любом с, необходимо и достаточно,
чтобы сомножитель
= 0 и выполнялись следующие равенства:
|
(6.51) |
Примем
|
(6.52) |
где константа k отлична от нуля.
Если
,
то
|
(6.53) |
если
,
то
|
(6.54) |
Видно, что u = u(x) является решением задачи Коши для однородного уравнения (6.48), удовлетворяющим начальным условиям (6.52), а = (x) – решение задачи Коши для неоднородного уравнения (6.49), удовлетворяющее начальным условиям (6.53) или (6.54).
Теперь подставим (6.47) во второе условие граничной задачи (6.46) и выразим постоянную с
|
(6.55) |
При этом
предполагается, что
.
Если выполнено это условие, то краевая
задача (6.45) - (6.46) имеет единственное
решение, в противном случае она или
совсем не имеет решений, или их бесчисленное
множество.
Метод коллокации
Решение краевой задачи (6.45), (6.46) ищем в виде
|
(6.56) |
где ui(x) (i = 0, 1, 2, …, n) – линейно независимые ортогональные функции.
Обозначим
|
(6.57) |
Потребуем, чтобы невязка
|
(6.58) |
обращалась в нуль на некоторой системе точек x1, x2, …, xn отрезка [a, b].
Эти точки называются точками коллокации, их число должно равняться числу коэффициентов ci в выражении (6.56).
Для определения ci получаем систему уравнений
|
(6.59) |
Метод
коллокации можно применить и для решения
нелинейных уравнений
c
линейными краевыми условиями.
При этом
невязка имеет вид
Система (6.59) будет системой нелинейных алгебраических уравнений относительно неизвестных ci.
Пример
Методом коллокации найти приближенное решение уравнения
c краевыми условиями
y(–1) = y(1)
= 0.
Выберем в качестве базисных функций u0(x) = 0, u1(x) = 1 – x2, u2(x) = x2(1– x2).
Краевые условия для них выполняются. Решение будем искать в виде
За точки коллокации возьмем x0 = 0, x1 = ½.
Составляем невязку R(x):
Подставив x0 = 0, x1 = ½, получаем систему
Отсюда находим c1 = 0,957; c2 = – 0,022.
Приближенное решение имеет вид
Тема 7
Метод конечных разностей (метод сеток) численного решения дифференциальных уравнений
Метод сеток, или метод конечных разностей – один из самых распространенных методов численного решения уравнений с частными производными.
В основе – идея замены производных конечно-разностными отношениями.
Ограничимся случаем двух независимых переменных.
Пусть в плоскости xOy имеется некоторая область G с границей Г (рис. 7.1).
|
Рис. 7.1. Построение сетки |
Построим два семейства параллельных прямых:
Точки пересечения прямых называют узлами.
Два узла называют соседними, если они удалены вдоль оси Ox или Oy на шаг сетки h или k соответственно.
Узлы, принадлежащие G + Г и расположенные вне этой области на расстоянии, меньшем, чем шаг от Г, называют внутренними.
Оставшиеся из выделенных – граничные.
Рассмотрим сначала разности в направлении x.
Разложим функцию u = u(x, y0) в ряд Тейлора в окрестности точки x0, y0:
где лежит между x и x0.
Если положить x = x0 + h, то можно получить следующее выражение
Т. е. если представить ux с помощью
|
(7.1) |
то ошибка ограничения будет равна
Равенство (7.1) получено с помощью подстановки x = x0 + h, результат называется правой разностью.
Аналогично можно получить левую разность:
|
(7.2) |
Приближение для второй производной uxx через правую разность:
|
(7.3) |
Если в выражение (7.3) подставить правые разности для ux, весь результат окажется «сдвинут» вправо. Для компенсации используем левые разности для ux. Получим
|
(7.4) |
Можно отметить симметрию полученной формулы относительно x0, y0.
Для определения ошибки ограничения вспомним, что
Положим теперь x = x0 + h; x = x0 – h и сложим два равенства. Получится, что ошибка ограничения равна
Аналогичный анализ проводится для производных в направлении y:
|
(7.5) |
Здесь k – величина шага по y.
Ошибка ограничения равна
С использованием полученных выражений можно полностью переписать дифференциальное уравнение в частных производных и перейти к уравнению в конечных разностях.
Например, уравнение Лапласа
можно переписать в виде
Тема 8
Решение дифференциальных уравнений в частных производных

,
и
.
.
.
,
.
.
,
.