Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретически основ кибер_Практические Занятия (черновик).docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Порядок выполнения работы

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

Рисунок 1. Графический интерфейс программы

Для запуска проекта необходимо запустить среду MatLAB и указать путь к каталогу с программой. Затем необходимо запустить графический интерфейс (Рисунок 1) для чего в консоли MatLAB’а требуется ввести guide и в открывшемся окошке (Рисунок 2) выбрать вкладку «Открыть существующий GUI» и указав путь к GUI-интерфейсу «MainSimplexForm.fig» нажать кнопку «ОК».

Рисунок 2. GUIDE - среда разработки и работы с GUI-интерфейсами MatLAB

В итоге появится макет интерфейса (Рисунок 3) для запуска которого достаточно нажать комбинацию клавиш «Ctrl+T» или зеленую стрелочку на панели под главным меню. После запуска перед вами появится полноценный графический интерфейс (Рисунок 1).

Рисунок 3. Макет GUI-интерфейса

Описание графического интерфейса

Вверху формы расположено главное меню (Рисунок 4), состоящее из пунктов «Примеры», «Дополнительно» и «Выход».

Рисунок 4. Главное меню

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

Пункт «Дополнительно» позволяет пользователям операционной системы Windows получить доступ к Калькулятору, Блокноту и некоторым другим приложениям.

Пункт «Выход» закрывает среду MatLAB.

Для ввода функции, ограничений, условий неотрицательности и выбора метода используется центральная часть формы (Рисунок 5).

Рисунок 5. Здесь можно ввести исходные данные и выбрать метод решения

Для запуска метода и просмотра результатов его работы служит нижняя часть формы (Рисунок 6).

Рисунок 6. Здесь можно запустить метод и просмотреть результат его работы

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

В случае если вы хотите воспользоваться частично целочисленным методом стоит обратить внимание на ввод требуемых иксов (Рисунок 7).

Рисунок 7. Ввод номеров требуемых целых иксов

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

Описание созданных функций

В ходе разработки проекта были написаны следующие функции:

parser_input – функция разделения строки типа “2x1+5x2-7x3” на массив номеров иксов и массив коэффициентов при этих иксах;

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

load_example – функция чтения файла с примером;

save_example – функция записи файла с примером;

simple_simplex – функция, реализующая простой симплекс-метод;

gomory_simplex – функция, реализующая метод Гомори;

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

Все перечисленные выше функции снабжены подробной справкой и для более подробного ознакомления с ними достаточно в консоли MatLAB ввести: help имя_функции

Данные функции можно использовать в других программах написанных для MatLAB, т.к. они работают в проекте как «автономные модули».

Индивидуальные задания

  1. Выпишите задание согласно варианта из таблицы «Индивидуальные задания».

  2. Составьте программу с указанным интерфейсом, опираясь на «Порядок выполнения работы».

3. Оформите отчет.

№ варианта

Функция

Ограничения

Условия неотрицательности

Вариант симплексного метода

1

2x1+6x2-9x3

2x1+3x2-6x3<=0

x1>=0

Обычный

2

6x1+4x2-x3

6x1+2x2+4x3<=2

x1>=0

Обычный

3

2x1-x2+4x3

2x1+x2+5x3<=2

x1>=0

Частично целочисленный

4

3x1+4x2+5x3

2x1+2x2+4x3<=4

x1>=0

Обычный

5

4x1-5x2-x3

2x1-3x2-2x3<=-1

x1>=0

Обычный

6

5x3+2x1-5x3

3x3+x2-3x3<=1

x1>=0

Частично целочисленный

7

2x3+x2-5x3

x3-x2-6x3<=-1

x1>=0

Обычный

8

4x1-4x2+4x3

2x1-2x2+2x3<=2

x1>=0

Обычный

9

x1-2x4+4x3

2x1-x2+3x3<=1

x1>=0

Частично целочисленный

10

3x1+3x2-5x3

x1+x2+2x3<=3

x1>=0

Обычный

11

4x1+3x2+2x3

3x1+x2+3x3<=3

x1>=0

Обычный

12

2x1-4x2+6x3

2x1-2x2+5x3<=-1

x1>=0

Частично целочисленный