Раздел: Документация
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
Таблица 6.1 (окончание)
Ограничивать количество вызовов функций и число итераций имеет смысл, если есть опасение, что получить решение не удастся из-за расхождения вычислительного процесса. В некоторых случаях приходится уменьшать точность, например, если вычисление исследуемой функции занимает много времени, а требуется получить только несколько первых значащих цифр ответа. Пользователям, имеющим представление о численных методах, полезны сведения о ходе вычислений, выводимые на экран при значении параметра 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
|