Курсовая работа: Исследование метода продолжения решения по параметру для нелинейных САУ
Идея метода состоит в следующем. Полагаем t1= ∆t и решаем систему H (x, t1 ) =0 при выбранном x0 . Получаем xt 1 . Далее, берем его в качестве начального приближения и решаем при новом t2 =t1 +∆t систему H (x, t2 ) =0, получаем xt 2 и так далее до тех пор, пока не будет достигнута заданная точность. Нелинейные системы H (x, ti ) =0 на каждом шаге по t решаются, например, методом Ньютона, который обычно сходится, так как xt i-1 и xt i лежат близко друг к другу. Если несмотря на это решение xt i не получается за 6-7 итераций, ∆t уменьшается и система H (x, ti ) =0 решается снова.
Последовательность шагов реализации алгоритма состоит в следующем:
Шаг 1. Формирование системы H ( x, t) =0.
Шаг 2. Выбор начального приближения x0 , (например, x0 =0) и точности решения εgon .
Шаг 3. Полагаем i=1.
Шаг 4. Вычисляем ti =ti-1 +∆t (обычно вначале берут ∆t=0,1)
Шаг 5. Решаем систему H (x, ti ) =0. Получаем вектор xt i . При этом считаем число итераций m. Если m>10, значит метод Ньютона уже не сойдется, так как xt i-1 и xt i слишком далеки друг от друга. Тогда надо уменьшить ∆t в два раза и вернуться к шагу 4. Будем считать, что xt i найдено.
Шаг 6. Проверяем, достигли ли мы заданной точности. Например, используя первый способ,
|| xt i -xt i-1 || ≤ εgon .
Если последнее условие не соблюдается, то переходим к шагу 4. Иначе считаем, что x*= xt i и расчеты закончены.
2. Описание программного обеспечения
2.1 Общие сведения и требования к ПО и описание логической структуры
ПО состоит из следующих файлов: mpr. m, prog. m, funf. m, funj. m. Программы, реализующие метод, разработаны в среде МаtLab, предназначенной для выполнения математических операций. Программа состоит из программы-функции mpr. m, которая описывает метод, программы с данными - основная программа prog. mи двух подпрограмм-функций funf. m - для нахождения корней системы уравнений; funj. m - для нахождения матрицы Якоби. Рассмотрим их подробнее.
Функциональное назначение
Программа предназначена для решения систем нелинейных алгебраических уравнений в среде МаtLab методом продолжения решения по параметру.
Используемые переменные:
t - время выполнения итерационного процесса;
x - вектор начального приближения к решению;
n - размерность вектора;
m - номер итерационного процесса;
it - счетчик итераций.
Входные параметры:
funf - формальное имя программы, которое дает возможность вычислить корни нелинейных САУ.
funj - формальное имя программы, которое дает возможность вычислить матрицу Якоби.
x0 - начальное приближение собственного вектора;
dt - приращение времени;
edop - заданная допустимая ошибка;
trace - установка режима вывода на экран;
Выходные параметры:
tout - выходное значение времени;
xout - конечное значение x;
dxout - конечное значение вектора ошибки.
Тексты программ: