Поиск локального минимума методом градиентного спуска

Автор работы: Пользователь скрыл имя, 02 Октября 2011 в 10:21, курсовая работа

Краткое описание

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

Согласно заданию цель данной курсовой работы – разработка программы численного решения эллептического дифференциального уравнения Лапласа в частных производных метода Дирихле в среде программирования Borland C++Builder для персонального компьютера.

Содержание работы

Содержание
Введение 4
1 Описание поставленной задачи 5
1.1 Краткая характеристика численного метода 5
1.2 Анализ литературы и программ, патентный список 5
1.3 Формирование требований к программе 6
2 Проектирование схем алгоритмов 7
2.1 Разработка алгоритма головной программы 7
2.2 Проектирование алгоритма ввода исходных данных 9
2.3 Проектирование алгоритма вывода результатов 10
2.4 Проектирование алгоритма численного метода 10
3 Кодирование программы в среде программирования 11
3.1 Разработка структуры программы 11
3.2 Разработка интерфейса пользователя 11
3.2.1 Разработка интерфейса головной формы. 11
3.2.2 Интерфейс формы ввода данных Form2 12
3.2.3 Интерфейс формы результатов расчёта Form3 13
3.2.4 Интерфейс формы информации о программе Form4 13
3.3 Программирование ввода-вывода данных 14
3.4 Программная реализация численного метода 15
4 Тестирование работоспособности программы 16
4.1 Описание аппаратной конфигурации для тестирования 16
4.2 Тестирование разработанной программы 17
4.3 Решение задачи в математической системе Mathcad 19
4.4 Анализ результатов тестирования 19
5 Разработка гипертекстового варианта документа работы 21
Заключение 22
Список использованных источников 23
Приложение А 24
Тексты спроектированной программы 24
Результаты тестирования программы 32
Приложение В 33
Решение в математической системе Mathcad 33
Приложение Д 34
Гипертекстовая справка по программе 34
Приложение Е 36

Содержимое работы - 1 файл

КУРСОВАЯ.doc

— 1.11 Мб (Скачать файл)
  1. Однострочные редакторы класса TEdit для ввода исходных данных:

     - EditA – коэффициент A;

  • EditB – коэффициент B;
  • EditC – коэффициент C;
  • EditD – коэффициент D;
  • EditEE – коэффициент E;
  • EditF – коэффициент F;
  • EditX0 – начальное значение X;
  • EditY0 – начальное значение Y;
  • EditE – точность;
  1. Текстовые надписи класса Label для пояснения назначения вышеописанных компонентов TEdit Label1, Label2, Label3, Label4, Label5, Label6, Label7, Label8, Label9;
  1. Кнопка управления класса TButton:
    • ButtonRUN для запуска расчета;
    • ButtonLOAD для загрузки исходных данных из файла;
    • ButtonCL для закрытия формы ввода данных;

      3.2.3 Интерфейс формы  результатов расчёта Form3

              

      Рисунок 3.3 – Форма отображения результатов

      На  форме используются следующие компоненты:

      1) кнопки управления класса TButton:

      - ButtonCL – закрытие формы Form3;

      2) EditX – вывод значения X;

         EditY – вывод значения Y;

         EditF – вывод значения F(X,Y); 

3.2.4 Интерфейс формы информации о программе Form4

       

      Рисунок 3.4 – Вид интерфейса формы Form4

      Интерфейс пользователя на форме строится с  помощью следующих стандартных  компонентов C++Builder:

  1. Текстовые надписи класса Label для отображения сведений о программе Label1,  Label2, Label3, Label4, Label5, Label6;

      2) кнопка ButtonCL для закрытия формы с информацией. 

   

      3.3 Программирование  ввода-вывода данных 

      Ввод  исходных данных в проекте реализован 2мя способами:

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

      2) чтением ранее  сохраненных   значений  из внешнего текстового  файла с помощью  потока ifsteam  из модуля fstream; алгоритм чтения исходных данных    соответствует рисунку 2.2 на форме Form2.

      При отображении результатов расчета  организуется проверка истинности условия  значения логической      переменной D . Если расчет не выполнен, то выводится сообщение с помощью  процедуры ShowMessage(). 

      Отображение  численных  значений выполняется  с помощью формы Form3 в EditX, EditY, EditF, используя   функции  преобразования   численных  данных   в   строковые FloatToStr .

      3.4 Программная реализация численного метода

       

    Программная реализация на языке  C++ для поиска локального минимума двухпараметрической функции на основае метода дирехле  2.4

    В начала тела  функции  проверяется наличие  ввода исходных данных.

    Тексты cpp и h файлов проекта помещаются в Приложение А.

 

 4 Тестирование работоспособности  программы

      4.1 Описание аппаратной  конфигурации для тестирования

 

           Тестирование разработанного приложения выполнялось на персональном компьютере под управлением операционной системы Windows XP SP3 Professional со следующими характеристиками аппаратной части:

  • тип центрального процессора DualCore AMD Athlon:

    -число ядер – 2;

  • тактовая частота процессора – 2700 Мгц;
  • величина напряжения ядра – 1.1-1.4 В;
  • объем кэша данных: L1=128 Кб, L2=1 Мб;
  1. системная плата Gigabyte GA-M52L-S3  с параметрами:

    - форм-фактор ATX;

    - наименование  набора системной логики VIA KT266A;

    - тип  интерфейса подключения видеоадаптера  – PCI-E 16x;

    - максимальный  объем оперативной памяти –  2 Гб;

    - интерфейс подключения жесткого диска – SATA II;

    - встроенный аудиоадаптер Realtek ALC883;

     3)тип видеоадаптера nVIDIA GeForce 9600 GT:

     - наименование графического процессора G94GT;

     - объем и тип видеопамяти –  512 Мб;

     - разрядность шины памяти –  256 Мб;

     - частота ядра GPU 650 МГц и 900 Мгц шины видеопамяти;

     - разъемы для подключения к  монитору – VGA;

     4)параметры монитора:

     - тип монитора PHILIPS I90CW;

     - ширина диагонали экрана –  19 дюймов;

     - интерфейс подключения к компьютеру  – VGA;

     - разрешение по горизонтали и вертикали – 1440х900;

    - частота кадровой разверстки – 75 Гц;

     5) типы внешней памяти компьютера:

     - тип жесткого диска –Seagate ST3500630AS;

     - максимальный объем - 500 Гб;

     - частота вращения шпинделя –  7200 об/мин;

     - интерфейс подключения: SATA-II;

     - объем кэш-памяти жесткого диска – 16 Мб;

     - тип привода оптического диска  – Optiarc DVD RW AD-7203S;

     - значения скорости 40/40/16;

     6) установлен модуль оперативной памяти DDR-2 объемом 2047;

     7) состав интерфейса для подключения  периферийных устройств:

     - 6 разъема стандарта USB 2.0;

     - 1 разъем порта LTP;

     - 2 разъема порта СОМ;

     - блок из 6 аудиоразъемов. 

     4.2 Тестирование разработанной  программы

 

      Разработанное приложение включает в себя загрузочный  файл – Dirihle.exe объемом 85 000 Байт.

      Для тестирования программы используются следующие исходные данные:

A=1

B=1

C=1

D=1

E=1

F=1

X0=1

Y0=1

e=0.01

При вводе  исходных данных форма Form2 имеет вид рисунка 4.1, а после расчета форма Form3 – рисунка 4.2.

      Время расчета составило менее 1 с. 
 

     

      Рисунок 4.2 – Ввод исходных данных 

      

      Рисунок 4.2 – Результат расчета 

   

      Результат расчета в виде текстового файла  приводится в Приложении Б.

      4.3 Решение задачи  в математической системе Mathcad

 

      Для тестирования используется математический пакет Mathcad 14. При этом исходные данные задаются в виде:

 
 
 
 
 
 
 
 
 
 

Результаты  решения в виде графика приводятся в приложении В.

      4.4 Анализ результатов тестирования

 

      По  данным приложения Б получены конечные значения:

          3.3= 0,29 

      По данным приложения В получены конечные значения:

              3.3= 0,3 

      По  данным приложения Г получены конечные значения:

                        Lг=0.3  Tг=0.001 Uг=0.862137

 

      Тогда абсолютное значение ошибки программы  по Mathcad

                        г=|Uб-Uв|

                      ∆г=|0,31-0,29|=0.01 

      Относительное значение ошибки теста Mathcad

                        δг=(%)=100%·| Uб-Uв |/ Uб

            δг=(%)=100%·|0,3-0,29|/0,3=0,033% 

       

            Как видно из данных Приложений Б и В полученная погрешность расчета менее 5%, что допустимо для технических расчетов. Это означает, что схема алгоритма и текста программы написаны верно. 
 
 
 
 
 
 

 

       5 Разработка гипертекстового варианта  документа работы

 

      Html-документ  со справочной информацией по  разработанной программе выполняется  на языке HTML в среде текстового  редактора Блокнот. Полный  исходный  текст    документа находится  в Приложении Д. 

    Рисунок 5.1 – Окно обозревателя Firefox со справкой

 

      Заключение

 

     В результате выполнения курсовой работы  было    произведено описание задачи поиска локального минимума двухпараметрической функции на основе метода градиентного спуска, разработана схема алгоритма и написана программа решения на языке программирования  С++  в  среде программирования С++Builder. Проведенное тестирование показало правильность вычисления по спроектированной программе.

      Разработанная программа может использоваться для решения  дифференциального уравнения в частных производных на персональных компьютерах в среде Windows XP.

 

      Список использованных источников

 

     1 Динамическое программирование и уравнения в частных производных. – Москва: издательство «Мир», 1974. – 155 с.

     2 Вычислительная техника и программирование. Методические указания и задания к курсовой работе для студентов специальности 1-53 01 05 «Автоматизированные электроприводы». – Могилев: Белорусско-Российский университет, 2008. – 32 c.

 

  Приложение А

    (Обязательное)

      Тексты спроектированной программы

    Текст файла Project1.cpp 

    //--------------------------------------------------------------------------- 

    #include <vcl.h>

    #pragma hdrstop

    //---------------------------------------------------------------------------

    USEFORM("Unit1.cpp", FormM);

    USEFORM("Unit2.cpp", FormD);

    USEFORM("Unit3.cpp", FormR);

    USEFORM("Unit4.cpp", FormP);

    //---------------------------------------------------------------------------

    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

    {

            try

            {

                     Application->Initialize();

Информация о работе Поиск локального минимума методом градиентного спуска