Программа реализации метода главных компонент "МГК"

Автор работы: Пользователь скрыл имя, 15 Сентября 2011 в 06:53, курсовая работа

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

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

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

Введение……………………………………………………………… 2
Постановка задачи………………………………………………….....3
Системный анализ…………………………………………………….4
Проект программы......….…………………………………………….11
Тестирование и испытание ПП…………………………...………….20
Заключение………………...………………………………………….30
Список используемой литературы…………...……………………...31
Приложение………...…………………………………………………32

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

курсач леонов.doc

— 447.50 Кб (Скачать файл)
type="1">
  • провести центрирование и нормирование матрицы исходных признаков. Для этого требуется построить вектор средних значений и вектор средних квадратичных отклонений, и преобразовать исходную совокупность следующим образом:
    1. построить матрицу ковариаций

        

    1. найти собственные  числа матрицы ковариации. Коэффициенты характеристического полинома находятся  разложением матрицы. Корни полинома отделяются, затем уточняются по методу Ньютона.
    2. полученные характеристические числа упорядочим по возрастанию (они являются дисперсиями главных компонент). Подставляя характеристические числа уравнение

        A - λiΕ = 0 , где 0- нулевой вектор.

      Получаем  систему линейных однородных уравнений  с определителем равным нули и  ненулевым минором меньшего порядка. Разрешая систему находим собственный  вектор

    1. переходим к новым переменным (главным компонентам).

         , – новые переменные, «главные компоненты».

    1. строим матрицу нагрузок главных компонент на исходную совокупность.

     

    Выбор и обоснование  средств реализации программы «Метод главных компонент»

        Разрабатываемая программа под рабочим названием «Метод главных компонент» направлена на взаимодействие с пользователем, поэтому для ее реализации был выбран интерфейс со свободной навигацией. Именно этот фактор является основным указателем на использование событийного программирования и объектного подхода. Для этого подходят такие современные среды визуального программирования, как C++, Delphi, Java, Visual Basic.

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

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

          Сравнительные таблицы выбранных языков программирования:

        Builder C++ Delphi Java Visual Basic
      Скорость  выполнения программы Выполняется быстро Выполняется быстро Выполняется быстро Работает медленнее
      Инструментарий  для создания пользовательского  интерфейса Стандартные средства Стандартные средства, возможность создания окна произвольной формы Стандартные средства Стандартные средства, возможность создания сложных нестандартных  окон и динамического изменения формы окна
      Управление  памятью Управляется программистом Управляется диспетчером  памяти Автоматическое  освобождение ресурсов Самостоятельно  управляет памятью
      Обработка исключительных ситуаций Есть необходимые  средства Есть необходимые  средства, но очень трудоемка работа с ними Есть необходимые  средства Есть необходимые  средства, возможность возврата в  блок, в котором исправлялась ошибка
      Работа  с текстовыми файлами Стандартные средства Файл можно  читать лишь с начала, нет произвольного  доступа Стандартные средства Стандартные средства
     

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

        Подробный анализ выбранных языков программирования:

        C++ Builder:

      Скорость  выполнения программы Инструментарий  для создания пользовательско-го интерфейса Управление  памятью Обработка исключительных ситуаций Работа  с текстовыми файлами
      Компилируемый язык. Программа выполняется быстро, но не может исполняться на другой платформе. Машина, на которой она  выполняется, должна иметь похожую  конфигурацию. Например, если программа  использует dll, то эта библиотека должна быть установлена и на целевой машине. Создание пользовательско-го интерфейса приложения заключается  в добавлении в окно формы элементов  объектов C++ Builder, называемых компонентами. Каждый компонент C++ Builder имеет три  разновидности характеристик: свойства, события и методы. C++ Builder упрощает процесс создания программ для ОС Windows с графическим интерфейсом пользователя. При этом С++ автоматически создает исходный текст для пользовательского интерфейса: создает новые классы, объекты, вводит нужные переменные и функции. В языке C++ существуют средства выделения и освобождения памяти. Проблема состоит в том, что  программист сам отвечает за своевременное  освобождение блоков памяти после того, как в них отпадает необходимость - для этого также есть специальные  функции. Если программист забудет освободить блок, впоследствии может возникнуть нехватка.

      Частое  использование указателей памяти и  необходимость управления распределением памяти для программиста часто приводит к ошибкам.

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

    Проект  программы

    Диаграмма классов 

      Базовый класс In
      Данные
      n : целое, static Количество  строк
      m : целое, static Количество  столбцов
      i : целое, private Счетчик
      j : целое, private Счетчик
      x[n][m] : дробное, static Матрица исходных признаков
      Функции
      inp () : public Функция ввода  размеров и матрицу исходных данных
     
      Производный класс pod
      Данные
      x[n][m] : дробное, static Матрица исходных признаков
      ss[m][m] Матрица ковариаций
      n : целое, static Количество  строк
      m : целое, static Количество  столбцов
      i : целое, private Счетчик
      j : целое, private Счетчик
      sr[m] : дробное, private Вектор средних  значений
      sig [m] : дробное, private Вектор средних  квадратичных отклонений
      d : дробное, private Дисперсия исходных признаков
      Функции
      rash() : public Функция, центрирующая и нормирующая исходные признаки
      covar() : public Функция, строящая матрицу ковариаций
     
      Производный класс harac
      Данные
      n : целое, static Количество  строк
      m : целое, static Количество  столбцов
      ss[m][m] : дробное, static Матрица ковариаций
      c[m+1] : дробное, static Вектор коэффициентов характеристического уравнения
      i : целое, private Счетчик
      j : целое, private Счетчик
      a[m][m] : дробное, private Вспомогательная матрица-буфер
      t[m][m] : дробное, private Вспомогательная матрица-буфер
      p[m] : целое, private Вектор для  вычисления перестановок
      det : дробное, private Определитель 
      Функции
      arac(): public Функция для  инициализации вспомогательных  векторов и переменных
      pril(): public Функция, заполняющая  матрицу-буфер
      determ(): public Функция для  вычисления определителя по методу Гаусса
      cut(int p, int u) : public Функция для  ”вырезания” указанной строки и столбца из матрицы
      fact(int x) : public Факториал числа  х
      xz (int tt, int i) Функция для  генерации перестановок
      elements (): public Функция для  вычисления коэффициентов характеристического уравнения
     
     
      Производный класс urv
      Данные
      c[m+1] : дробное, static Вектор коэффициентов  характеристического уравнения
      nx[m] : дробное, static Вектор собственных  чисел матрицы ковариации
      i : целое, private Счетчик
      j : целое, private Счетчик
      fx0,fx1,xi : дробное, private Вспомогательные переменные для решения характеристического  уравнения
      max, zam: дробное, private Вспомогательные переменные для сортировки
      Функции
      find() : public Функция поиска корней характеристического полинома
      sortirovka() : public Функция сортировки собственных чисел по возрастанию
     
     
      Производный класс komp
      Данные
      nx[m] : дробное, static Вектор собственных  чисел матрицы ковариации
      ss[m][m] : дробное, static Матрица ковариаций
      L[m][m] : дробное, static Матрица перехода к новым переменным - компонентам
      koo [m][m] : дробное, static Матрица Главных  компонент
      nag[m][m] : дробное, static Матрица нагрузок
      may[m] : дробное, private Собственный вектор
      t[m][m] : дробное, private Вспомогательная матрица-буфер
      Функции
      perexod() : public Построение  матрицы перехода
      komponent() : public Вычисление  Главных компонент
      hard () : public Построение  матрицы нагрузок
     
     
     
     
     
     
     
     

     
     
     
     
     
     
     
     

     

          

    Диаграмма взаимодействий 

     

    Диаграмма состояний

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    Диаграмма действий

     
     
     
     
     
     
     
     
     
     
     
     

     

          

    Диаграмма прецедентов 

     

      Формы входного документа

     
     
     

     

     

    Формы выходного  документа

     

     

    Тестирования  и испытание ПП

    Введение

     

        Программа «МГК» предназначена для реализации метода главных компонент и выявления признаков, оказывающих влияние на конкретные компоненты.

        Для работы с программой пользователю необходимы базовые навыки работы с ПК.

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

    Исходные  данные для проведения тестирования 

    Методы  тестирования программ 

         Для тестирования ПП «МГК» будет использоваться метод тестирования белого ящика, т.е. во время теста будет доступен исходный код программы. 

    Эталонные значения и распределения  исходных и результирующих данных 

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

    Информация о работе Программа реализации метода главных компонент "МГК"