RSS    

   Комплект заданий по численным методам - (реферат)

p>Представлены группой из двух похожих между собой программ, реали зующих соответственно неявные методы Эйлера и Рунге-Кутта 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
    Пояснения к тексту модуля:

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

     2ВЫВОДЫ

При выполнении данных лабораторных работ были изучены основные численные методы для решения ОДУ, САУ, а также технология разреженных матриц. Заодно были получены основные навыки в программировании мате матической системы PC MathLab. Каждый из представленных методов по своему хорош и применяется для систем определенного вида.

     2Теоретическая часть.
    В данной расчетно-графической работе (далее РГР) требует

ся составить программу для решения системы нелинейных уравне ний методом последовательной итерации обратной матрицы Якоби. Суть метода в следующем:

    Пусть требуется решить систему нелинейных алгебраических
    или трансцендентных уравнений:
    F 41 0(X 41 0, X 42 0, ...., X 4n 0)=0; i=1, 2, ...., n,
    с начальным приближением к решению:
    X 50 0=(x 41 50 0, x 42 50 0, ....x 4n 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 модуль, который пишет сам пользователь и который возвращает вычисленные левые части для требуемого уравнения.

    В головной программе задаются начальные приближения, в
    - 3

виде вектора X0 а также запрашивается допустимая ошибка. Затем вызывается модуль 1 OBRJ. M,  0 который и реализует решение данной системы уравнений методом последовательной итерации обратной матрицы Якоби. Внутри себя данный модуль по мере необходимости вызывает функцию 1 FUN1. M 0, которую пишет сам пользователь.

     2Описание работы программ
    В связи с тем, что данная РГР состоит из 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
    Пояснения к тексту модуля:
    Данный "вычислительный" модуль реализует метод последова
    - 5

тельной итерации обратной матрицы Якоби. Общая структура вызо ва данного модуля:

    [T 4out 0, X 4out 0, DX 4out 0]=OBRF(FunFcn, X 40 0, E);
    Значения каждого из параметров были описаны выше.
    На начальном этапе в данном модуле инициализируются внут

ренние переменные (например, задается единичная матрица H, в соответствии с размерностью X0), формируются (на основе на чальных значений) первичные элементы матриц Tout, Xout, DXout. Затем данная функция, как и многие другие в численных методах, имеет вид:

    While ОШИБКА > ДОПУСТИМОЙ ОШИБКИ
    Оператор1
    Оператор2
    .............
    .............
    ОператорN
    End
    Внутри данного цикла происходят вычисления внутренней пе

ременной P 5k 0 на каждом шаге K и, вычисляется начальное прибли жение X 5k+1 0. Первоначально t=1 (Не номер итерации, а внутренний параметр! ). Затем, в очередном цикле While.... End в случае, ес ли ¦F(X 5k+1 0)¦ < ¦F(X 5k 0)¦ t=t/2 и снова вычисляется X 5k+1 0. Когда очередное X 5k+1 0 найдено, вычисляется Y 5k 0, а затем и новое приб лижение матрицы H. Итерационный процесс заканчивается, если

¦F(X 5k+1 0)¦ < E. Если данное условие не выполняется - итерацион ный процесс продолжается заново.

    Формирование выходных значений-матриц происходит внутри

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

    3.  1 FUN1. M
    Модуль, вычисляющий левые части
    Входные данные:
    X - вектор-строка, задающий точки для вычислений по каж
    дой компоненте.
    Выходные данные:
    FF - вектор-строка, возвращающий значения каждой компо
    ненты в определенной точке
    Язык реализации: PC MathLab
    Операционная система: MS-DOS 3. 30 or Higher
    Пояснения к тексту модуля:
    В принципе, текст данного модуля не требует пояснений. В

нем пользователь реализует систему уравнений, которая подлежит решению. То есть на входные значения X данная функция возвра щает левые части по каждому уравнению. Единственное требование к данному модулю - соблюдение формата, то есть входные и вы ходные данные должны быть представлены в виде вектор-строк.

     2Сравнительный анализ и
     2оценка быстродействия.
    - 7
    Сравнительный анализ показал, что данный метод обладает

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

    1. Метод последовательной итерации обратной матрицы Якоби
    Число операций: порядка 682
    Быстродействие: порядка 0. 11 секунды
    2. Метод Ньютона дискретный
    Число операций: порядка 990
    Быстродействие: порядка 0. 22 секунды
    Как видно из вышеприведенных данных, эти два метода очень

близки между собой, но метод Ньютона дискретный более сложен в реализации, однако обладает лучшей сходимостью, например при начальных значениях X 50 0=[2. 0 2. 0]; метод последовательной ите рации обратной матрицы Якоби уже не справляется, в то время как дискретный метод Ньютона продолжает неплохо работать. Од нако метод Ньютона требует больших затрат машинного времени и поэтому при выборе метода необходимо исходить их конкретных условий задачи и если известно довольно точное приближение и требуется быстрота вычислений, то к таким условиям отлично подходит разработанный метод последовательной итерации обрат ной матрицы Якоби.

     2Выводы
    В данной РГР был разработан и реализован метод последова

тельной итерации обратной матрицы Якоби, предназначенный для решения системы нелинейных уравнений. Программа, реализованная на языке PC MathLab хотя и не является оптимальной, однако вы полняет поставленную задачу и решает системы уравнений. Реали зованный метод не отличается повышенной сходимостью и требует довольно точного начального приближения, однако довольно быст ро сходится к точному решению, то есть его можно порекомендо вать для вычисления непростых систем нелинейных уравнений при наличии довольно точного начального приближения и наличия вре менных ограничений.

     2Список литературы
    1. О. М. Сарычева. "Численные методы в экономике. Конспект

лекций", Новосибирский государственный технический универси тет, Новосибирск 1995г.

    2. Д. Мак-Кракен, У. Дорн. "Численные методы и программиро
    вание на Фортране", Издательство "Мир", М. 1977г.
    3. Н. С. Бахвалов. "Численные методы", Издательство "Нау
    ка", М. 1975г.

Страницы: 1, 2, 3, 4


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.