Автор работы: Пользователь скрыл имя, 19 Мая 2015 в 21:37, курсовая работа
Данный курсовой проект посвящен программному моделированию реакции одномассовой системы на прямоугольный импульс. В результате импульса, в том числе и прямоугольного, система начинает колебаться. Различного рода колебания – одно из самых распространенных физических явлений. Ничто в окружающей нас среде не остается в стороне от колебаний, будь то математический маятник или лист дерева на ветру. На основе колебаний работает огромное количество приборов и механизмов, широко используемых человеком.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ БЕЛАРУСЬ
БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Факультет информационных технологий и робототехники (ФИТР)
Кафедра программного обеспечения вычислительной техники
и автоматизированных систем
КУРСОВАЯ РАБОТА
по дисциплине: «Разработка приложений в визуальных средах»
на тему: «Ортогональные полиномы Чебышева»
Выполнил: ст. гр. 307211 Кожекин М.М.
Принял: доц. Гурский Н.Н.
Кафедра программного обеспечения вычислительной техники
и автоматизированных систем
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по дисциплине «Разработка приложений в визуальных средах»
Тема: «Ортогональные полиномы Чебышева»
Исполнитель: Кожекин М.М.
Студент 3 курса 307211 группы
Руководитель : Гурский Н.Н.
Минск 2014
Данный курсовой проект посвящен программному моделированию реакции одномассовой системы на прямоугольный импульс. В результате импульса, в том числе и прямоугольного, система начинает колебаться. Различного рода колебания – одно из самых распространенных физических явлений. Ничто в окружающей нас среде не остается в стороне от колебаний, будь то математический маятник или лист дерева на ветру. На основе колебаний работает огромное количество приборов и механизмов, широко используемых человеком.
Все колебания, имеющие самые различную природу и характеристики (амплитуды, фазы колебаний, скорость колебаний и другое), в большинстве случаев описываются схожими законами – тригонометрическими функциями, дифференциальными, показательными уравнениями и их комбинациями. Хотя в данном проекте изучается вполне конкретное физическое явление, аналогичные методы можно использовать и при моделировании других явлений и процессов.
Среда разработки Delphi 7 обладает широким набором средств для реализации сложных вычислительных процессов; для получения результатов, как в виде таблиц, так и графиков; для визуальной реализации моделирования. Одновременно Delphi 7 позволяет создавать пользовательские интерфейсы со всеми необходимыми элементами без затраты особых усилий. На выбор именно этой среды разработки повлияло, в - первую очередь, то, что Delphi 7 соответствует всем современным стандартам языков программирования высокого уровня и поддерживает наиболее передовые разработки ( например, позволяет работать с динамическими библиотеками(dll), серверами автоматизации(технология com) , позволяет использовать для разработки проектов возможности других приложений ).
В случае аппроксимации экспериментальных данных параболой к – го порядка для нахождения только нового дополнительного коэффициента (остальные коэффициенты остаются без изменения) удобно использовать замену системы одночленов: 1, х, х2…., хк ортогональными полиномами: Р0(х), Р1(х), Р2(х), …….. Рк(х).
Тогда получим:
- Полином Чебышева.
Система полиномов Рi(х) образует ортогональную систему функций на множестве точек х1,х2, …хN, т.е. в этом случае:
Получаем диагональную матрицу, следовательно коэффициенты bi можно найти не решая систему уравнений, а рассчитать по следующим формулам:
, i = 0,k¯
Ортогональные полиномы Чебышева зависят от выбора узлов xU и определяются с точностью до коэффициента.
Если принять коэффициент наивысшей степени равным единице, то полиномы можно посчитать так:
Р0(х) = 1,
Остальные полиномы находятся из рекуррентного соотношения:
, где
- квадрат нормы.
После получения коэффициентов регрессии и расчета полиномов Чебышева необходимо провести статистический анализ уравнения – определить оценки дисперсии и проверить адекватность уравнения.
Дисперсия опыта рассчитывается по формуле:
Дисперсия адекватности рассчитывается по формуле:
Проверка адекватности модели рассчитывается по формуле:
Коэффициент парной корреляции вычисляется по формуле:
,
Для оценки значимости коэффициента корреляции используется критерий Стьюдента:
Дисперсия регрессии рассчитывается следующим образом:
. Причем:
Структурная программа состоит из главного модуля, модулей описания вспомогательных форм, динамических библиотек, файлов помощи и обращений к другим программам. Связь модулей приведена на рисунке 2.1.
Рисунок 2.1.1 – Структурная схема связей модулей программы
В результате анализа предметной области для её описания и моделирования был разработан класс TCPoly, инкапсулирующий поля, методы и свойства, применимые к рассматриваемому объекту.
type
TCPoly = class(TObject)
private
n: integer;
rod: integer;
v_str: string;
matr: array of Extended;
matr_for_table: array of Extended;
count: integer;
public
procedure PolyCheb(_n, _rod: integer);
function idx(i,j:integer):integer;
procedure ClearMatr;
function st(gr:integer):string;
function xst(gr:integer):string;
function koef(gr:integer):string;
function get_str(): string;
function get_count(): integer;
procedure ShowPolynomial;
function get_el_array(i_row:integer): Extended;
procedure whithout_zero();
procedure Get_Table(SG : TStringGrid);
procedure Get_Chart(Ch : TChart);
function stepX(X: Extended; stepen: integer): Extended;
procedure Import_To_Excel(rod, por:integer);
procedure Import_To_Word(rod, por:integer);
end;
Описание и реализация класса структурно оформлено в отдельном Unit – UPoly. Используемые секции public и private определяют области видимости элементов класса.
В соответствии с требованиями на разработку данной курсовой работы была также реализована возможность экспорта методов созданного класса с помощью технологии COM. Для этого был создан сервер в виде DLL – программный модуль Project1.
library Project1;
uses
ComServ,
Project1_TLB in 'Project1_TLB.pas',
Unit1 in 'Unit1.pas' {MyClass: CoClass},
Unit2 in 'Unit2.pas';
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer,
DllInstall;
{$R *.TLB}
{$R *.RES}
begin
end.
Этот сервер позволяет создать COM-объект, описание класса которого находится в модуле Unit1. Следует заметить, что данный класс полностью соответствует, приведенному в п.2.2 классу TCPoly, т.е. он является его копией. Непосредственный доступ к открытым элементам COM-класса осуществляется с помощью интерфейса IMyClass, описанного в модуде Unit2.
При разработке приложения были реализованы 2 динамические библиотеки.
Динамическая библиотека DllFormpr.dll содержит форму о программе.
Библиотека содержит 1 экспортируемую процедуру ShowDllFormModal, служащую для отображения формы.
unit DllForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TfrmDllForm = class(TForm)
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmDllForm: TfrmDllForm;
implementation
{$R *.dfm}
function ShowDllFormModal: integer; stdcall;
begin
frmDllForm:= TfrmDllForm.Create(nil);
Result:= frmDllForm.ShowModal;
end;
procedure TfrmDllForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
Exports
ShowDllFormModal;
procedure TfrmDllForm.Button1Click(
begin
frmDllForm.Close;
end;
end.
Библиотека содержит экспортируемую функцию ShowDllFormModal для отображения формы.
Кроме процедур и функций, описанных в классах, программа обеспечивает взаимодействие с серверами автоматизации приложений Microsoft Office. Так, следующие процедуры головного модуля программы позволяют автоматически производить запуск MS Word, MS Excel и передавать информацию с целью создания отчетов или использование ее для дальнейшей обработки. Реализация данных серверов автоматизации находится в классе TCPoly:
1. метод TCPoly.Import_To_Excel(rod, por:integer) обеспечивает передачу данных в Excel.
2. метод TCPoly.Import_To_Word(rod, por:integer) обеспечивает передачу данных в Excel.
Программа начинается с отображения оригинальной заставки, а затем на экране появляется главное окно программы (модуль UnitMain). Главный модуль управляет работой всех других модулей в соответствии с запросами пользователя.
Он содержит:
Диалог с пользователем поддерживается с помощью главного и выпадающего меню, кнопок и других интерфейсных элементов.
Окно «О программе» содержит краткую информацию о приложении.
Процесс логического взаимодействия пользователя c программой, назначение элементов главного окна описаны в «Руководстве пользователя».
Вопросы непосредственной программной реализации конкретных модулей приведены в приложении. По тексту программ даются достаточно полные комментарии, необходимые для описания переменных, процедур и функций, а также основных шагов реализации используемых алгоритмов.
Для активизации программы необходимо вызвать файл Polynomials.exe.
появится заставка (см. рисунок 3.1).