Программа для решения системы нелинейных уравнений методом последовательной итерации обратной матрицы Якоби
Теоретическая часть.
В данной расчетно-графической работе (далее РГР) требуется составить программу для решения системы нелинейных уравнений методом последовательной итерации обратной матрицы Якоби.
Суть метода в следующем:
Пусть требуется решить систему нелинейных алгебраических или трансцендентных уравнений:
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 с полученными входными данными. Формат вызова данного модуля описан далее (в описании самого модуля).
После вычислений в головную программу возвращаются результаты вычислений на основе которых строятся графики, а также выводятся оценки по затратам машинного времени и быстродействия.