Программа была создана в среде C++ Builder 0, поскольку именно это по предоставляет наибольшие возможности в реализации той задачи, которая поставлена в курсовом проекте.

Вид материалаПрограмма

Содержание


Теоретическая часть
Понятие и основные принципы проектирования программ сложной структуры
2.1. Основные достоинства C ++ Builder 6.0
TLabel1, TLabel2
Подобный материал:
Содержание

Введение…………………………………………………………………………...3

1. Теоретическая часть……………………………………………………………4

1.1 Линейная парная регрессия. ………………………………………………....4

1.2. Понятия и основные принципы проектирования программ сложной структуры …………………………………………………………………………7

2. Практическая часть.…………………………………………………………..13

2.1.. Основные достоинства C++ Builder 6.0…………………………………..13 2.2 Основные компоненты C ++ Builder 6.0……………………………………17

2.3.Задание……………………………………………………………………….23

2.4. Блок – схемы программы…………………………………………………..24

2.5.Основные компоненты, используемые в программе………………….……………………………………………………..31

Заключение……………………………………………………………………….33

Список используемой литературы……………………………………………...34

Приложение………………………………………………………………………35


Введение

Целью данного курсового проекта является создание программы, позволяющей на основе применения уравнения регрессии вычислить значения коэффициентов А0 и А1, после чего представить полученный результат в графической форме.

Программа была создана в среде C++ Builder 6.0, поскольку именно это ПО предоставляет наибольшие возможности в реализации той задачи, которая поставлена в курсовом проекте. Это касается и удобства применения языка программирования C++ для выполнения этой программы, и автоматизации построения графика на основе первоначальных результатов. Нельзя также не отметить того, что готовый график после выполнения задачи наглядно и красочно характеризует результат выполнения программы. Именно поэтому при выборе ПО для выполнения проекта я предпочел C++ Builder 6.0, а не Visual Fox Pro или Turbo Pascal.

Что касается непосредственно самого задания, то подсчет коэффициентов А0 иА1 осуществляется с использованием метода наименьших квадратов, с помощью которого путем определенных вычислений находится уравнение y = f(x), соответствующее взаимосвязи рассматриваемых параметров. А именно, отыскивается теоретическая линия регрессии у по х, занимающая в корреляционном поле такое положение, при котором выполняется требование, чтобы сумма квадратов расстояний от этой линии до каждой точки в корреляционном поле являлась минимальной.


^ Теоретическая часть

1.1. Линейная парная регрессия

Для нахождения теоретической линии регрессии по данным производственных замеров или специально поставленных экспериментов применяется метод наименьших квадратов, с помощью которого путем определенных вычислений находится уравнение y = f(x), соответствующее взаимосвязи рассматриваемых параметров. А именно, отыскивается теоретическая линия регрессии у по х, занимающая в корреляционном поле такое положение, при котором выполняется требование, чтобы сумма квадратов расстояний от этой линии до каждой точки в корреляционном поле являлась минимальной.

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



где j порядковый номер точки в исходном числовом материале:
у j измеренное значение функции для определенного значения аргумента (х);
y'/--расчетное значение функции при заданной величине аргумента (х) в соответствии с теоретической их взаимосвязью. В случае линейной зависимости



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



Величина yj, представляющая собой расстояние от каждой точки корреляционного поля до теоретической линии регрессии определяется из уравнения



где x j- параметр x, соответствующий измеренному значению y j .

Для определения численных значений коэффициентов регрессии a и b,

исходя из принципа наименьших квадратов отклонений, нужно приравнять нулю частные производные функции S2 по a и b.





Выполнив необходимые преобразования, получаем систему двух уравнений с двумя неизвестными для определения a и b.





Решая систему уравнений относительно a и b, находим численные значения коэффициентов регрессии. Величины y, x, yx, x2 находятся непосредственно по данным производственных измерений. Величина свободного члена уравнения (2) или коэффициента a равна функции y при x=0.
Коэффициент b в уравнении регрессии характеризует изменение функции у при изменении аргумента х на единицу. и графически отражает угол наклона линии уравнения регрессии.

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



Числитель выражения для коэффициента корреляции
r представляет собой разность между средним значением произведения XY и произведением средних значений X * Y измеренных значений параметров x и y исходной информации. Знаменатель равен произведению средних квадратических отклонений значений параметров у и х от своих средних.

Средние квадратические отклонения (стандартные отклонения) рассчитываются по формулам:





Квадраты средних квадратических отклонений y и x (x2 и y2) называются дисперсиями





и являются важными статистическими оценками рассеяния значений какой-либо величины около ее среднего значения.
Величина коэффициента корреляции r может изменяться от 0 при полном отсутствии связи до ±1 при наличии линейной функциональной связи х с у. Если r > 0, между х и у имеет место положительная корреляционная связь, т. е. с ростом параметра х увеличивается параметр у, если r < 0, между х и у имеет место отрицательная связь. С коэффициентом регрессии b в уравнении (2) коэффициент корреляции связан соотношением :



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



где r – коэффициент корреляции; t – число пар измерений

Метод наименьших квадратов (МНК, англ. Ordinary Least Squares, OLS) является одним из основных методов определения параметров регрессионных уравнений, дающий наилучшие линейные несмещенные оценки[9] (теорема Гаусса­–Маркова). Метод наименьших квадратов заключается в том, чтобы определить вид кривой, характер которой в наибольшей степени соответствует эмпирическим данным. Такая кривая должна обеспечить наименьшее значение суммы квадратов отклонений эмпирических значений величин показателя от значений, вычисленных согласно уравнению этой кривой.


^ Понятие и основные принципы проектирования программ сложной структуры

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

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

Первоначально сформулированные научно-методические положения и практические рекомендации по проектированию автоматических систем, в настоящее время сложились как основные принципы создания ПО. К этим принципам можно отнести следующие: 1) принцип системности; 2) принцип развития; 3) принцип совместимости; 4) принцип стандартизации и унификации; 5) принцип эффективности;

Практическая часть

^ 2.1. Основные достоинства C ++ Builder 6.0

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

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

C++ Builder представляет собой SDI-приложение, главное окно которого содержит настраиваемую инструментальную панель (слева) и палитру компонентов (справа). Помимо этого, по умолчанию при запуске C++ Builder появляются окно инспектора объектов (слева) и форма нового приложения (справа). Под окном формы приложения находится окно редактора кода.

Уникальная среда разработки С++Builder IDE объединяет Дизайнер форм, Инспектор объектов, Палитру компонентов, Менеджер проектов и полностью интегрированные Редактор кода и отладчик – основные инструменты RAD, обеспечивающие полный контроль над кодом и ресурсами. 

Расширенный менеджер проектов (Advanced Project Manager) берет на себя рутину управления большими и сложными проектами, объединенными в группы, предоставляя разработчику свободу выбора формата составляющих файлов: CPP, PAS, DLL, LIB, RS и OBJ. Реализована возможность разработки нескольких проектов одновременно, например, одного для исполняемого EXE-кода, а другого - для динамически погружаемой библиотеки DLL.

Механизм двух направленной разработки (Two-Way-Tools) обеспечивает контроль кода посредством гибкого, интегрированного и синхронизированного взаимодействия между инструментами визуального проектирования и редактора кода.

Конструирование способом «перетаскивания» (drag-and-drop) позволяет создавать приложения простым перетаскиванием захваченных мышью визуальных компонентов - из палитры в форму приложения. Инспектор объектов предоставляет возможность оперировать со свойствами и событиями компонентов, автоматически создавая заготовки функций обработки событий, которые наполняются кодом и редактируются в процессе разработки.

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

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


2.3. Задание

Целью проекта является создание программы для автоматического расчета коэффициентов А0 и А1, применяя метод наименьших квадратов, а также представление полученного результата в графической форме на основе следующих первоначальных данных:


Xi

1

2

3

4

5

6

7

8

9

10

Yi

4

5

7

9

10

25

31

40

45

51


Моя программ реализована с использованием одной формы «Проект». В этой форме происходит первоначальный ввод значений x и y в таблицу. Затем при помощи специально созданной кнопки « Рассчитать» происходит подсчет значений А0 иА1, а также x1 и x2, для чего осуществляется выборка из рассматриваемого периода первого и последних значений (рис.1). После этого нажатием кнопки «График» можно просмотреть итоговое решение задачи в графической форме в этой же форме


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

TTable1. На панели Object Inspector на вкладке DatabaseName указываем имя своей базы данных, в моем случае, «Гоша». Далее на вкладке TableName- имя, соответствующее первой таблице (Таблица1). Далее TTable1 связывается с TDataSource1. После в свойстве Active устанавливается значение true, т.е. активно.

В свойстве TTable2 устанавливаем тоже самое имя БД, что и для TTable1, в свойстве TableName выбираем имя таблицы – «Таблица2». Связи с TDataSource здесь не требуется, так как данная таблица не должна отображаться. После этого активируем таблицу, аналогично первому случаю.

TDBGrid. Для того, чтобы этот компонент приобрел рабочие очертания, его необходимо связать с TDataSource1 и активировать TTable1. После этого в нем отобразятся поля, заданные нами при создании таблицы: №, X, Y.

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

TDBEdit1. Редактируемое поле который может содержать как текст так и цифры. В данной программе TDBEdit1 содержит данные коэффициента A0 после вычисления данных содержащиеся в таблице. TDBEdit2 содержит данные коэффициента A1.

^ TLabel1, TLabel2. Данные компоненты представляют собой подпись к редактируемому полю TDBEdit1 TDBEdit2. В данном случае, это А0 и А1, которые мы указываем в поле Caption.

TButton1. «Очистить», при нажатии на эту кнопку происходит очистка данных в таблице.

TButton2. «Вычислить», которая содержит необходимый код для вычисления уравнения регрессии. После нажатия на эту кнопку заполняется таблица TTable2, вычисляются коэффициенты A0 и A1, происходит нахождение точек для построения прямой в графике

TButton3. «График», после нажатия на которую на форме появляется графическое отображение найденного решения уравнения регрессии.

TButton4. «Выход», эта кнопка закрывает форму «Проект»

DBChart1. Значок его находится на панели инструментов Data Controls. Для того чтобы DBChart выполнял свою функцию его необходимо настроить в Edit Chart. Во вкладке Chart добавляем элементы Series1 и Series2. В Titles подписываем заголовок графика – «График уравнения регрессии». Во вкладке Series заходим в DataSource, выбираем DataSet, в Labels выбираем X, в X-X, а в Y-Y. В Point ставим галочку Visible. Таким же образом настраиваем Series2.


Список использованной литературы

  1. Баранова Т.А. Карпов Б.П. Специальный справочник С++ - Санкт-Петербург: издательство Питер, 1999.
  2. Бобровский С. Самоучитель программирования на Borland С++ Bilder 5.0-Москва: издательство Десс Ком, 1999.
  3. Елисеева И.И. Эконометрика – Москва: издательство «Финансы и кредит», 2002.
  4. Катышев П.К. Магнус Я.Р. Пересецкий А.А. «Эконометрика - начальный курс» - М.: изд-во «Дело», 2000.