Название: | Решение системы нелинейных уравнений |
Просмотров: | 69 |
Раздел: | Информатика, программирование |
Ссылка: | Скачать(6 KB) |
Описание: | Теоретическая часть. В данной расчетно-графической работе (далее РГР) требуется составить программу для решения системы нелинейных уравнений методом последовательной итерации обратной матрицы Якоби. Суть метода в следующем: Пусть требуется решить систему нелинейных алгебраических или трансцендентных уравнений: F1(X1,X2,...,Xn)=0; i=1,2,...,n, с начальным приближением к решению: X0=(x10,x20,...xn0). Вычислительная схема реализованного метода состоит в следующем: В начале итерационного процесса матрица H полагается равной единичной: H0=E. Затем для k=0,1,... 1. |
|
Часть полного текста документа:Теоретическая часть. В данной расчетно-графической работе (далее РГР) требуется составить программу для решения системы нелинейных уравнений методом последовательной итерации обратной матрицы Якоби. Суть метода в следующем: Пусть требуется решить систему нелинейных алгебраических или трансцендентных уравнений: 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. ............ |