3. Описание используемого метода

 

Для решения системы дифференциальных уравнений выбрана неявная схема Адамса 3-го порядка, как одна из наиболее точных конечноразностных схем для решения задачи Коши. Чтобы прийти к неявной схеме Адамса, заменим подинтегральное выражение в уравнении:

 (3.1)

интерполяционным многочленом Ньютона 2-го порядка, вида:

 (3.2)


После интегрирования полученного выражения на интервале , приходим к уравнению неявной схемы Адамса 3-го порядка:

. (3.3)

Данная схема не разрешена явно относительно , поэтому сначала необходимо вычислить  любым подходящим методом, например методом Рунге-Кутта четвёртого порядка. Затем для нахождения  требуется использовать метод простой итерации:

, (3.4)

где s=1,2,3,… – номер итерации. Условие выхода из цикла итерационной процедуры:

, (3.5)

где ε – заданная погрешность.

Начальное приближение задаётся формулой для явной экстраполяционной схемы Адамса 2-го порядка:

. (3.6)

Схема устойчива, сходится быстро. Чаще всего достаточно одной итерации. Порядок погрешности ε(h) неявной схемы Адамса третьего порядка равен четырём.


4. Описание блок-схемы алгоритма

 

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

Блок-схема алгоритма условно разбита на 11 блоков.

Главная функция программы (блоки 1,2,5) отвечает за обработку события создания формы, взаимодействие со стандартным компонентом TСhart, а также за реализацию решения системы дифференциальных уравнений неявной схемой Адамса 3-го порядка. Блок-схема алгоритма решения задачи Коши разбита условно на 35 блоков:

1-й блок отвечает за ручной ввод интервала [a,b], на котором ищется решение системы; количества шагов сетки nx; шаг вывода результатов на экран np; строк u1 и v1, соответствующих уравнениям системы; значения искомых функций в начале заданного интервала; допустимая погрешность e.

Во втором блоке происходит вычисление шага h и установка текущего узла на x=a. Блок 3 – функция преобразования исходных записей уравнений системы в равносильные им строки с постфиксной формой записью математических операций (см. далее «алгоритм обратной польской записи»). В качестве аргументов функции выступают введённые ранее строки u1 и v1.

Блоки 4-15 – расчет первых 2-х точек заданной сетки методом Рунге-Кутта 4-го порядка. В данных блоках и далее используется пользовательская функция FPR, рассчитывающая значения вводимых пользователем уравнений в узлах заданной сетки. В качестве аргументов функции выступают: уже преобразованные в обратную польскую запись строки, задающие уравнения системы; текущее значение x; значения искомых функций на предыдущем шаге (условно обозначаем ).

В блоках 16-34 в цикле (16) рассчитываются значения искомых решений в узлах 2-nx заданной сетки неявной схемой Адамса 3-го порядка. Цикл 21-29 осуществляет итерационную процедуру неявной схемы. Условие выхода из этого цикла – выполнение неравенства de<e, где de – наибольший из модулей , e – заданная точность. Поскольку на экран выводятся значения искомых функций не во всех узлах, а только в узлах с номером, кратным шагу вывода nx, вводимым с клавиатуры, то блоки 33-34 осуществляют выбор этих узлов.

Преобразование в обратную польскую запись происходит по следующим правилам:

Рассматриваем поочередно каждый символ:

1. Если этот символ - число (или переменная), то просто помещаем его в выходную строку.

2. Если символ - знак операции (+, -, *, / ,^), то проверяем приоритет данной операции. Операция возведения в степень имеет наивысший приоритет (равен 4). Операции сложения и вычитания имеют меньший приоритет (равен 2). Наименьший приоритет (равен 1) имеет открывающая скобка.

Получив один из этих символов, мы должны проверить стек:

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

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


Информация о работе «Решение систем дифференциальных уравнений при помощи неявной схемы Адамса 3-го порядка»
Раздел: Математика
Количество знаков с пробелами: 39446
Количество таблиц: 2
Количество изображений: 12

Похожие работы

Скачать
22411
1
13

... шаг интегрирования ; tp – время интегрирования трех точечным методом прогноза и коррекции , ta – время интегрирования по методу Адамса-Башфорта , NU – массив начальных условий . Данная процедура способна производить решения систем линейных дифференциальных уравнений произвольного размера , на произвольном промежутке времени интегрирования . Вычисленные данные записываются в файлы prandcom*.df . ...

Скачать
23511
3
14

... , является важнейшей вспомогательной научно-технической задачей . Целью данной курсовой работы является разработка алгоритма решения систем линейных дифференциальных уравнений первого порядка пяти точечным методом прогноза и коррекции Адамса-Башфорта . 1. ПОСТАНОВКА ЗАДАЧИ   Рассмотрим произвольную систему линейных дифференциальных уравнений первого порядка : ...

Скачать
24266
4
0

... в точке хк проводят вычисления ук с шагом h, затем с шагом 2h и берут 1/3 разницы этих значений: | ук*-у(хк)|=1/3(yk*-yk), (2.5.9) где у(х)-точное решение дифференциального уравнения.  Таким образом, методом Эйлера можно решать уравнения любых порядков. Например, чтобы решить уравнение второго порядка y//=f(y/,y,x) c начальными условиями y/(x0)=y/0, y(x0)=y0, ...

Скачать
23262
2
23

... ____________________________  подпись " ______ " ________________ 2007 г. Студент ____________________________ Подпись " ____ " _________________ 2007 г. Содержание 1. Постановка задачи АНАЛИЗ Численные методы интегрирования (Исследование устойчивости САУ) Для заданной системы требуется определить: Передаточную функцию замкнутой системы, для случая ; Корни характеристического ...

0 комментариев


Наверх