Иллюстрированный самоучитель по MathCAD 12

Градиентные методы: функция Find

Выбор градиентного алгоритма

Как уже отмечалось, Mathcad предлагает три различных варианта градиентных методов. Чтобы поменять численный метод:

  1. Щелкните правой кнопкой мыши на названии функции Find.
  2. Наведите указатель мыши на пункт Nonlinear (Нелинейный) в контекстном меню.
  3. В появившемся подменю (рис. 5.9) выберите один из трех методов: Conjugate Gradient (Сопряженных градиентов), Quasi-Newton (квазиньютоновский) или Levenberg-Marquardt (Левенберга-Маркарда).

Иллюстрированный самоучитель по MathCAD 12 › Нелинейные алгебраические уравнения › Градиентные методы: функция Find
Рис. 5.9. Выбор численного алгоритма

Чтобы вернуть автоматический выбор типа численного метода, в контекстном меню надо выбрать пункт AutoSelect (Автоматический выбор). Если установлена опция автоматического выбора (о чем говорит флажок, установленный в пункте AutoSelect), то текущий тип численного метода можно узнать, вызвав то же самое подменю и посмотрев, который из них отмечен точкой. Два последних метода являются квази-ньютоновскими, основная идея которых была рассмотрена выше. Первый из них, метод сопряженных градиентов, является двухшаговым – для поиска очередной итерации он использует как текущую, так и предыдущую итерации. Алгоритм Левенберга подробно описан в справочной системе Mathcad, а подробную информацию о методах Ньютона и сопряженных градиентов можно найти в большинстве книг по численным методам.

Параметры градиентных алгоритмов

Помимо выбора самих методов имеется возможность устанавливать их некоторые параметры. Для этого нужно вызвать с помощью того же контекстного меню диалоговое окно Advanced Options (Дополнительные параметры), выбрав в контекстном меню пункты Nonlinear › Advanced options (Нелинейный › Дополнительные параметры). В этом диалоговом окне (рис. 5.10) имеется пять групп переключателей по два в каждой.

В первой строке – Derivative estimation (Аппроксимация производной) – определяется метод вычисления производной Forward (Вперед) или Central (Центральная). Они соответствуют аппроксимации производной либо правой (двухточечная схема "вперед"), либо центральной (трехточечная симметричная схема) конечной разностью.

Примечание
Обратите внимание, что вычисление производной в градиентных численных методах решения уравнений производится более экономичным способом, нежели при численном дифференцировании (см. главу 3)
.

Иллюстрированный самоучитель по MathCAD 12 › Нелинейные алгебраические уравнения › Градиентные методы: функция Find
Рис. 5.10. Диалоговое окно Advanced Options

Во второй строке – Variable estimation (Аппроксимация переменных) – можно определить тип аппроксимации рядом Тейлора. Для рассмотренного нами в этом разделе случая аппроксимации касательной прямой линией выберите переключатель Tangent (Касательная), для более точной квадратичной аппроксимации (параболой) выберите Quadratic (Квадратичная). Следующая группа переключателей – Linear variable check (Проверка линейности) – позволяет в специфических задачах сэкономить время вычислений. Если вы уверены, что нелинейности всех функций, входящих в уравнение, мало сказываются на значениях всех их частных производных, то установите переключатель Yes (Да). В этом случае производные будут приняты равными константам и не будут вычисляться на каждом шаге.

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

Пара переключателей Multistart (Сканирование) задает опцию поиска глобального или локального минимума или максимума. Если выставлен переключатель Yes (Да), Mathcad будет пытаться найти наиболее глубокий экстремум из области, близкой к начальному приближению. Эта опция предназначена, в основном, для настройки (тех же самых градиентных) алгоритмов поиска экстремума, а не для решения алгебраических уравнений (см. главу 6).

Наконец, последний переключатель – Evolutionary (Эволюционный алгоритм), – если установить его в положение Yes (Да), позволяет использовать модификацию численного метода для решения уравнений, определяемых не обязательно гладкими функциями. Как мы убедились в этом разделе, все градиентные методы, реализованные в функции Find, требуют многократного вычисления производных. Если вы работаете с достаточно гладкими функциями, то градиентные методы обеспечивают быстрый и надежный поиск корня. Для поиска корня недостаточно гладких функций одной переменной следует либо выставить данную опцию функции Find, либо использовать метод секущих (функцию root). Помните, что правильный выбор численного метода и его параметров может помочь при решении нестандартной задачи, которая при стандартных установках может и не поддаваться решению.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.