Автор: Пользователь скрыл имя, 14 Февраля 2012 в 16:13, курсовая работа
Системы дифференциальных уравнений, зависимости от своей структуры могут быть решены различными методами. Точное решение получить очень часто не удается, поэтому мы рассмотрим численные методы решения таких систем. Далее мы представим две группы методов: явные и неявные. Для решения систем ОДУ неявными методами придется решать системы нелинейных уравнений, поэтому придется ввести в рассмотрение группу методов решения систем нелинейных уравнений, которые в свою очередь будут представлены двумя методами. Далее следуют теоретические аспекты описанных методов, а затем будут представлены описания программ.
ВВЕДЕНИЕ
1. ОПИСАНИЕ МЕТОДОВ ИНТЕГРИРОВАНИЯ СИСТЕМ ОДУ
И ИХ ХАРАКТЕРИСТИКА
1.1. НЕЯВНЫЙ МЕТОД ЭЙЛЕРА И ЕГО ХАРАКТЕРИСТИКИ
1.2. НЕЯВНЫЕ МЕТОДЫ РУНГЕ-КУТТА
2. МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ САУ
2.1. МЕТОД НЬЮТОНА
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
X 5k+1 0= 5 0X 5k 0+ 5 0t 5k 0*P 5k 0.
Первоначально t 5k 0=1. Затем путем последовательного
деления t 5k 0 на 2 находим такое t 5k 0, чтобы
выполнялось неравенство:
¦ F(X 5k+1 0) ¦ < ¦ F(X 5k 0) ¦
Итерационный процесс
¦ F(X 5k+1 0) ¦ < E,
где E -
заданная точность.
3. Определяется
Y 5k 0= F(X 5k+1 0) - F(X 5k 0)
4. Находится новое приближение
матрицы:
H 5k+1 0= 5 0H 5k
0- 5 0(H 5k 0*Y 5k 0- 5 0P 5k 0*t 5k 0) 5 0* 5 0(P 5k 0) 5T 0* 5 0(H 5k 0) 5T 0/ 5 0((P 5k 0) 5T
0* 5 0H 5k 0*Y 5k 0)
и снова повторяется
Данная программа РГР представлена в виде 3 исполняемых модулей:
1OBRJ.M, OBRF.M и FUN1.M. 0 Решением поставленной задачи занимается модуль 1 OBRF.M 0, а два остальных являются вспомогательными: 1OBRJ.M - 0 головной модуль, в котором вводятся входные данные и выводятся результаты вычислений, а 1 FUN1.M - 0 модуль, который пишет сам пользователь и который возвращает вычисленные левые части для требуемого уравнения.
В головной программе задаются начальные приближения, в виде вектора X0 а также запрашивается допустимая ошибка. Затем вызывается модуль 1 OBRJ.M, 0 который и реализует решение данной системы уравнений методом последовательной итерации обратной матрицы Якоби. Внутри себя данный модуль по мере необходимости вызывает функцию 1 FUN1.M 0, которую пишет сам пользователь.
В связи с тем, что данная РГР состоит из 3 частей, то опишем их по одиночке (распечатки данных модулей приведены в приложении):
1. 1 OBRJ.M
Головной модуль
Входные данные: отсутствуют.
Выходные данные: отсутствуют.
Язык реализации: PC MathLab.
Операционная система: MS-DOS 3.30 or Higher.
Пояснения к тексту модуля:
"Стандартный" головной модуль. В данном модуле задаются начальные значения в виде вектора, например:
X 40 0=[0.4 0.9]
Также в данном модуле запрашивается допустимая ошибка, очищается экран, а также производятся другие подготовительные действия.
Затем происходит вызов модуля 1 OBRF.M 0 с полученными входными данными. Формат вызова данного модуля описан далее (в описании самого модуля).
После вычислений в головную
программу возвращаются результаты
вычислений на основе которых
строятся графики а также выводятся
оценки по затратам машинного времени
и быстродействия.
2. 1 OBRF.M
Вычислительный модуль
Входные данные:
FunFcn - имя функции, написанной пользователем, которая вычисляет левые части для требуемой системы в определенной точке.
X0 - вектор-строка, определяющий начальные значения (начальное приближение).
E - допустимая ошибка.
Выходные данные:
Tout - Столбец итераций ("Время")
Xout - Столбцы значений вычисленных на каждом этапе для каждой итерации
DXout - Столбцы погрешностей по каждой компоненте, вычисленные на определенном этапе
Язык реализации: PC MathLab
Операционная система: MS-DOS 3.30 or Higher
Пояснения к тексту модуля:
Данный "вычислительный" модуль
реализует метод
[T 4out 0,X 4out 0,DX 4out 0]=
Значения каждого из параметров были описаны выше.
На начальном этапе в данном
модуле инициализируются
Затем данная функция, как и многие другие в численных методах, имеет вид:
While ОШИБКА > ДОПУСТИМОЙ ОШИБКИ
Оператор1
Оператор2
.........
.........
ОператорN
End
Внутри данного цикла
Формирование выходных
3. 1 FUN1.M
Модуль, вычисляющий левые части
Входные данные:
X - вектор-строка, задающий точки
для вычислений по каждой
Выходные данные:
FF - вектор-строка, возвращающий значения каждой компоненты в определенной точке
Язык реализации: PC MathLab
Операционная система: MS-DOS 3.30 or Higher
Пояснения к тексту модуля:
В принципе, текст данного
модуля не требует пояснений.
В нем пользователь реализует систему
уравнений, которая подлежит решению.
То есть на входные значения X данная функция
возвращает левые части по каждому уравнению.
Единственное требование к данному модулю
- соблюдение формата, то есть входные
и выходные данные должны быть представлены
в виде вектор-строк.
Сравнительный анализ показал, что данный метод обладает неплохой сходимостью, так как попробованный метод простой итерации с параметром вообще отказался сходиться для данной системы. Однако хорошо подходит для сравнения дискретный метод Ньютона, так как данные методы практически одинаковы что по точности что по затратам.
1. Метод последовательной
Число операций: порядка 682
Быстродействие: порядка 0.11 секунды
2. Метод Ньютона дискретный
Число операций: порядка 990
Быстродействие: порядка 0.22 секунды
Как видно из вышеприведенных данных, эти два метода очень близки между собой, но метод Ньютона дискретный более сложен в реализации, однако обладает лучшей сходимостью, например при начальных значениях X 50 0=[2.0 2.0]; метод последовательной итерации обратной матрицы Якоби уже не справляется, в то время как дискретный метод Ньютона продолжает неплохо работать. Однако метод Ньютона требует больших затрат машинного времени и поэтому при выборе метода необходимо исходить их конкретных условий задачи и если известно довольно точное приближение и требуется быстрота вычислений, то к таким условиям отлично подходит разработанный метод последовательной итерации обрат-
ной матрицы Якоби.
В данной РГР был разработан
и реализован метод последовательной
итерации обратной матрицы Якоби,
предназначенный для решения системы
нелинейных уравнений. Программа, реализованная
на языке PC MathLab хотя и не является оптимальной,
однако выполняет поставленную задачу
и решает системы уравнений. Реализованный
метод не отличается повышенной сходимостью
и требует довольно точного начального
приближения, однако довольно быстро сходится
к точному решению, то есть его можно
порекомендовать для вычисления непростых
систем нелинейных уравнений при наличии
довольно точного начального приближения
и наличия временных ограничений.
СПИСОК
ЛИТЕРАТУРЫ
Информация о работе Неявные методы решения системы уравнений ОДУ