Автор работы: Пользователь скрыл имя, 15 Сентября 2011 в 06:53, курсовая работа
Современные компьютерные технологии постепенно укрепляют свои позиции в процессе обработки статистических данных, что позволяет предприятиям и компаниям эффективнее использовать свои средства. Метод главных компонент дает возможность оценить влияние отдельных факторов на совокупность в целом. Что в свою очередь дает данные для прогнозирования и планирование издержек.
Программный продукт рассчитан в первую очередь на системных аналитиков и на людей, занимающихся статистическим анализом. Данный программный продукт должен существенно сэкономить время для выявления существенных факторов.
Введение……………………………………………………………… 2
Постановка задачи………………………………………………….....3
Системный анализ…………………………………………………….4
Проект программы......….…………………………………………….11
Тестирование и испытание ПП…………………………...………….20
Заключение………………...………………………………………….30
Список используемой литературы…………...……………………...31
Приложение………...…………………………………………………32
A - λiΕ = 0 , где 0- нулевой вектор.
Получаем систему линейных однородных уравнений с определителем равным нули и ненулевым минором меньшего порядка. Разрешая систему находим собственный вектор
, – новые переменные, «главные компоненты».
Выбор и обоснование средств реализации программы «Метод главных компонент»
Разрабатываемая
программа под рабочим
Выбор
конкретного языка
Сравнительные таблицы выбранных языков программирования:
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 | Построение матрицы нагрузок |
Диаграмма
взаимодействий
Диаграмма состояний
Диаграмма действий
Диаграмма
прецедентов
Формы входного документа
Формы выходного документа
Тестирования и испытание ПП
Программа «МГК» предназначена для реализации метода главных компонент и выявления признаков, оказывающих влияние на конкретные компоненты.
Для работы с программой пользователю необходимы базовые навыки работы с ПК.
Пользователями
являются системные аналитики, которых
интересует влияние, оказываемое факторами
на исходную совокупность. А так же ученые,
проводящие статистический анализ данных.
Исходные
данные для проведения
тестирования
Методы
тестирования программ
Для
тестирования ПП «МГК» будет использоваться
метод тестирования белого ящика, т.е.
во время теста будет доступен исходный
код программы.
Эталонные
значения и распределения
исходных и результирующих
данных
Эталонные
значения – такие значения исходных
и выходных данных, которые считаются
правильными и рассчитываются до выполнения
тестов на калькуляторе, в уме, либо с использованием
других инструментальных средств, схожих
по функциям с тестируемой программой.
Информация о работе Программа реализации метода главных компонент "МГК"