Марковские процессы

Автор работы: Пользователь скрыл имя, 04 Апреля 2012 в 17:54, курсовая работа

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

Математическое моделирование позволяет более глубоко и объективно взглянуть на модель и найти способ её преобразования. Модель, в данном случае, представляет собой набор цифр и функций по которым работают некоторые её компоненты.
Таким образом, с помощью применения метода Динамического Программирования (Марковский процесс с дискретными состояниями и непрерывным временем. Уравнения Колмогорова для вероятностей состояний.) и создания программы на основе этого метода, будет выполнена цель курсового проекта.

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

курсовая работа.doc

— 135.50 Кб (Скачать файл)

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

Перенос в новую операционную среду не требуется, так как программа корректно работает со всеми операционными системами Windows 95\ 98\ Me\ 2000\ XP, кроме MS-DOS, так как она уже давно морально устарела.


8.4. Нахождение и исправление ошибок

 

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

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

После исправления всех выявленных ошибок программа вновь сдается в эксплуатацию.


Заключение

 

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

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

              Благодаря программе, разработанной для решения Задачи “Марковский процесс с дискретными состояниями и непрерывным временем. Уравнения Колмогорова для вероятностей состояний”, отпадает процесс изучения методики вычислений, оставляя пользователю только ввод данных и получение результатов. При этом значения результатов будут избавлены от ошибок человеческого фактора (усталости, нервозности и т.п.)

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

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

 


Список литературы

 

1. Б.Банди Основы линейного программирования - М:.Радио и связь, 1989г

2. В.А.Благодатских, М. А. Енгибарян и др.

Экономика,    разработка    и    использование    программного    обеспечения

ЭВМ.-М:. Финансы и статистика, 1995

3. С.Гудман, С.Хидетниеми Введение в разработку и анализ алгоритмов.-М:. Мир, 1981

4. Е.Киндлер Языки моделирования.-М:.Энергоатомиздат,1985

5. В.П.Морозов, В.В. Шураков

Основы алгоритмизации .Алгоритмические языки и системное

программирование .-М:. Финансы и статистика, 1994

6. А.Я.Савельев Технология подготовки задач для решения на ЭВМ.-

М:.Высшая школа, 1992

7. Ю.М.Коршунов Математические основы кибернетики

 


Приложение

program Project1;

uses

  Forms,

  Unit1 in 'Unit1.pas' {Form1},

  Unit2 in 'Unit2.pas' {Form2};

{$R *.RES}

begin

  Application.Initialize;

  Application.CreateForm(TForm1, Form1);

  Application.CreateForm(TForm2, Form2);

  Application.Run;

end.

 

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls, Grids, OleServer, Access2000;

type

  TForm1 = class(TForm)

    Edit1: TEdit;

    Button1: TButton;

    Label1: TLabel;

    Button2: TButton;

    GroupBox1: TGroupBox;

    StringGrid1: TStringGrid;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Edit1Change(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

  i,j,x: integer;

implementation

uses Unit2;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

x:=strtoint(edit1.Text);

stringgrid1.ColCount:=x+1;

stringgrid1.Rowcount:=x+1;

stringgrid1.Refresh;

for i:=1 to x do

begin

stringgrid1.cells[0,i]:='S'+inttostr(i);

stringgrid1.cells[i,0]:='S'+inttostr(i);

stringgrid1.cells[i,i]:='*****';

end;

for i:=1 to x do

for j:=1 to x do

if i<>j

then stringgrid1.cells[i,j]:=inttostr(0);

end;

procedure TForm1.Button2Click(Sender: TObject);

var

formul:string;

begin

form1.visible:=false;

form2.visible:=true;

for i:=1 to x do

begin

formul:='dP'+inttostr(i)+'/dT=';

for j:=1 to x do

begin

if stringgrid1.cells[j,i]='1'

then formul:=formul+'-'+'λ'+inttostr(i)+inttostr(j)+'P'+inttostr(i);

if stringgrid1.cells[i,j]='1'

then formul:=formul+'+'+'λ'+inttostr(j)+inttostr(i)+'P'+inttostr(j);

end;

if formul<>'dP'+inttostr(i)+'/dT='

then form2.ListBox1.Items.Append(formul);

end;

end;

procedure TForm1.Edit1Change(Sender: TObject);

var

q:string;

begin

x:=0;

q:=edit1.Text;

for i:=1 to 100 do

if q=inttostr(i)

then

begin

x:=1;

break;

end;

if x<>1

then form1.Edit1.Text:='0';

end;

end.

 

unit Unit2;

interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  ExtCtrls, StdCtrls;

type

  TForm2 = class(TForm)

    ListBox1: TListBox;

    Button1: TButton;

    Button2: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form2: TForm2;

implementation

uses Unit1;

{$R *.DFM}

procedure TForm2.Button1Click(Sender: TObject);

begin

form1.close;

form2.close;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

form2.ListBox1.Items.Clear;

form2.visible:=false;

form1.visible:=true;

end;

end.

 



Информация о работе Марковские процессы