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