Метод конечных разностей решения краевых задач для обыкновенных дифференциальных уравнений второго порядка

  • ID: 12813 
  • 14 страниц
250 рубСкачать

как получить скидку

Debug

functions.h

html report.h

main.cpp

out.html

styles.css

Метод прогонки.dsp

Метод прогонки.dsw

Описание.docx

Фрагмент работы:

Метод конечных разностей решения краевых задач для обыкновенных ди…

Введение

Рассмотрим дифференциальное уравнение

(1)

Рассмотрим двухточечную краевую задачу, которая ставится таким образом: найти функцию, которая внутри отрезка удовлетворяет уравнению (1), а на концах этого отрезка удовлетворяет таким краевым условиям:

(и)

Если уравнение (1) и условие (2) линейны, то рассматривается линейная краевая задача:

(3)

(4)

где, непрерывны на, — постоянные.

Если, то краевая задача считается однородной.

Численные методы решения краевой задачи подразделяются на разностные и аналитические.

Метод конечных разностей

Разобьем отрезок на равных частей, следующим образом:, ( ), где — шаг, который задаётся следующим образом:

В каждой внутренней точке производные заменяют конечными разностями

( )

а для концевых точек

Используя эти формулы, пробразуем уравнения (см. выше (3)) и (см. выше (4)) к системе таких алгебраических уравнений:

(1)

Решая эту систему, получим решение (см. выше (3)) и (см. выше (4)) в табличном виде.

Более точные формулы получаются, если и заменить центральными разностями:

(2)

При больших решение системы (1) становится громоздким, поэтому существуют специальные методы решения таких систем.

Существует оценка погрешностей метода конечных разностей, но она не имеет практического назначения в случае табличного задания функций, поэтому осуществляют двойной пересчёт и оценку погрешности находят при помощи метода Рунге.

где — точное решение, а — приближённое решение, полученное с шагом, а — приближённое решение с шагом.

Пример

Методом конечных разностей найти решение краевой задачи

(3)

Решение

Используя формулы (2), заменяем уравнение (1) системой конечно-разностных уравнений

В результате приведения подобных членов получаем

(4)

Выберем шаг. Тогда получим три внутренних узла ( ). Написав уравнение для каждого из этих узлов, получим систему

(5)

В граничных узлах имеем

Используя эти значения, решаем систему (5) и получаем

Для сравнения приводим значения точного решения уравнения (3) в соответствующих точках:.

Метод прогонки

При применении метода конечных разностей к краевым задачам для дифференциальных уравнений второго порядка получается «трехчленная система» линейных алгебраических уравнений, каждое из которых содержит три соседних неизвестных. Для решения такой системы разработан специальный метод, получивший название метода прогонки.

Рассмотрим линейное дифференциальное уравнение второго порядка

(1)

с двухточечными линейными краевыми условиями

Перейдем от дифференциального уравнения (1) к системе конечно-разностных уравнений

(2)

После некоторых преобразований запишем первые уравнений этой системы

(3)

где

(4)

Далее эту систему приводят к виду:

( ) (5)

Числа и последовательно вычисляются таким образом:

(6)

при и

(7)

при.

Вычисления производятся в таком порядке:

Прямой ход

По формулам (4) вычисляем и. Находят и по формулам (6), По рекурентным формулам (7) находят все остальные и.

Обратный ход

Из уравнения (5) при и последнего уравнения системы (2) получим такую систему:

Решая её относительно, получим

(8)

Используя известные и найдем. Затем вычислим значения ( ) по соотношению (5).

(9)

Значение находят из предпоследнего уравнения системы (2).

(10)

Пример

Методом прогонки найти приближённое решение уравнения

(11)

удовлетворяющее краевым условиям

(12)

Решение

Возьмем и заменим уравнение (11) и краевые условия (12) системой конечно-разностных уравнений

(13)

После приведения подобных членов получим

Таким образом, имеем

Порядок заполнения таблицы.

Прямой ход

Записываем в таблицу числа и вычисляем величины, ( ). Далее находим

Записываем полученные числа в таблицу и приступаем к последовательному вычислению, при. Так, при по формулам (7) будем иметь

При

Ход дальнейших вычислений ясен из приведенного образца. Полученные значения, записываем в столбцы прямого хода таблицы.

Обратный ход

По формуле (8) находим

После этого приступаем к последовательному вычислению значений ( ) по формулам (9) и к заполнению столбца обратного хода таблицы. Так, при и будем иметь

и т. д.

Значение находим по формуле (10)

и записываем в столбце таблицы при. В последнем столбце таблицы приведены для сравнения значения точного решения.

Таблица

Прямой ход Обратный ход

Программная реализация

Приложение

main.cpp

functions.h

html_report.h

#include "conio.h"

#include "iostream.h"

#include "html_report.h" //класс для вывода результатов работы в документ HTML

#include "functions.h" //константы и функции для расчетов (функции для удобства объединены

//в класс вместе с таблицей результатов)

void main(void) {