- •Введение
- •1 Средства для решения задач нелинейных алгебраических уравнений в распределенной вычислительной среде
- •1.1 Понятие распределенных вычислений как способа решения трудоёмких вычислительных задач с использованием нескольких компьютеров
- •1.2 Распределенные вычисления на основе стека
- •1.3 Понятие клиент-серверных систем
- •1.4 Методы и их модификации для решения систем нелинейных уравнений
- •2 Алгоритмы и методы для решения нелинейных алгебраиеских уравнений на основе метода натуральных градиентов
- •2.1 Техническое задание для написания программы для решения систем нелинейных алгебраических уравнений методом натуральных градиентов
- •2.2 Aлгоритм метода натуральных градиентов
- •2.3 Алгоритмы линейного и распределенного решения
- •2.4 Алгоритм синтаксического анализатора, разработанного на основе обратной польской записи
- •2.5 Математическая модель распределенного вычисления Якобиана отображения
- •2.6 Описание основных функций клиент-серверного приложения
- •3 Программный комплекс для решени нелинейных алгебраических уравнений методом натуральных градиентов
- •3.1 Руководство пользователя
- •3.2 Результат исследование зависимости времени нахождения решения от размерности системы и способа решения
- •Заключение
- •Список использованных источников
- •Приложение а
- •Код сервеной части
- •Приложение б
- •Код клиенткой части
- •Приложение в
- •Данные из тестовых файлов
- •Приложение г
Заключение
Разработанный программный комплекс предназначен для решения систем нелинейных алгебраических решений методом натурального градиента.
Приложение состоит из серверной и клиентской частей, имеет интуитивно понятный графический интерфейс и руководство пользователя, что позволяет пользователю быстро освоиться в среде вычислений без дополнительных специализированных навыков.
Для создания программного комплекса были использованы:
– стек протоколов TCP/IP;
– базовые знания языкa прoгрaммирoвaния С#;
– среда разработки Visual Studio.
В процессе разработки сетевого приложения была написана программная реализация для сервера и клиента. Основные функции сервера: загрузка исходных данных из файлов, распараллеливание алгоритма решения системы линейных алгебраических уравнений, отправка информации на клиенты, сбор результатов от клиентов и обработка данных. Функция клиента – получение информации от сервера, обработка данных и отправка результата на сервер.
Написание клиент-серверного приложения, которое параллельно решает поставленную задачу, даёт возможность глубже изучить технологии языка программирования С#, в следствии чего укрепляются не только фундаментальные знания, но и приобретается практический опыт написания сложных систем.
Проведенное исследование зависимости времени, затрачиваемого на решение последовательным и распределенным способом, объясняет причину, по которой в определенных случаях необходимо использовать распределенное решение: при большом объеме данных, в нашем случае большом количестве неизвестных в системе нелинейных уравнений, распределенный метод решения увеличивает скорость подсчета.
Разработанное приложение для решения нелинейных систем уравнений методом натуральных градиентов предоставляет уникальную возможность их решения для людей, у которых возникла необходимость сделать расчет на основе конкретно этого метода, так как в открытом доступе программные средства для решения системы уравнений данным методом отсутствует.
Список использованных источников
1. Воронова, М. Е. Методы решения нелинейных уравнений / М.Е. Воронова, // Юный ученый. − 2016. − №3. – С. 14–30
2. Резник, С. Основы Windows Communication Foundation для .NET Frame-work 3.5 / С. Резник. – М.: Вильямс, 2015. – 200 с.
3. Таненбаум, Э. Компьютерные сети / Э. Таненбаум, Д. Уэзеролл. – СПб.: Питер, 2014. – 135 с.
4. Патек, Д. Построение серверных приложений / Д. Патек. – М.: Вильямс, 2016. – 186 с.
5. Рихтер, Дж., Программирование на платформе Microsoft .NET Frame-work 4.0 на языке С# / Дж. Рихтер. – СПб.: Питер, 2012. – 709 с.
6. Буч, Г. Объектно-ориентированный анализ и проектирование с примерами приложений / Г. Буч. – СПб.: Питер, 2016. – 514 с.
7. Джонс, Э. Программирование в сетях Microsoft Windows / Э. Джонс. – М.: Вильямс, 2004. – 752 с.
8. Криспин, Л. Гибкое тестирование: практическое руководство для тестировщиков ПО и гибких команд / Л. Криспин. – М.: Вильямс, 2015. – 464 с.
9. Стивенс, Р. UNIX разработка сетевых приложений, создание сокетов / Р. Стивенс. – СПб.: ДиаСофт, 2015. – 736 с.
10. Скит, Дж. C# для профессионалов. Тонкости прoгрaммирoвaния / Дж. Скит. – СПб.: ДиаСофт, 2014. – 608 с.
11. Клинтон, Ф. Приближение Якобиана к анализу / Ф. Клинтон. – СПб.: Книга по Требованию, 2014. – 608 с.