8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 88 89 90 91 92 93 94 ... 365

the current х satisfies the termination criteria using OPTIONS.TolX of 1.0000C0e-004

x2 =

-0.1629

Кроме координаты точки локального минимума выводится информация об успешном завершении вычислительного процесса и точности, с которой (по умолчанию) найдено решение. Для изменения точности следует заново сформировать структуру options, указав еще одну пару входных аргументов. В следующем примере мы задаем не только опцию Display, но и точность Ю-9 по аргументу при помощи параметра Toix.

» options = optimset(Display, final, TolX, 1.0e-09);

» x2 = fminbnd(@ftest, -0.5, 0, options)

Optimization terminated successfully:

the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-009

x2 =

-0.16289942641268

Сравните полученный результат со значением, вычисленным fminbnd с используемой по умолчанию точностью 1(Н. Различие получено в шестом знаке после десятичной точки, следовательно, при первом вычислении точность была Ю-5, а не 1(И как выведено в сообщении. Информация, возвращаемая функцией fminbnd, содержит гарантированную точность, в то время как реальная точность может быть больше.

Аналогичным образом точность задается при нахождении корней и минимизации функции нескольких переменных.

В общем случае входные аргументы optimset задаются попарно

options = optimset(...,вид контроля, значение,...)

В двух предыдущих примерах Display и Toix — виды контроля, a final и 1.0е-09, соответственно— их значения. Возможные сочетания параметров вид контроля и значение приведены в табл. 6.1.

Таблица 6.1. Параметры optimset

Вид контроля

Значение

Результат

Примечание

Display

off

Информация о вычислительном процессе не выводится

iter

Выводится информация о каждом шаге вычислительного процесса


Таблица 6.1 (окончание)

Вид контроля

Значение

Результат

Примечание

Display

final *

Выводится информация только о завершении вычислительного процесса

notify*

Выводится предупреждение, если процесс не сходится (используется по умолчанию)

MaxFunEvals

Целое число

Максимальное количество вызовов исследуемой функции

Только для

fminbnd

fminsearch

Maxlter

Целое число

Максимальное количество итераций вычислительного процесса

Только для

fminbnd fminsearch

То1Fun

Положительное

вещественное

число

Точность по функции для останова вычислений

Только для

fminbnd fminsearch

TolX

Положительное

вещественное

число

Точность по аргументу функции для останова вычислений

Ограничивать количество вызовов функций и число итераций имеет смысл, если есть опасение, что получить решение не удастся из-за расхождения вычислительного процесса. В некоторых случаях приходится уменьшать точность, например, если вычисление исследуемой функции занимает много времени, а требуется получить только несколько первых значащих цифр ответа.

Пользователям, имеющим представление о численных методах, полезны сведения о ходе вычислений, выводимые на экран при значении параметра Display, равном iter. Последовательность команд

» options = optimset(Display, iter, TolX, 1.0e-09); » x2 = fminbnd(@ftest, -0.5, 0, options)

приводит к появлению в командном окне кроме результата еще и таблицы, каждая строка которой соответствует одной итерации и содержит информацию о том, какой раз вызывалась исследуемая функция, текущее приближение и значение функции от него и метод, применяемый на данной итерации.

Func-count хf(х)Procedure

1-0.3090170.873024initial


2

-0.190983

0.063294

golden

3

-0.118034

0.117247

golden

э

-0.162B99

D.0275217

parabolic

13

-0.162839

0.0275217

parabolic

Функция optimset служит также для модификации существующей структуры. Например, если сначала была задана только точность по аргументу

» options = optimset(TolX, 1.0е-09);

а в дальнейшем потребовалось дополнительно указать точность по функции и получить информацию о каждом шаге вычислительного процесса, то достаточно обратиться к функции optimset следующим образом:

» options = optimset(options, TolFun1, 1.0e-07, Display, iter);

Примите во внимание, что можно создать несколько структур с различными именами, к примеру: optionsl и options2, для различных вариантов управления вычислительным алгоритмом.

Для просмотра всех текущих опций можно вывести структуру options в командное окно или открыть ее в редакторе массивов двойным щелчком по строке с options в окне браузера переменных рабочей среды. Получение значения отдельного параметра производится при помощи функции optimget, входными аргументами которой являются имя структуры и название требуемого параметра:

» err = optimget(options, "TolX") err =

1.0000e-009

Если данному параметру не было присвоено значение при генерации структуры, то возвращается пустой массив.

Вызов функции optimset без входных аргументов

» optimset

приводит к отображению в командном окне названия всего множества параметров вместе с их допустимыми значениями. В фигурных скобках указаны значения, используемые в вычислительном алгоритме по умолчанию.

В разделе справочной системы MATLAB Mathematics: Function Functions: Minimizing Functions and Finding Zeros размещена подробная информация о минимизации функций и решении уравнений и, кроме того, приведены ссылки на литературу с описанием вычислительных методов, реализованных в MATLAB. Некоторые дополнительные возможности функций fplot, fzero, fminbnd и fminsearch обсуждаются в следующем разделе. В заключение этого раздела отметим, что большинство вычислительных функций, в



0 ... 88 89 90 91 92 93 94 ... 365