Программирование в пакете Mathcad: решение нелинейных уравнений и их систем
МИНИСТЕРСТВО
ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
Учреждение
образования «Гомельский государственный университет
имени
Франциска Скорины»
Математический
факультет
Кафедра
вычислительной математики и программирования
КУРСОВАЯ
РАБОТА
Программирование
в пакете Mathcad:
решение нелинейных уравнений и их систем
Гомель
2012
Реферат
Курсовая работа 51 страница, 23 рисунка, 10 источников.
Ключевые слова: системы нелинейных уравнений, программирование, простые
итерации, рекурсивные вычисления, исследование функции
Объект исследования: объектом исследования является система компьютерной
математики Mathcad на примере работы решения систем
нелинейных уравнений.
Цель курсовой работы: получение практических навыков работы в системе
компьютерной математики Mathcad
на примерах работы решения нелинейных систем уравнений.
Выводы: в ходе выполнения данной курсовой работы были получены
навыки работы в системе компьютерной математики Mathcad на примерах решения систем нелинейных уравнений.
Введение
уравнение мathcad векторный погрешность
Система Mathcad изначально была задумана как система
для численных вычислений. Но версия Mathcad 2001 стала настолько «интеллектуальной», что блестяще
справляется со множеством аналитических (символьных) вычислений. - это многофункциональная
интерактивная вычислительная система, позволяющая, благодаря встроенным
алгоритмам, решать аналитически и численно большое количество математических
задач. Рабочий документ Mathcad - электронная книга с живыми формулами,
вычисления в которой производятся автоматически в том порядке, в котором
записаны выражения. Отличается простым и удобным интерфейсом, написанием
выражений стандартными математическими символами, хорошей двух - и трехмерной
графикой, возможностью подключения к распространенным офисным и конструкторским
программам, а также к Internet.
Программирование занимает особое место в Mathcad. Для начального обучения
изучать его совершенно не обязательно. Возможности Mathcad позволяют решить
подавляющее количество задач без всякого программирования, да к тому же, как
правило, несколькими способами. Однако есть класс задач, при решении которых
без программирования не обойтись. Это задачи, в которых часть документа из
нескольких или многих операторов надо выполнить многократно. В таких случаях
документ должен состоять из отдельных подпрограмм, объединенных в единую
«головную» программу. И в этом случае программирования можно было бы избежать,
если бы создатели Mathcad предусмотрели оператор перехода к метке, который есть
(был) во многих языках программирования, в частности в FORTRAN.
позволяет вводить программы любой сложности. Образцом достаточно сложной
программы является программа решения плоской упругопластической задачи методом
конечных элементов.
Программирование в Mathcad чрезвычайно наглядно и понятно, так как
программа представляет собой последовательность формул. Основные операторы
программирования расположены на панели Programming (Программирование),
вызываемой щелчком на кнопке Programming Toolbar (Панель программирования) математической
панели. Далее программами будем называть не все документы Mathcad, а только те
из них, которые написаны с использованием панели программирования.
К важным достоинствам Mathcad относятся настройка под любой маломальски
известный тип печатающих устройств, богатый набор шрифтов, возможность
использования всех инструментов Windows, прекрасная графика и современный
многооконный интерфейс.
Многие задачи, решаемые с помощью математических пакетов, сводятся к
решению уравнений - алгебраических, степенных, тригонометрических, к поиску
значений неизвестных, превращающих эти уравнения в тождества строго или
приближенно. Успех в решении подобных задач зависит не только от мощности
соответствующих инструментов, встроенных в Mathcad, но и от знания пользователем их особенностей,
нюансов, сильных и слабых сторон.
1.
Решение уравнений с одной переменной
Уравнения можно решать различными методами, такими как: метод половинного
деления, метод простой итерации, метод хорд, метод касательных. В этой главе
рассмотрим подробнее вышеперечисленные методы.
1.1 Постановка
задачи
Наиболее общий вид нелинейного уравнения:
(1.1)
где
функция определена
и непрерывна на конечном или бесконечном интервале .
Определение
1.1. Всякое число обращающее
функцию F(x) в нуль,
называется корнем уравнения (1.1).
Определение
1.2. Число ,
называется корнем - ой
кратности, если при вместе с
функцией равны
нулю ее производные до -го
порядка включительно:
(1.2)
Определение 1.3. Однократный корень называется простым.
Определение
1.4. Уравнения и называются
равносильными (эквивалентными), если множества решений данных уравнений
совпадают.
Нелинейные
уравнения с одной переменной подразделяются на алгебраические и трансцендентные.
Определение
1.5. Уравнение (1.1) называется
алгебраическим, если функция является
алгебраической.
Путем
алгебраических преобразований из всякого алгебраического уравнения можно получить
уравнение в канонической форме:
(1.3)
где
-
действительные коэффициенты уравнения; -
неизвестное.
Из
алгебры известно, что всякое алгебраическое уравнение имеет, по крайней мере,
один вещественный или два комплексно сопряженных корня.
Определение
1.6. Уравнение (1.1) называется
трансцендентным, если функция не
является алгебраической.
Определение
1.7. Решить уравнение (1.1) означает
следующее:
установить
имеет ли уравнение корни;
определить
число корней уравнения;
найти
значения корней уравнения с заданной точностью.
1.2 Отделение
корней
Определение 1.8. Отделение корней - процедура нахождения отрезков, на которых
уравнение (1.1) имеет только одно решение.
В
большинстве случаев отделение корней можно провести графически. Для этого
достаточно построить график функции и
определить отрезки, на которых функция имеет
только одну точку пересечения с осью абсцисс.
В
сомнительных случаях графическое отделение корней необходимо подкреплять
вычислениями. При этом можно использовать следующие очевидные положения: если
непрерывная функция принимает на концах отрезка значения
разных знаков (т. е. ), то
уравнение (1.1) имеет на этом отрезке по меньшей мере один корень;
если
функция к тому же
и строго монотонна, то корень на отрезке единственный.
1.3 Метод
половинного деления
Пусть
уравнение (1.1) имеет на отрезке единственный
корень, причем функция на
данном отрезке непрерывна (рисунок 1.1).
Разделим
отрезок пополам
точкой . Если ,то
возможны два случая:
-
функция меняет
знак на отрезке ;
функция
меняет
знак на отрезке .
Выбирая
в каждом случае тот отрезок, на котором функция меняет знак, и, продолжая
процесс половинного деления дальше, можно дойти до сколь угодно малого отрезка,
содержащего корень уравнения.
Рисунок 1.1 - К объяснению метода половинного деления
Пример 1.1
Решение в пакете Mathcad методом половинного деления уравнения
1. Задание функции:
2. Построение графика функции (Рисунок 1.2).
Рисунок
1.2 - График функции
3. Задание
функции, реализующей метод половинного деления (Рисунок 1.3). Здесь аргументы
функции: - имя
функции, - левая и
правая координаты концов отрезка; -
точность вычисления корня.
4. Вычисление
значения корня уравнения:
5. Проверка найденного значения корня:
Для
рассмотрения процесса нахождения корня уравнения в динамке необходимо сохранить
значение корня на каждом шаге вычислительной процедуры и построить зависимость
значения корня от номера шага. Функция, возвращающая значение корня на каждом
шаге метода половинного деления, представлена на рисунке 1.4. Аргументы
функции: - имя
функции,- левая и
правая координаты концов отрезка, -точность
вычисления корня.
Рисунок
1.3 - Функция, реализующая метод половинного деления
Рисунок
1.4 - Функция, реализующая метод половинного деления и возвращающая значение
корня уравнения на каждом шаге процесса вычислений
После
создания функции необходимо дополнить описанный выше документ следующей
последовательностью команд.
1. Вычисление матрицы, первый столбец которой содержит номер итерации,
второй - значение корня:
2. Визуализация зависимости значения корня от номера шага
вычислительной процедуры (рисунок 1.5).
Рисунок
1.5 - Зависимость значения корня от номера шага вычислительной процедуры
1.4
Метод простой итерации
Заменим уравнение (1.1) равносильным уравнением
.
(1.4)
Пусть
- корень
уравнения (1.4), а ,
полученное каким-либо способом нулевое приближение к корню .
Подставляя в правую
часть уравнения (1.4),получим некоторое число .
Повторим данную процедуру с и получим
.
Повторяя описанную процедуру, получим последовательность называемую
итерационной последовательностью.
(1.5)
Итерационная
последовательность, вообще говоря, может быть как сходящейся, так и
расходящейся, что определяется видом функции .
Теорема
1.1. Если функция непрерывна, а последовательность (1.5) сходится, то
предел последовательности (1.5) является корнем уравнения (1.4).
Действительно,
пусть .
Перейдем к пределу в равенстве
. (1.6)
Условие
сходимости итерационного процесса определяется теоремой о достаточном условии
сходимости итерационного процесса.
Геометрическая
интерпретация данного алгоритма представлена на рисунке 1
Рисунок 1.6 - К объяснению метода простой итерации
Теорема
1.2. Пусть уравнение имеет единственный корень на отрезке и
выполнены условия:
. определена и дифференцируема на .
2. для всех
.
3. Существует
такое вещественное , что для всех .
Тогда
итерационная последовательность сходится при любом начальном приближении
Доказательство. Построим итерационную последовательность вида (1.5)
с любым начальным значением . В силу
условия 2 теоремы 1.2 все члены последовательности находятся в отрезке .
Рассмотрим
два последовательных приближения и .
По
теореме Лагранжа о конечных приращениях имеем
Переходя
к модулям и принимая во внимание условие 3 теоремы 1.2, получим
При
имеем
(1.7)
…
Рассмотрим
ряд
(1.8)
Составим
частичные суммы этого ряда
Заметим,
что я
частичная сумма ряда (1.8) совпадает с n - ым членом итерационной
последовательности (1.5), т. е.
(1.9)
Сравним
ряд (1.8) с рядом
(1.10)
Заметим,
что в силу соотношения (1.7) абсолютные величины членов ряда (1.8) не
превосходят соответствующих членов ряда (1.10). Но ряд (1.10) сходится как
бесконечно убывающая геометрическая прогрессия (по
условию ). Следовательно, и ряд (1.8) сходится, т. е. его частичная сумма (1.9)
имеет предел. Пусть . В силу
непрерывности функции получаем
(по формуле 1.6):
т.
е. - корень
уравнения .
Отметим,
что условия теоремы не являются необходимыми. Это означает, что итерационная
последовательность может оказаться сходящейся и при невыполнении этих условий.
1.5 Оценка
погрешности метода простой итерации
Пусть
приближение
к истинному значению корня уравнения .
Абсолютная ошибка приближения ,
оценивается модулем
.
Принимая
во внимание (1.8) и (1.9), имеем
(1.11)
Сравним
(1.11) с остатком ряда (1.9):
(1.12)
Учитывая
оценку (1.7), получаем
||.
Таким
образом, для оценки погрешности - го
приближения получается формула
(1.13)
На
практике удобнее использовать модификацию формулы (1.13).
Примем
за нулевое приближение (вместо).
Следующим приближением будет (вместо ). Так
как то
(1.14)
При
заданной точности ответа итерационный
процесс прекращается, если
.
1.6 Преобразование
уравнения к итерационному виду
Уравнение
=0
преобразуется к виду, пригодному для итерационного процесса, следующим
преобразованием
где
отличная
от нуля константа.
В
этом случае
(1.15)
Функция
должна
удовлетворять условиям теоремы 1.2. Дифференцируя (1.15), получим
Для
выполнения условия 3 теоремы 1.2 достаточно подобрать так,
чтобы для всех
(1.17)
1.7 Решение
уравнений методом простой итерации в пакете Mathcad
Продемонстрируем использование метода простой итерации на примере
нахождения корня уравнения
1. Задание функции, стоящей в правой части (1.1):
2.
Задание функции в соответствии с (1.15):
3. Задание функции в соответствии с (1.16):
.
4. Построение графиков функций (рисунок
1.7).
Рисунок
1.7 - Графики функций и
5. Задание функции, реализующей вычислительную схему метода простой итерации
на каждом шаге итерационного процесса (рисунок 1.8).
Рисунок
1.8 - Функция, реализующая вычислительную схему метода простой итерации
6. Задание функции, стоящей в правой части (1.15):
7. Задание начального приближения:
8. Вычисление значений корня уравнения на каждом шаге
итерационного процесса:
9. Визуализация итерационного процесса (рисунок 1.9):
Рисунок
1.9 - Зависимость значения корня уравнения от номера шага итерационного
процесса
10.
Вывод точного значения корня: .
11. Вывод значения функции: .
1.8 Метод
хорд
Пример 1.2
Решить
уравнение методом
хорд с точностью
1. Отделяем
корни. Этот этап решения
осуществляется с помощью аналитического или графического метода. После того как
корень, подлежащий уточнению, отделен, за начальное приближение может быть
выбрана любая точка (начало
отрезка, его середина и т. д.).
Воспользуемся графическим методом. Построим график функции и найдем точки
пересечения его с осью Ох (рисунок 1.10).
Рисунок
1.10 - Отделение корней графически
Получили
два интервала: Интервал,
в котором мы будем уточнять корень -
2. Уточняем корни. Находим первую производную функции
:
3. Определяем
знаки на
отрезке :
Рисунок
1.11 - Проверка критерия достижения заданной точности
Значит,
на данном отрезке действительно существует корень нашего уравнения.
4. Строим последовательность значений с использованием
рекуррентной формулы метода хорд и проанализируем результаты вычисленных
значений последовательности (рисунок
1.11). Для этого рассмотрим значения функции - эта
величина является критерием достижения заданной точности . Начиная
с ,
значения удовлетворяют
критерию достижения заданной точности значит, является
решением нашего уравнения.
5. Создаем функцию, реализующую вычисления корня
уравнения на
отрезке с
точностью методом
хорд (рисунок 1.12). Решением будет являться число 1,927, получившееся на
третьем шаге решения.
Рисунок
1.12 - Функция, возвращающая значения корня уравнения методом хорд. Аргументы
функции -
концы отрезка; -
погрешность вычислений -
функция первой производной
6. Проверяем решение (рисунок 1.13)
7.
Рисунок
1.13 - Проверка решения уравнения встроенными функциями Mathcad
Ответ: корень уравнения по методу хорд равен 1,927 с
точностью 0,001, найденный на третьем шаге.
1.9 Метод
касательных
Пример 1.3
Уточнить методом касательных корень уравнения
на
отрезке с
точностью .
1. Отделяем корни уравнения.
2. Определяем неподвижную точку.
Для
этого определим знаки функции и второй производной на отделенном интервале Для
этого составим функцию, проверяющую условие неподвижности точки (рисунок 1.14).
Рисунок
1.14 - Определение неподвижной точки
Тогда
подвижной точкой будет точка .
3. Вычисляем значение итерационной последовательности с использованием рекуррентной
формулы метода касательных (рисунок 1.15).
Рисунок
1.15 - Построение итерационной последовательности по методу касательных
Анализируя
полученные значения для достижения критерия заданной точности, можно сказать,
что решением уравнения будет значение
при , т. к. .
4. Создаем функцию, реализующую метод касательных (аналогично методу хорд).
Отметим, что в пакете Mathcad имеется еще несколько функций, позволяющих
решать уравнения, например, функция solve, вызываемая с панели Symbolic
(рисунок 1.16).
Рисунок 1.16 - Панель Symbolic
Пример использования команды solve представлен на рисунке 1.17.
Рисунок
1.17 - Решение уравнения с помощью команды solve
2. Методы решения систем нелинейных уравнений
Системы нелинейных уравнений можно решать различными методами, такими
как: метод простых итераций, метод Ньютона, методами спуска. Рассмотрим
вышеперечисленные методы.
2.1 Векторная
запись нелинейных систем. Метод простых итераций
Пусть требуется решить систему уравнений:
(2.1)
где
-
заданные, вообще говоря, нелинейные вещественнознаные функции вещественных
переменных .
Введя
обозначения:
=
систему
(2.1) можно заменить одним уравнением:
, (2.2)
относительно
векторной функции векторного
аргумента .
Таким
образом, исходную задачу можно рассматривать как задачу о нулях нелинейного
отображения . В такой
постановке данная задача является прямым обобщением задачи о нахождении решения
нелинейного уравнения для случая пространств большей размерности. Это означает,
что можно строить методы ее решения как на основе обсужденных в предыдущей
лекции подходов, так и осуществлять формальный перенос выведенных для
скалярного случая расчетных формул. Однако не все результаты и не все методы
оказывается возможным перенести формально (например, метод половинного
деления). В любом случае следует позаботиться о правомерности тех или иных
операций над векторными переменными и векторными функциями, а также о
сходимости получаемых таким способом итерационных процессов. Отметим, что
переход от к вносит в
задачу нахождения нулей нелинейного отображения свою специфику, учет которой
привел к появлению новых методов и различных модификаций уже имеющихся методов.
В частности, большая вариативность методов решения нелинейных систем связана с
разнообразием способов, которыми можно решать линейные алгебраические задачи,
возникающие при пошаговой линеаризации данной нелинейной вектор - функции .
Начнем
изучение методов решения нелинейных систем с метода простых итераций.
Пусть
система (2.1) преобразована к следующей эквивалентной нелинейной системе:
(2.3)
или
в компактной записи:
=. (2.4)
Для
этой задачи о неподвижной точке нелинейного отображения запишем
формальное рекуррентное равенство:
(2.5)
где
которое
определяет метод простых итераций для задачи (2.3).
Если
начать процесс построения последовательности с некоторого
вектора и
продолжить вычислительный процесс по формуле (2.5), то при определенных
условиях данная последовательность со скоростью геометрической прогрессии будет
приближаться к вектору
-
неподвижной точке отображения .
Справедлива
следующая теорема, которую мы приводим без доказательства
Теорема
2.1. Пусть функция и замкнутое
множество таковы,
что:
1. для любого
2. для любого
Тогда
имеет в М
единственную неподвижную точку последовтельность
определяемая
(2.5), сходится при любом справедливы
оценки
для
любого
Отметим
низкую практическую ценность данной теоремы из - за неконструктивности ее
условий. В случаях, когда выбрано хорошее начальное приближение решению , больший
практический интерес представляет следующая теорема.
Теорема
2.2. Пусть дифференцируема в замкнутом шаре причём
Тогда если центр и радус r шара S таковы, что то
справедливо заключение теоремы 2.1 .
Запишем
метод последовательных приближений (2.5) в развернутом виде:
(2.6)
Учитывая,
что в линейном случае, как правило, более эффективным является метод Зейделя, в
данном случае также может оказаться более эффективной его многомерный аналог,
называемый методом покоординатных итераций.
(2.7)
Заметим,
что, как и для линейных систем, отдельные уравнения в (2.7) неравноправны, т.
е. перемена местами уравнений системы (2.3) может изменить в некоторых пределах
число итераций и вообще ситуацию со сходимостью последовательности итераций.
Для того чтобы применить метод простых итераций (2.6) или его зейделеву
модификацию (2.7) к исходной системе (2.1), необходимо сначала тем или иным
способом привести эту систему к виду (2.3). Это можно сделать, например,
умножив (2.2) на неособенную матрицу
А и прибавив к обеим частям уравнения вектор
неизвестных. Полученная система
, (2.8)
эквивалентна
исходной и имеет вид, аналогичный уравнению в методе итераций в одномерном
случае. Проблема состоит лишь в правильном подборе матричного параметра.
2.2 Метод
Ньютона решения систем нелинейных уравнений
Для
решения системы (2.3) будем пользоваться методом последовательных приближений.
Предположим, известно е
приближение
,
одного
из изолированных корней векторного
уравнения (2.2). Тогда точный корень уравнения (2.2) можно представить в виде:
, (2.9)
где
-
поправка (погрешность корня). Подставляя выражение (2.9) в (2.2), имеем:
. (2.10)
Предполагая,
что функция непрерывно
дифференцируема в некоторой выпуклой области, содержащей и ,
разложим левую часть уравнения (2.10) по степеням малого вектора ,
ограничиваясь линейными членами:
,(2.11)
или,
в развернутом виде,
(2.12)
Из
формул (2.11) и (2.12) видно, что под производной следует
понимать матрицу Якоби системы функций относительно
переменных ,т. е.
,
или
в краткой записи:
поэтому
формула (2.12) может быть записана в следующем виде:
. (2.13)
Если
то
(2.14)
Отсюда
видно, что метод Ньютона решения системы (2.1) состоит в построении
итерационной последовательности:
(2.15)
где
Если
все поправки становятся достаточно малыми, счет прекращается. Иначе новые
значения .
Используются как приближенные значения корней, и процесс повторяется до тех
пор, пока не будет найдено решение или не станет ясно, что получить его не
удастся.
Пример
2.1
Найти
методом Ньютона приближенное положительное решение системы уравнений:
Полагая:
имеем:
Отсюда:
Составим
матрицу Якоби:
Имеем:
причем
Следовательно,
матрица -
неособенная. Вычисляем обратную ей матрицу:
По
формуле (2.15) получаем первое приближение:
Аналогично
находятся дальнейшие приближения. Результаты вычислений приведены в таблице
2.1.
Таблица
2.1 - Последовательные приближения корней
i
|
x
|
y
|
z
|
0
|
0,5
|
0,5
|
0,5
|
1
|
0,875
|
0,5
|
0,375
|
2
|
0,78981
|
0,49662
|
0,36993
|
3
|
0,78521
|
0,49662
|
0,36992
|
Останавливаясь на приближении, будем иметь:
х
= 0,7852; у = 0,4966; z = 0,3699.
Пример 2.2
Решить систему двух нелинейных уравнений
методом Ньютона.
Решение
Рисунок 2.1 - Задание координатной сетки
1. Зададим координатную сетку и вычислим значения
координат и в узлах
сетки (рисунок 2.1).
Рисунок 2.2 - График функции и карта линий уровня
2. Построим график функции и карты линий уровня (рисунок 2.2) (на которых
наглядно видно, что данная система имеет решение, и причем единственное) с
использованием панели Graph (рисунок 2.3).
Рисунок 2.3 - Панель Graph
3. Точки пересечения линий одинакового уровня дают решение данной системы
уравнений.
4. Зададим начальное приближение переменных:
Рисунок 2.4 - Вектор-функция, задающая систему уравнений
5. Зададим функцию, содержащую решение системы уравнений
Рисунок 2.5 - Функция, возвращающая решение системы методом
Ньютона
6. Зададим функцию (рисунок 2.5), реализующую метод
Ньютона (функция возвращает
таблицу, содержащую значения координат на
каждом шаге итерации и соответствующие значения координат вектор-функции).
Запустив
программу, получим итерационную последовательность, которая показывает, как
находятся приближения. Здесь две первые строки - это значения и соответственно,
а последние две строки - значения данных функций при найденных значениях и. В ноль
функции обращаются на седьмом шаге. Значит, решением будет являться пара чисел и .
7. Проверяем решение системы нелинейных уравнений с помощью блока Given...Minerr
(рисунок 2.6).
Рисунок
2.6 - Проверка численного решения при помощи встроенных функций пакета Mathcad
Ответ: .
(2.16)
Из
функций , системы
(2.16) образуем новую функцию:
(2.17)
Так
как эта функция неотрицательная, то найдется точка (вообще говоря, не
единственная) такая
что:
Рисунок 2.4 - Пространственная интерпретация метода
наискорейшего спуска для функции (2.17)
Следовательно, если тем или иным способом удается получить точку
,
минимизирующую функцию и если при этом окажется, что то точка
-
истинное решение системы (2.16), поскольку
Последовательность
точек -
приближений к точке минимума
функции - обычно
получают по рекуррентной формуле:
(2.18)
где
- вектор,
определяющий направление минимизации, а -
скалярная величина, характеризующая величину шага минимизации (шаговый
множитель). Учитывая геометрический смысл задачи минимизации функций двух
переменных -
"спуск на дно" поверхности (рис.
2.4), итерационный метод (2.18) можно назвать методом спуска, если вектор при
каждом является
направлением спуска (т. е. существует такое , что ) и если
множитель подбирается
так, чтобы выполнялось условие релаксации <
означающее переход на каждой итерации в точку с меньшим значением
минимизируемой функции.
Таким
образом, при построении численного метода вида (2.18) минимизации функции следует
ответить на два главных вопроса: как выбирать направление спуска и как
регулировать длину шага в выбранном направлении с помощью скалярного параметра
- шагового множителя ?
Приведем простые соображения по этому поводу.
При
выборе направления спуска естественным является выбор такого направления, в
котором минимизируемая функция убывает наиболее быстро.
Рисунок 2.5 - Траектория наискорейшего спуска для функции
(2.17)
Как известно из математического анализа функций нескольких переменных,
направление наибольшего возрастания функции в данной точке показывает ее
градиент в этой точке. Поэтому примем за направление спуска вектор
-
антиградиент функции Таким
образом, из семейства методов (2.18) выделяем градиентный метод:
(2.19)
Оптимальный
шаг в направлении антиградиента - это такой шаг, при котором значение - наименьшее
среди всех других значений в этом
фиксированном направлении, т. е. когда точка является
точкой условного минимума. Следовательно, можно рассчитывать на наиболее
быструю сходимость метода (2.19), если полагать в нем
. (2.20)
Такой
выбор шагового множителя, называемый исчерпывающим спуском, вместе с формулой
(2.19) определяет метод наискорейшего спуска.
Геометрическая
интерпретация этого метода хорошо видна из рисунка 2.4, 2.5. Характерны
девяностоградусные изломы траектории наискорейшего спуска, что объясняется
исчерпываемостью спуска и свойством градиента (а значит, и антиградиента) быть
перпендикулярным к линии уровня в соответствующей точке.
Наиболее
типичной является ситуация, когда найти точно (аналитическими методами)
оптимальное значение не удается.
Следовательно, приходится делать ставку на применение каких-либо численных
методов одномерной минимизации и находить в (2.18)
лишь приближенно.
Несмотря
на то, что задача нахождения минимума функции одной переменной намного
проще, чем решаемая задача, применение тех или иных численных методов
нахождения значений с той
или иной точностью требует вычисления нескольких значений минимизируемой
функции. Так как это нужно делать на каждом итерационном шаге, то при большом
числе шагов реализация метода наискорейшего спуска в чистом виде является
достаточно высокозатратной. Существуют эффективные схемы приближенного
вычисления квазиоптимальных , в
которых учитывается специфика минимизируемых функций (типа сумм квадратов
функций).
Зачастую
успешной является такая стратегия градиентного метода, при которой шаговый
множитель в (2.18)
берется либо сразу достаточно малым постоянным, либо предусматривается его
уменьшение, например, делением пополам для удовлетворения условию релаксации на
очередном шаге. Хотя каждый отдельный шаг градиентного метода при этом, вообще
говоря, далек от оптимального, такой процесс по числу вычислений функции может
оказаться более эффективным, чем метод наискорейшего спуска.
Главное
достоинство градиентных методов решения нелинейных систем - глобальная
сходимость. Нетрудно доказать, что процесс градиентного спуска приведет к
какой-либо точке минимума функции из любой начальной точки. При определенных
условиях найденная точка минимума будет искомым решением исходной нелинейной
системы.
Главный
недостаток - медленная сходимость. Доказано, что сходимость этих методов - лишь
линейная, причем, если для многих методов, таких как метод Ньютона, характерно
ускорение сходимости при приближении к решению, то здесь имеет место скорее
обратное. Поэтому есть резон в построении гибридных алгоритмов, которые
начинали бы поиск искомой точки - решения данной нелинейной системы, -
глобально сходящимся градиентным методом, а затем производили уточнение
каким-то быстросходящимся методом, например, методом Ньютона (разумеется, если
данные функции обладают нужными свойствами).
Примечание.
Порядком сходимости последовательности
к называют
такое число , что
где
при всех
.
Разработан
ряд методов решения экстремальных задач, которые соединяют в себе низкую
требовательность к выбору начальной точки и высокую скорость сходимости. К
таким методам, называемым квазиньютоновскими, можно отнести, например,
метод переменной метрики (Дэвидона-Флетчера-Пауэлча), симметричный и
положительно определенный методы секущих (на основе формулы пересчета
Бройдена).
При
наличии негладких функций в решаемой задаче следует отказаться от использования
производных или их аппроксимаций и прибегнуть к так называемым методам
прямого поиска Циклического покоординатного спуска, Хука и Дживса, Розенброка и
т. п.).
Замечание
1. Для разных семейств численных
методов минимизации могут быть рекомендованы свои критерии останова
итерационного процесса. Например, учитывая, что в точке минимума
дифференцируемой функции должно выполняться необходимое условие экстремума, на
конец счета градиентным методом можно выходить, когда достаточно малой
становится норма градиента. Если принять во внимание, что минимизация
применяется к решению нелинейной системы, то целесообразнее отслеживать
близость к нулю минимизируемой неотрицательной функции, т. е. судить о точности
получаемого приближения по квадрату его евклидовой метрики.
Замечание
2. Для решения - мерной
системы (2.1) следует свести задачу к решению экстремальной задачи:
Рассмотрим
далее примеры реализации некоторых алгоритмов поиска экстремумов функций,
зависящих от нескольких переменных в пакете Mathcad.
Пример
2.3
Алгоритм
поиска экстремума с шагом, не зависящим от свойств минимизируемой функции.
Простейший
вариант метода наискорейшего спуска рассмотрим на примере поиска минимума
квадратической функции двух
переменных с оврагом, пологость которого определяется параметром:
– при
функция
представляет собой параболоид вращения;
– при
параболоид
становится эллиптическим, "вытягиваясь" вдоль оси Ох (при - вдоль
оси Оу).
Проведем построение графика исследуемой функции.
Пример 2.4
Алгоритм поиска экстремума с шагом, зависящим от свойств минимизируемой
функции (использование производной по направлению).
Исследуем алгоритм применительно к минимизации функции двух переменных,
заданной полиномом 4-го порядка:
форма
которой определяется коэффициентами и.т.д.
Заключение
В результате выполнения данной курсовой работы были получены навыки по
использованию системы компьютерной математики Mathcad на примерах решения нелинейных уравнений и их систем.
В ходе выполнения работы были рассмотрены следующие программные
реализации методов решений уравнений и их систем:
· Метод половинного деления;
· Метод простой итерации;
· Метод хорд;
· Метод касательных;
· Метод спуска.
Список используемых источников
1. Гурский, Д.А. Вычисления в MATCHCAD 12 / Д.А.Гурский, Е.С. Турбина. -
СПб.: Питер, 2006. - 544с.
2. Поршнев, С.В. Численные методы на базе MATCHCAD /С.В. Поршнев, И.В. Беленкова. -
СПб.: БХВ-Питербург, 2005. - 464с.
. Макаров, Е.Г. Инженерные расчёты в MATCHCAD 14 / Е.Г Макаров. -СПб.: Питер,
2007.- 592с.
. Очков, В. Mathcad 14 для студентов, инженеров и конструкторов / В. Очков. - BHV.: - Спб, 2007. - 368с.
. Шушкевич, Г. Компьютерные технологии в математике.
Система Mathcad 14. Часть1 / Г. Шушкевич, С.
Шушкевич. - Издательство Гревцова. 2010. - 288с.
. Максфилд, Б. Mathcad в инженерных расчётах/Б. Максфилд.- Корона-век, 2012.
- 368с.
. Копчёнова, Н.В. Вычислительная математика в примерах
и задачах/Н.В.Копчёнова, И.А.Марон. - М.: - Наука, 1972. - 368с.
. Дьяконов, В. Mathcad 2000. Учебный курс / В.
Дьяконов. - СПб.: Питер, 2001. - 592с.
. Березин, И.С. Методы вычислений / И.С. Березин. Н.П.
Жидков.-М.: - Наука,1966. - 632с.