- •Лабораторная работа 1. Исследование методов одномерного поиска минимума унимодальных функций
- •Требования задания
- •Контрольные вопросы
- •Содержание отчета
- •Лабораторная работа 2. Исследование методов полиномиальной интерполяции для поиска минимума целевых функций
- •Требования задания
- •Контрольные вопросы
- •Содержание отчета
- •3.1 Требования задания
- •3.2 Контрольные вопросы
- •Лабораторная работа 3. Исследование методов линейного поиска
- •3.3 Содержание отчета
- •Лабораторная работа 4. Исследование градиентных методов
- •4.1 Требования задания
- •4.2 Контрольные вопросы
- •4.3 Содержание отчета
- •Лабораторная работа 5. Проектирование программы оптимизации
- •5.1 Требования задания
- •5.2 Контрольные вопросы
- •5.3 Содержание отчета
- •Лабораторная работа 6. Исследование модификаций ньютоновских оптимизационных процессов
- •6.1 Требования задания
- •6.2 Контрольные вопросы
- •6.3 Содержание отчета
- •Лабораторная работа 7. Исследование методов безусловной оптимизации первого порядка
- •7.1 Требования задания
- •7.2 Контрольные вопросы
- •7.3 Содержание отчета
- •Лабораторная работа 8. Исследование методов безусловной оптимизации нулевого порядка
- •8.1 Требования задания
- •8.2 Контрольные вопросы
- •8.3 Содержание отчета
- •Лабораторная работа 9. Исследование алгоритмов случайного поиска
- •9.1 Требования задания
- •9.2 Контрольные вопросы
- •8.3 Содержание отчета
- •Приложения Приложение 1. Метод средней точки (метод Больцано)
- •Приложение 2. Метод трехточечного поиска на равных интервалах
- •Приложение 3. Метод Ньютона
- •Приложение 4. Метод линейной интерполяции (метод секущих)
- •Приложение 5. Метод кубической интерполяции для одномерной минимизации
- •Приложение 6. Метод Фибоначчи
- •Приложение 7. Метод Зангвилла
- •Приложение 8. Алгоритм lPт поиска
- •Приложение 9. Минимизация целевых функций в Microsoft Ecxel 8.0
- •Приложение 10. Тестовые функции
- •Список рекомендуемой литературы
Приложение 9. Минимизация целевых функций в Microsoft Ecxel 8.0
Общие сведения
Работа с Excel похожа на работу с MS Word. Поэтому проведем аналогии:
При создании нового файла Word называет его Документ 1, Документ 2 и так далее; Excel называет Книга 1, Книга 2 и т.д.
Расширение Word-а (*.doc); расширение Excel (*.xls).
Документ Word состоит из страниц, а книга Excel состоит из листов, которые можно добавлять, удалять, копировать, переименовывать и т.д.
Работа команд Открыть, Закрыть, Создать, Сохранить, Сохранить как из меню Файл вообще идентична.
Т
еперь
запустим Excel 97 и ознакомимся
с основными элементами его интерфейса:
…………………………………
П
ри
запуске Excel, обычно на
экране следующие элементы: окно книги,
строка меню, одна или несколько панелей
инструментов, строка формул и строка
состояния. Окно книги аналогично окну
документа в Word, то есть
его можно распахивать на всю рабочую
область, сворачивать, изменять размер.
Работа со строкой меню, строкой состояния и панелями инструментов также аналогична работе с этими элементами в MS Word.
Рассмотрим подробней строку формул. Если при запуске Excel вы не обнаружили строки формул, то обязательно выведите ее на экран, так как мы будем активно ей пользоваться. Строка формул выводится на экран следующим образом: нажать пункт меню Сервис, выбрать команду Параметры…Появится диалоговое окно. В этом окне перейти на вкладку Вид и поставить галочку строку состояния.
Лист Excel состоит из ячеек. Содержимое активной ячейки всегда появляется в стоке формул. Информацию в ячейку можно вводить непосредственно или с использованием строки формул. Если вы вводите информацию непосредственно, то фиксация введенной информации происходит при нажатии клавиш со стрелками, клавиш Enter, Tab, Shift-Enter, Shift-Tab (и не которых других) с переходом (по умолчанию) соответственно вниз, влево, вверх, вправо. Если вы вводите информацию с помощью строки формул, то сначала надо щелкнуть на строке формул мышкой, затем набрать нужную информацию, затем зафиксировать ее нажатием клавиши Enter. Строка формул удобней при вводе в ячейку, которая уже содержит какое либо значение, в этом случае это значение не затирается как при непосредственном вводе.
Ячейки расположены в столбцах и строках. Причем строки нумеруются от 1 до 65536, а столбцы именуются от A до IV (A,B,C,…,Z,AA,AB,AC,…,IV). Каждая ячейка имеет свой адрес. Адрес ячейки получается, если приставить к имени столбца номер строки. Например C12 – ячейка стоящая в столбце С и строке с номером 12. Существует понятие абсолютного адреса. Рассмотрением этого понятия мы заниматься не будем. Отметим только, что абсолютные адреса записываются с символом $ перед именем строки или столбца (Пример $C$12, $C12,C$12). Абсолютные адреса обозначают ту же ячейку, что и относительные (Но при копировании формулы содержащей относительные и абсолютные адреса, указывающие на одну и ту же ячейку, в копии этой формулы адреса будут показывать на разные ячейки (относительные адреса настраиваются, абсолютные - нет)). В поле адреса строки формул выводится адрес активной ячейки.
Значения, хранящиеся в ячейках, могут быть различных типов: числа, текст, формулы и специальные форматы (время, дата, денежная единица и т.д.). Причем разделителем десятичных разрядов (по умолчанию) является запятая.
Для того, чтобы изменить шрифт, цвет, стиль написания, нарисовать границы ячейки используйте команду Ячейки из меню Формат. Для вывода заданного числа десятичных знаков после запятой используйте именно эту команду. Например, нужно отобразить два знака после запятой, выберите команду Ячейки из меню Формат перейдите на вкладку Число, выберите из списка Числовые форматы формат Числовой, и в поле Число десятичных знаков введите число 2.
И
ногда
содержимое ячейки в ней не помещается,
тогда ячейка выглядит примерно так:
В этом случае нужно увеличить ширину столбца, в котором находится ячейка. Для этого: сделайте эту ячейку активной, выберите команду Столбец меню Формат, а затем в открывшемся меню команду Ширина…, в появившемся окне введите новую ширину. Ширину столбцов можно изменить, перетаскивая границу между заголовками столбцов.
Для передвижения от ячейки к ячейке используйте клавиши со стрелками, клавиши Home, End, Page-Up, Page-Down. Полосы прокрутки в Excel имеют тоже назначение, что и в Word-е.
Д
ля
перехода на другой рабочий лист нужно
щелкнуть на ярлычке листа. Если ярлычок
листа не виден, используйте кнопки
прокрутки для ярлычков.
Для закрепления материала введите в ячейки рабочего листа Excel данные следующим образом: в ячейку А1 введите текст “Это пример 1”, в ячейку В1 введите текст “Это пример 2”, отрегулируйте ширину столбцов так, чтобы значения можно было прочитать, в ячейку А2 введите число 3,14 и отобразите его с тремя знаками после запятой, в ячейку В2 введите число 2,71 и отобразите его с одним знаком после запятой. После выполненный действий рабочий лист должен выглядеть, как показано на рисунке:
Ввод формул
(Если вы умеете использовать формулы в MS Excel и назначать имена ячейкам, то можете переходить к следующему разделу)
Электронная таблица не была бы электронной таблицей, если бы не возможность использования формул.
Все формулы в Excel начинаются со знака равенства. Последовательность символов без знака равенства воспринимается как текст. Рассмотрим пример. Введите в ячейку А1 формулу:
=1+2
нажмите Enter. В ячейке А1 появится значение 3. Но если сделать активной ячейку А1, то в строке формул будет выведена формула =1+2.
При написании формулы можно использовать операции: +, -, /, *, ^n (возведение в степень n (n-вещественное число)) и функции MS Excel (например, EXP(х) – возвращает число е в степени х). При написании формулы приоритет операторов задается скобками и старшинством операций.
В формуле можно использовать адреса ячеек, для получения значений из этих ячеек. Например, введите в ячейку А1 значение 10. А в ячейку А2 введите формулу
=А1
В ячейке А2 появится значение 10. Теперь измените значение ячейки А1 на 9. Значение в ячейке А2 также поменяется. Теперь измените формулу в ячейке А2 на:
=А1^(1/2)
В ячейке А2 появится значение корня квадратного от значения А1, то есть 3.
Ячейке может быть присвоено имя. Например, хотим ячейке А5 присвоить имя Х. Для этого выделите ячейку А5, щелкните на поле адреса в строке формул и введите в этом поле Х. Нажмите Enter теперь если выделить (сделать активной) ячейку А5, то в поле адреса будет выведено имя Х.
Имена нужны для более удобной записи формул. Теперь введите в ячейку А5 значение 1. Введите в ячейку В5 формулу:
=Х^2+Х+1
В ячейке В5 появится значение 1*1+1+1=3.
Аналогично можно вычислять значения функций нескольких переменных. (Например: =X*X+Y*Y – но для этого надо также определить имя Y для какой либо ячейки).
Правила присвоения имен ячейкам:
Имя должно начинаться с буквы, обратной косой черты \ или символа подчеркивания _.
В имени могут использоваться только буквы, цифры, обратная косая черта и символ подчеркивания.
Нельзя использовать имена, которые могут трактоваться как адреса ячеек.
В качестве имен могут использоваться одиночные буквы, за исключением R, C.
Пробелы в именах недопустимы.
Рассмотрим такой пример: пусть дана начальная точка x1=(1,2)t, дано направление p=(-2, -1)t, дан шаг по направлению a=0,55 найти конечную точку x2=x1+a*p. Присвоим ячейкам А1, А2 имена х_1, х_2 соответственно (это будут координаты начальной точки). Присвоим ячейкам В1, В2 имена р_1, р_2 соответственно (это будут координаты вектора, задающего направление). Присвоим ячейке С1 имя а (это шаг по направлению). Введем в ячейки D1, D2 формулы:
=x_1+a*p_1,
=
x_2+a*p_2,
соответственно (это координаты конечной
точки). Теперь можем приступить к
вычислениям. Введем в ячейки А1, А2
начальную точку, то есть в А1 введем 1, в
А2 введем 2. Введем в ячейки В1, В2
направление, то есть в В1 –2, в В2 –1.
Введем в ячейку С1 шаг по направлению,
то есть введем в С1 0,55. В ячейках D1,
D2 окажутся координаты
конечной точки:
Заметим, что теперь легко можно решить эту задачу для другой начальной точки или другого направления, или другого шага по направлению, для этого достаточно изменить значения соответствующих ячеек.
Для закрепления материала, с помощью MS Excel 97 вычислите значение f(1 ; 2) и f(-1,105 ; 1,1), для функции Розенброка: f(x,y)=100*(y-x^2)^2+ +(1-x)^2, с точностью шесть знаков после запятой. Ответ: f(1 ; 2)=100,000000; f(-1,105 ; 1,1) = 5,895730.
Использование надстройки Поиск Решения
Теперь, после необходимой подготовки, можно переходить к поиску экстремумов. MS Excel 97 ищет экстремумы целевых функций с помощью надстройки Solver.xla, если эта надстройка не была установлена при инсталляции MS Excel 97, то запустите снова процедуру инсталляции и установите ее. При стандартном, а не выборочном варианте инсталляции эта надстройка установлена и в меню Сервис есть команда Поиск решения…
Файл Solver.xla обычно расположен: C:\Program Files\Microsoft Office\ Office\Library\Solver\Solver.xla, существует файл с примерами C:\Program Files\Microsoft Office\Office\Examples\Solvsamp.xls, в котором есть краткий обзор надстройки и шесть примеров. Но в файле Solvsamp.xls за постановочной частью задачи иногда трудно различить само решение. Поэтому рассмотрим работу надстройки Поиск Решения на примере: найдем минимум функции f(x,y)=x^2+y^2 для начального приближения x=1, y=2 при отсутствии ограничений. Запустим MS Excel 97. Присвоим ячейкам А1, А2 имена x, y соответственно и введем в них значения 1 и 2. Введем в ячейку В1 формулу:
=
x^2+y^2, теперь
можно изменять ячейки А1, А2 и наблюдать,
как эти изменения повлияют на значение
функции. В меню Сервис выберем
команду Поиск решения…Появится
диалоговое окно Поиск решения в
этом диалоговом окне в поле Установить
целевую введем значение B1
(в этой ячейке у нас находится формула
для целевой функции), установим
переключатель Равной: в положение
минимальному значению (так как мы
ищем минимум), в поле Изменяя ячейки:
введем x;y
(потому, что мы хотим найти минимум по
x и y (в это
поле можно было ввести A1;A2,
а можно было нажать кнопку Предложить
и посмотреть что получится.)). При вводе
адресов ячеек в окне Поиск решения
удобно пользоваться кнопкой:
Чтобы ввести адрес в поле с такой кнопкой, достаточно, щелкнуть мышкой сначала на этом поле, а затем на ячейке рабочего листа, адрес которой мы хотим ввести.
Заметим, что адреса ячеек автоматически изменяются на абсолютные.
Д
иалоговое
окно сейчас должно иметь вид:
Нажмите кнопку Выполнить. MS Excel выведет результаты поиска решения.
Теперь решим ту же задачу, но при ограничениях: x + y = 4, x>=2,y>=1.
В
ведем
в ячейку А3 формулу =x+y.
Введем в ячейку В3 значение 4. Присвоим
переменным x и y
начальные приближения 1 и 2 соответственно.
Рабочий лист будет иметь вид:
В
меню Сервис выберем команду Поиск
решения…Появится диалоговое окно
Поиск решения в этом диалоговом
окне уже заполнены все необходимые нам
поля, кроме ограничений. Нажмем кнопку
Добавить, появиться диалоговое окно
Добавление ограничения. Заполните это
окно, так как показано на рисунке (вводим
ограничение А3 = В3 (то есть x
+ y = 4)):
Нажмите
кнопку Добавить. Введите ограничения
на х так, как п
оказано
на рисунке:
Аналогично добавьте ограничение на y, нажмите кнопку OK. В итоге диалоговое окно Поиск решения должно выглядеть:
Н
ажмите
кнопку Выполнить. MS
Excel выведет результаты
поиска решения. Заметим, что с помощью
кнопок Изменить и Удалить можно
изменять и удалять ограничения.
Заметим, что качество решения зависит от параметров поиска (точность, максимальное число итераций…). Чтобы изменить параметры поиска решения, в диалоговом окне Поиск решения нажмите кнопку Параметры.
Для закрепления материала, найдите минимум для начального приближения (0 ; 0)t:
1. функции Розенброка f(x,y)=100*(y-x^2)^2+(1-x)^2,
2. функции Розенброка по направлению p = (0.99; 0.11)t
3. функции Розенброка при условиях: 2<=x<=3, x^2+3*y = -10.
Ответ:
1. (0,999 ; 0,999)t,
2. (0,220 ; 0,244)t,
3. (2,000 ; -4,667)t.
