Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 9.pdf
Скачиваний:
164
Добавлен:
03.08.2018
Размер:
4.03 Mб
Скачать

Абзацы ячейки вывода имеют стиль Output, начало и конец ячейки ограничены квадратными скобками, а цвет шрифта синий.

Группировка ячеек

Решениезадачилинейнойоптимизацииосоставлениирациона,может быть наглядно продемонстрировано в М-книге. Сначала приведем условия задачи и вспомогательную таблицу, а затем наберем операторы файл-про- граммы ration в тексте документа. Каждый оператор следует заключить в ячейку ввода, выбирая в меню Notebook пункт Define Input Cell либо используя комбинацию клавиш <Alt>+<D>.

Несколько команд, выполняемых последовательно, лучше заключить в группу ячеек ввода (Cell Group). Выделим ячейки, подлежащие объединению в группу (в данном случае это все наши ячейки) и в меню Notebook выберем пункт Group Cells. Команды образовавшейся группы выполня-

ются из пункта Evaluate Cell меню Notebook или Evaluate Cells всплываю-

щего меню. Сочетание клавиш <Alt>+<Enter> также приводит к активизации команд группы. В результате содержимое М-книги дополняется ячейкой вывода с решением задачи линейного программирования. Итоговый результат приведен в файле example.doc. Его содержимое приведено ниже:

=========================================================

Пример создания М-книги

Решим классическую задачу линейного программирования о составлении рациона питания. Имеются три продукта П1, П2, П3 разной цены, каждый из которых содержит определенное количество питательных ингредиентов И1, И2, И3, И4 (таблица 1). Известно, что в день требуется: И1 – не менее 250, И2 – не менее 60, И3 – не менее 100 и И4 – не менее 220. Требуется минимизировать затраты на приобретение продуктов. Очевидно, что количество приобретаемых продуктов не может быть отрицательным.

Т а б л и ц а 1 – Питательность и цена продуктов

 

П1

П2

П3

 

 

 

 

И1

4

6

15

 

 

 

 

И2

2

2

0

 

 

 

 

И3

5

3

4

 

 

 

 

И4

7

3

12

 

 

 

 

Цена

44

35

100

 

 

 

 

Запишем целевую функцию, матрицу A, векторы b и lb ограничений в соответствии с требованиями Optimization Toolbox, обозначив искомые количества продуктов через x1 , x2 и x3 соответственно. Поскольку линей-

ные ограничения содержат "меньше или равно", а количество ингредиентов

7

в рационе не должно быть менее заданных величин, то следует изменить знаки обеих частей системы.

f

T x = 44 x +35 x

+100 x ,

 

 

1

 

2

 

3

4

6

15

250

0

 

 

 

 

 

 

 

A = 2

2

0

 

, b =

60

, lb = 0 .

5

3

4

 

100

0

 

3

 

 

 

 

 

7

12

220

0

Решение задачи осуществим в файле Microsoft Word используя

команды Matlab.

% Задание матрицы и вектора правой части системы неравенств

A = [4 6 15 2 2 0 5 3 4

7 3 12]; A = -A;

b = [250; 60; 100; 220]; b = -b;

% Определение коэффициентов целевой функции f = [44; 35; 100];

% Задание ограничений снизу на переменные lb = [0; 0; 0];

% Решение и вывод результата в командное окно x = linprog(f, A, b, [ ], [ ], lb)

Optimization terminated. x =

13.2143

16.7857

6.4286

=========================================================

Созданиегруппыячеекимеет рядособенностей.Группанедолжнасодержать текст и другие объекты MS Word или ячейки вывода. Текст, разделяющий ячейки перед их объединением, помещается после группы. Ячейки вывода пропадают, но зато соответствующие им ячейки ввода добавляются в группу.

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

8

ячейке вывода, заключенной в большие квадратные скобки, является объектом MS Word. Данное обстоятельство позволяет обращаться с ним, как с обычным рисунком, внедряемым в документ.

М-книга может содержать сколь угодно много групп ячеек ввода и отвечающихимячееквывода.Ячейкивыводаможноперемещатьвпроизвольное место документа, выделив их и перетащив при помощи мыши какобычные абзацы документа MS Word. Повторное выполнение команд, находящихся в соответствующих ячейках ввода, не нарушит расположения ячеек.

Работа с М-книгой большого объема становится проще, если предусмотреть разбиение ее на разделы (Calc Zone). Выделенный фрагмент книги выносится в отдельный раздел выбором пункта Define Calc Zone меню

Notebook.

Выполнение команд всех ячеек или групп ячеек ввода раздела производится при помощи пункта Evaluate Calc Zone, а сразу всей М-книги – EvaluateМ-book. Ошибка в командах ячеек ввода,возникающая в процессе выполнения всей М-книги, приводит к останову вычислений. Для автоматического перехода к выполнению следующей ячейки необходимо установить флаг Stop evaluating on error в диалоговом окне Notebook Options, появля-

ющемся при выборе одноименного пункта в меню Notebook. Переменные различных разделов являются общими, к примеру, если

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

– глобальные. Более того, если в редакторе MS Word открыто несколько М- книг, то их переменные определены в одной рабочей среде.

ОткрытиеМ-книгивMSWordнеприводиткавтоматическомувыпол- нению содержимого ячеек ввода. Часто требуется инициализировать неко-

9

торые переменные без вмешательства пользователя. Команды ячеек, имеющих стиль Autolnit, запускаются сразу после открытия М-книги. Полезно включить в первую такую ячейку команду clear для очистки рабочей среды. Для установки стиля Autolnit служит пункт Define Autoinit Cell меню

Notebook.

Содержимое ячейки или группы можно выполнить циклически, для чего следует выделить нужные ячейки или сделать текущей группу и выбрать в меню Notebook пункт Evaluate Loop, или нажать <Alt>+<L>. Появившееся диалоговое окно Evaluate Loop позволяет установить число повторов в поле Stop After и выбрать скорость кнопками Slower и Faster.

Управление М-книгой

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

Панель Numeric Format содержит раскрывающийся список для выбора формата и переключатели Loose и Compact для добавления промежуточных пустых строк при отображении числовых значений в ячейках вывода.

Панель Figure Options предназначена для управления видом графических результатов, помещаемых в ячейки вывода. Установленный флаг Embed Figures in M-book обеспечиваетразмещениеграфиковвячейкахвывода, а сброшенный – приводит к визуализации результатов в отдельных графических окнах. Размер и единицы измерения графиков, помещаемых в

10