Программный комплекс MMSolver
Программный комплекс MMSolver предназначен для решения вариационных неравенств различными итерационными методами. Функциональное назначение программы, область её применения, её назначение. Описание модулей MatrixCalc, Task, Method. Диаграмма классов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | методичка |
Язык | русский |
Дата добавления | 11.01.2020 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Запорожец Д.Н.
Программный комплекс MMSolver
Функциональное назначение программы, область её применения, её назначение
Программный комплекс предназначен для решения вариационных неравенств различными итерационными методами. Служит учебным пособием для студентов, изучающих дисциплины методы оптимизации и программирование, а так же является инструментом исследования для аспирантов и преподавателей.
Программный комплекс состоит из 4 основных модулей. В первом модуле содержится программная реализация основных действий над векторами и матрицами. Во втором модуле содержится описание интерфейса вариационного неравенства и абстрактной задачи, сводимой к вариационному неравенству. Благодаря этому модулю любой исследователь может запрограммировать свою собственную, интересующую его задачу, и впоследствии решить задачу при помощи данного программного комплекса. Третий модуль содержит описание интерфейса итерационного метода решения вариационного неравенства. Таким образом, предоставляется возможным использовать в программном комплексе MMSolver не только собственные задачи, но и методы, причем к каждому методу, автоматически добавится еще один метод «с памятью». Методы с памятью являются параллельными и позволяют находить решение существенно быстрее.
Программный комплекс содержит несколько задач, сводящихся к вариационному неравенству: система линейных алгебраических уравнений, линейная задача дополнительности, нелинейное вариационное неравенство. Каждую из вышеперечисленных задач можно решить при помощи градиентного метода, одношагового экстраградиентного метода или двухшагового экстраградиентного метода. Методы решения вариационного неравенства, как и сами задачи, реализованы в виде подключаемых модулей, поэтому в программе дополнительно возможно выбрать следующие методы: градиентный метод с памятью, одношаговый экстраградиентный метод с памятью, двухшаговый экстраградиентный метод с памятью.
Градиентный метод задается следующим образом
программный mmsolver вариационные неравенства
Одношаговый метод задается следующими рекуррентными соотношениями
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Двухшаговый метод выглядит следующим образом
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
По любому итерационному процессу F, итерационный процесс с памятью строится следующим образом
Описание модуля MatrixCalc
В этом модуле содержатся классы матрица и вектор, определны основные операции над ними, такие как умножение, сложение векторов и матриц, произведение матрицы на вектор, произведение матриц, скалярное произведение векторов. На рисунке 1 показана диаграмма классов матрица и вектор.
Рис 1. Диаграмма классов модуля MatrixCalc
Описание модуля Task
Модуль Task содержит интерфейс задачи ITask, класс VI, реализующий функционал вариационного неравенства. Так как в этом модуле содержится интерфейс ITask, то это позволяет любому программисту или исследователю реализовать собственную, интересующую его задачу в виде отдельного модуля программного комплекса MMSolver. Для этого достаточно написать класс, реализующий интерфейс ITask, и оформить этот класс в виде динамически подключаемой библиотеки (dll). Интерфейс ITask имеет ряд интересных свойств и методов. Свойство CanUseFillDlg отвечает за то, можно ли использовать специальную форму заполнения задачи. Если таковой нет, то задача должна быть полностью создана в конструкторе класса, иначе программист должен реализовать визуальную форму, в которой будет предоставлена возможность пользователю ввести все необходимые данные. На этой форме обязательно должна быть кнопка «создать». На рисунке 2 изображена диаграмма классов модуля Task.
Рис 2. Диаграмма классов модуля Task
В методе ToVarIneq должна быть реализована логика приведения задачи к вариациооному неравенству (класс VI).
Описание модуля Method
Для того, чтобы решать задачи собственным методом, необходимо написать класс реализующий интерфейс IMethod. При этом необходимо выделить два решающих метода. Solve - нахадит решение вариационного неравенства, а MakeOneSolveIter - делает одну итерацию метода. Свойство Solution содержит решение, найденное методом, а свойство Iterations - количество итераций, сделанное методом, Time - показывает время в секундах, затраченное на решение задачи.
Рис 3. Диаграмма классов модуля Method
На рисунке 4 показано окно, которое пользователь увидит при первом запуске программного комплекса. При нажатии на кнопку Далее, пользователь попадет на страницу выбора метода решения задачи.
Рис 4. Окно первого запуска
На рисунке 5 показано окно выбора метода решения задачи.
Рис 5. Окно выбора метода решения задачи.
При выборе метода решения задачи, пользователю показывается краткое описание метода. Кнопка обновить сканирует каталог Methods и служит для перестроения списка методов. При нажатии на кнопку «Далее», пользователь попадает на страницу выбора задачи.
На рисунке 6 показано окно выбора решаемой задачи.
Рис 6. Окно выбора решаемой задачи
Рис 7. Окно с результатами решения задачи
При выборе задачи, пользователю будет показано краткое описание задачи. При нажатии на кнопку «Далее» пользователь попадает на страницу заполнения данных или сразу переходит на страницу отображения результатов решения, если заполнение данных задачи не требуется и соответствующая форма отсутствует.
На рисунке 7 показано окно с результатами решения задачи. На нем отображается информация о выбранном методе и выбранной задаче, а так же количество сделанных итераций, время, затраченное на поиск решения, стартовая точка, из которой метод начинал решение задачи и найденное решение.
Используемые технические средства
Программа написана на языке С# (.Net 2.0), в качестве среды разработки использовалась Microsoft Visual Studio 2010.
Специальные условия и требования организационного, технического и технологического характера
Для работы программы необходима операционная система Windows и .NET Framework 2.0 или выше.
Размещено на Allbest.ru
...Подобные документы
Функциональная структура приложения. Спецификация и структурная диаграмма программного комплекса. Блок-схемы алгоритмов ряда модулей. Данные для тестирования программных модулей и программного комплекса в целом, инструкция пользователя по работе с ним.
курсовая работа [58,5 K], добавлен 25.02.2012Составление математической модели расписания в школе. Назначение и область применения программного продукта. Обоснование выбора инструментальных средств. Описание разработки, алгоритмов и методов решения, форматов данных и пользовательского интерфейса.
курсовая работа [1,6 M], добавлен 18.01.2012Разработка программы для автоматизации расчетов на телефонной станции. Описание входной и выходной информации, комплекс технических средств. Интерфейс конечного пользователя. Проектирование программных модулей представления входных и выходных данных.
курсовая работа [460,1 K], добавлен 26.06.2015Системное и функциональное проектирование. Описание взаимодействия с сервером, классов системных компонентов. Обзор функциональных классов из пакетов helpers, dialogs и networking. Разработка программных модулей. Технико-экономическое обоснование проекта.
дипломная работа [1,7 M], добавлен 15.06.2014Основное функциональное назначение электронного учебника. Основные требования к программной документации. Разработка алгоритма решения задачи. Требования к эргономике и технической эстетике. Назначение и условия применения программного средства.
курсовая работа [2,1 M], добавлен 09.08.2011Оптимизационная задача линейного программирования. Виды задач линейного программирования. Принятие решений на основе количественной информации об относительной важности критериев. Выбор средств разработки. Программный комплекс векторной оптимизации.
дипломная работа [1,3 M], добавлен 27.03.2013Особенности и классификация обучающих программных средств обучения. Обзор методов обработки экспертной информации. Требования к программному комплексу лабораторных работ. Построение логической модели данных. Описание компьютерной реализации для студента.
дипломная работа [2,0 M], добавлен 19.01.2017Составление математической модели решения транспортной задачи. Описание входной и выходной информации. Программно-технические средства, используемые при разработке программы. Общее описание программы, ее назначение, информационная совместимость.
курсовая работа [49,1 K], добавлен 24.05.2013Разработка структурной схемы и интерфейса программного комплекса управления сайтом. Выбор языка программирования. Принципы тестирования программы. Разработка руководства оператора и системного программиста. Расчет сметы затрат на программный продукт.
дипломная работа [4,1 M], добавлен 11.06.2012Основания для разработки программы и ее назначение, внутренняя структура и компоненты, предъявляемые требования. Область применения и функциональное назначение, администрирование сайта. Разработка руководства пользователя. Работа с интернет-магазином.
дипломная работа [1,8 M], добавлен 02.11.2015Структура и классификация систем автоматизированного проектирования. Виды обеспечения САПР. Описание систем тяжелого, среднего и легкого классов. Состав и функциональное назначение программного обеспечения, основные принципы его проектирования в САПР.
курсовая работа [37,7 K], добавлен 18.07.2012Назначение программы "Учёт пациентов" и её подсистемы. Диаграмма классов предметной области, диаграмма последовательностей, описание автоматизируемых функций и характеристика функциональной структуры. Физическая схема и описание таблиц базы данных.
дипломная работа [3,3 M], добавлен 15.11.2016Назначение, область применения, этапы разработки, требования к программе по моделированию технологического процесса выплавки стали. Назначение модулей программы: Diplom.cpp, MainFormUnit.cpp, XLSExportDialogUnit.cpp, DistributionTableDialogUnit.cpp.
отчет по практике [512,9 K], добавлен 14.10.2012Анализ информационных потоков. Описание информационных задач. Функциональное назначение программы, ее структура, описание логики. Тексты запросов на языке SQL. Назначение и условия применения информационно-справочной системы, описание операций, отчетов.
курсовая работа [3,0 M], добавлен 16.12.2013Программный комплекс для разработки программы транслирующей программу с языка Pascal на язык С++. Построение логической и арифметической модели решения. Разработка компилятора для программы. Методы отладки программы и создание для нее документации.
курсовая работа [742,6 K], добавлен 03.07.2011Виды экономической информации. Структурная схема и функциональное назначение устройств компьютера. Состав и назначение системного программного обеспечения. Возможности электронной таблицы Microsoft Excel. Расширения, шаблоны имен и атрибуты файлов.
контрольная работа [198,9 K], добавлен 30.10.2013Функциональное назначение программы "Автоматизация учета выпускаемой продукции"; описание ее логической структуры, необходимых входных и выходных данных, процедур вызова и загрузки. Определение экономического эффекта от внедрения программного продукта.
дипломная работа [336,0 K], добавлен 14.04.2014Разработка программного продукта с помощью языка программирования Visual Basic. Описание интерфейса пользователя и возможностей программы. Исходный код основных модулей. Программа, демонстрирующая основные возможности диаграмм и среды Visual Basic.
контрольная работа [989,9 K], добавлен 29.03.2011Применение программного обеспечения для разработки игры "Быки и коровы". Описание алгоритма и интерфейса пользователя программы. Назначение и область применения и описание возможностей программы. Рассмотрение списка сообщений об ошибках программы.
курсовая работа [799,2 K], добавлен 26.04.2021Программный продукт для решения систем линейных уравнений методом Гаусса. Алгоритм для проведения вычислений. Цель разработки и область ее применения. Схема информационных потоков. Метод Гаусса: исключение неизвестных. Проектирование удобного интерфейса.
курсовая работа [340,0 K], добавлен 02.07.2010