Автор работы: Пользователь скрыл имя, 21 Декабря 2010 в 20:20, реферат
В экономике очень часто используется модель, называемая "черный
ящик", то есть система у которой известны входы и выходы, а то, что
происходит внутри - неизвестно. Законы по которым происходят изменения
выходных сигналов в зависимости от входных могут быть различными, в
том числе это могут быть и дифференциальные законы. Тогда встает проб-
лема решения систем дифференциальных уравнений, которые в зависимости
от своей структуры могут быть решены различными методами. Точное реше-
ние получить очень часто не удается, поэтому мы рассмотрим численные
методы решения таких систем. Далее мы представим две группы методов:
явные и неявные.
значения Tout и Yout. Далее метод сам корректирует свой шаг, по форму-
ле описанной выше (в теоретическом разделе). Этот цикл выполняется до
тех пор, пока значение Tfinal не будет достигнуто. Все выходные значе-
ния формируются внутри данного цикла и поэтому никаких дополнительных
действий не требуется. В связи с этим с окончанием цикла заканчивается
и подпрограмма EIL.M. Методы Рунге-Кутта реализованы аналогично, с
учетом отличий в формулах вычислений (более сложные по сравнению с ме-
тодом Эйлера).
2. НЕЯВНЫЕ МЕТОДЫ.
Представлены группой из двух похожих между собой программ, реали-
зующих соответственно неявные методы Эйлера и Рунге-Кутта 2 порядка.
Также как и в вышеприведенном случае, будет описан метод Эйлера, а от-
личия метода Рунге-Кутта будут отмечены в скобках.
1NME.M
Головной модуль.
Входные и выходные данные отсутствуют.
Язык реализации: PC MathLab
Операционная система: MS-DOS 3.30 or higher
Пояснения к тексту модуля:
Выполняет стандартные действия: очистка экрана, инициализация и
ввод начальных значений, вызов подпрограмм обработки и вычислений, а
также построение графиков.
1NMEF.M, NRG2.M
Вычислительные модули.
Входные данные:
T0, Tfinal - начальные и конечные моменты времени
X0 - вектор-столбец начальных значений.
H - начальный шаг
A - матрица, на диагонали которой стоят собственные числа линеа-
ризованной системы ОДУ.
Выходные данные:
T - столбец времени
X - столбец решений
7D 0X - столбец ошибки
Пояснения к тексту модуля:
Стандартные действия: инициализация начальных значений , цикл
While T < Tfinal, вычисление по формулам, вывод промежуточных резуль-
татов, формирование
выходных значений массивов.
3. МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ САУ
Представлены группой из 4-х методов: метод последовательных приб-
лижений, метод Ньютона, метод Ньютона дискретный, метод продолжения
решения по параметру.
Метод последовательных приближений.
1MMPP.M
Головной модуль.
Входные и выходные данные отсутствуют.
Язык реализации: PC MathLab
Операционная система: MS-DOS 3.30 or higher
Пояснения к тексту модуля:
Очистка экрана, инициализация начальных значений, вызов вычисли-
тельного модуля MPP.M, вывод результатов в виде графиков.
1MPP.M
Вычислительный модуль.
Входные данные:
X0 - начальное приближение в виде вектора-строки
Fun1 - функция, возвращающая вычисленные левые части
Fun2 - функция, возвращающая матрицу Якоби в определенной точке.
E - допустимая ошибка.
Выходные данные:
Mout - номера итераций
Xout - приближения на каждой итерации
DXout - ошибка на каждой итерации
Язык реализации: PC MathLab
Операционная система: MS-DOS 3.30 or higher
Пояснения к тексту модуля:
Аналогичен вышеприведенным вычислительным модулям - инициализация
начальных значений, вычисления по формулам, вывод промежуточных ре-
зультатов, формирование выходных значений. По мере необходимости вызы-
вает подпрограммы
Fun1 и Fun2.
Методы Ньютона и Ньютона дискретный
1MNEWT.M
Головной модуль.
Входные и выходные данные отсутствуют.
Язык реализации: PC MathLab
Операционная система: MS-DOS 3.30 or higher
Пояснения к тексту модуля:
Стандартный головной модуль - выполняет действия, аналогичные
предыдущим головным модулям. Вызывает из себя NEWT.M и NEWTD.M - моду-
ли реализующие методы Ньютона и Ньютона дискретный, а также строит их
графики на одной
координатной сетке.
1NEWT.M, NEWTD.M
Вычислительные модули.
Входные данные:
X0 - начальное приближение в виде вектора-строки
Fun1 - функция, возвращающая левые части
Fun2 - функция, вычисляющая матрицу Якоби (только для метода
E - допустимая ошибка
Выходные данные:
Mout - номера итераций
Xout - приближения на каждой итерации
DXout - ошибка на каждой итерации
Язык реализации: PC MathLab
Операционная система: MS-DOS 3.30 or higher
Пояснения к тексту модулей:
Стандартные вычислительные модули, производящие соответствующие
им действия. Отличие их в том, что в первом случае для вычисления мат-
рицы Якоби вызывается подпрограмма, а во втором случае матрица Якоби
вычисляется внутри
модуля.
Метод продолжения решения по параметру
1MMPRPP.M
Головной модуль.
Входные и выходные данные отсутствуют.
Язык реализации: PC MathLab
Операционная система: MS-DOS 3.30 or higher
Пояснения к тексту модуля:
Стандартный головной модуль со всеми вытекающими отсюда последс-
твиями.
1MPRPP.M
Вычислительный модуль.
Входные данные:
Fun1 - имя подпрограммы, вычисляющей правые части
Fun2 - имя подпрограммы, вычисляющем матрицу Якоби
X0 - начальное приближение
dT - начальный шаг
Edop - допустимая ошибка
Trace - вывод на экран
Язык реализации: PC MathLab
Операционная система: MS-DOS 3.30 or higher
Пояснения к тексту модуля:
Стандартный вычислительный модуль - инициализация, вычисление,
вывод, формирование результата. Стоит отметить, что поскольку метод
имеет глобальную сходимость, то объем вычислений тут значительный, а
это значит, что при выполнении вычислений требуется значительное коли-
чество свободной
оперативной памяти.
При выполнении данных лабораторных работ были изучены основные
численные методы для решения ОДУ, САУ, а также технология разреженных
матриц. Заодно были получены основные навыки в программировании мате-
матической системы PC MathLab. Каждый из представленных методов по
своему хорош и
применяется для систем определенного
вида.
2Теоретическая часть.
В данной расчетно-графической работе (далее РГР) требует-
ся составить программу для решения системы нелинейных уравне-
ний методом последовательной итерации обратной матрицы Якоби.
Суть метода в следующем:
Пусть требуется решить систему нелинейных алгебраических
или трансцендентных
уравнений:
F 41 0(X 41 0,X 42 0,...,X 4n
с
начальным приближением к решению:
X 50 0=(x 41 50 0,x 42 50 0,..
Вычислительная схема реализованного метода состоит в сле-
дующем:
В начале итерационного процесса матрица H полагается рав-
ной единичной:
H 50 0=E.
Затем
для k=0,1,...
1. Вычисляется
P 5k 0= 5 0- 5 0H 5k 0* 5 0F(X 5k 0);
2. Находятся
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)
и
снова повторяется вычислительный процесс
с пункта 1.
2Порядок работы с программой
Данная РГР представлена в виде 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, которую пишет сам пользователь.
2Описание работы программ
В связи с тем, что данная РГР состоит из 3 частей, то