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

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

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

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

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

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 с полученными входными данными. Формат вызова данного модуля описан далее (в описании самого модуля).

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