BigEdu.ru
» » » Решение системы нелинейных уравнений
Вернуться назад

Решение системы нелинейных уравнений

Теоретическая часть.

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

для решения системы нелинейных уравнений методом последовательной итерации

обратной матрицы Якоби.

Суть метода в следующем:

Пусть требуется решить систему нелинейных алгебраических или трансцендентных

уравнений:

F1(X1,X2,...,Xn)=0; i=1,2,...,n,

с начальным приближением к решению:

X0=(x10,x20,...xn0).

Вычислительная схема реализованного метода состоит в следующем:

В начале итерационного процесса матрица H полагается равной единичной:

H0=E.

Затем для k=0,1,...

1. Вычисляется

Pk = - Hk * F(Xk);

2. Находятся

Xk+1 = Xk + tk*Pk.

Первоначально tk=1. Затем путем последовательного деления tk на 2 находим такое

tk, чтобы выполнялось неравенство:

¦ F(Xk+1) ¦ < ¦ F(Xk) ¦

Итерационный процесс заканчивается при выполнении условия:

¦ F(Xk+1) ¦ < E,

где E - заданная точность.

3. Определяется

Yk= F(Xk+1) - F(Xk)

4. Находится новое приближение матрицы:

Hk+1 = Hk - (Hk*Yk - Pk*tk) * (Pk)T * (Hk)T / ((Pk)T * Hk*Yk)

и снова повторяется вычислительный процесс с пункта 1.

Порядок работы с программой

Данная РГР представлена в виде 3 исполняемых модулей:

OBRJ.M, OBRF.M и FUN1.M. Решением поставленной задачи занимается модуль OBRF.M,

а два остальных являются вспомогательными:

OBRJ.M - головной модуль, в котором вводятся входные данные и выводятся

результаты вычислений, а FUN1.M - модуль, который пишет сам пользователь и

который возвращает вычисленные левые части для требуемого уравнения.

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

запрашивается допустимая ошибка. Затем вызывается модуль OBRJ.M, который и

реализует решение данной системы уравнений методом последовательной итерации

обратной матрицы Якоби. Внутри себя данный модуль по мере необходимости вызывает

функцию FUN1.M, которую пишет сам пользователь.

Описание работы программ

В связи с тем, что данная РГР состоит из 3 частей, то опишем их по одиночке

(распечатки данных модулей приведены в приложении):

1. OBRJ.M

Головной модуль

Входные данные: отсутствуют.

Выходные данные: отсутствуют.

Язык реализации: PC MathLab.

Операционная система: MS-DOS 3.30 or Higher.

Пояснения к тексту модуля:

"Стандартный" головной модуль. В данном модуле задаются начальные значения в

виде вектора, например:

X0=[0.4 0.9]

Также в данном модуле запрашивается допустимая ошибка,очищается экран, а также

производятся другие подготовительные действия.

Затем происходит вызов модуля OBRF.M с полученными входными данными. Формат

вызова данного модуля описан далее (в описании самого модуля).

После вычислений в головную программу возвращаются результаты вычислений на

основе которых строятся графики а также выводятся оценки по затратам машинного

времени и быстродействия.

2. OBRF.M

Вычислительный модуль

Входные данные:

FunFcn - имя функции, написанной пользователем, которая вычисляет левые части

для требуемой системы в определенной точке.

X0 - вектор-строка, определяющий начальные значения (начальное приближение).

E - допустимая ошибка.

Выходные данные:

Tout - Столбец итераций ("Время")

Xout - Столбцы значений вычисленных на каждом этапе для каждой итерации

DXout - Столбцы погрешностей по каждой компоненте, вычисленные на определенном

этапе

Язык реализации: PC MathLab

Операционная система: MS-DOS 3.30 or Higher

Пояснения к тексту модуля:

Данный "вычислительный" модуль реализует метод последовательной итерации

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

[Tout,Xout,DXout]=OBRF(FunFcn,X0,E);

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

На начальном этапе в данном модуле инициализируются внутренние переменные

(например, задается единичная матрица H, в соответствии с размерностью X0),

формируются (на основе начальных значений) первичные элементы матриц

Tout,Xout,DXout.

Затем данная функция, как и многие другие в численных методах,имеет вид:

While ОШИБКА > ДОПУСТИМОЙ ОШИБКИ

Оператор1

Оператор2

.........

.........

ОператорN

End

Внутри данного цикла происходят вычисления внутренней переменной Pk на каждом

шаге K и, вычисляется начальное приближение Xk+1. Первоначально t=1 (Не номер

итерации, а внутренний параметр!). Затем, в очередном цикле While...End в

случае, если ¦F(Xk+1)¦ < ¦F(Xk)¦ t=t/2 и снова вычисляется Xk+1. Когда очередное

Xk+1 найдено, вычисляется Yk, а затем и новое приближение матрицы H.

Итерационный процесс заканчивается, если ¦F(Xk+1)¦ < E. Если данное условие не

выполняется - итерационный процесс продолжается заново.

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

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

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Рефераты по информатике и программированию Теоретическая часть. В данной расчетно-графической работе (далее РГР) требуется составить программу для решения системы нелинейных уравнений
Оценок: 1003 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru