43197

Решение системы линейных уравнений методом Гаусса

Курсовая

Информатика, кибернетика и программирование

Метод Гаусса— классический метод решения системы линейных алгебраических уравнений (СЛАУ). Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе ступенчатого (или треугольного) вида, из которого последовательно, начиная с последних (по номеру) переменных, находятся все остальные переменные.

Русский

2013-11-06

723 KB

45 чел.

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

ФИЛИАЛ ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ

(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)» в г. Смоленске

Кафедра информатики

Расчетно – пояснительная записка

к расчетному заданию по курсу

«Информатика и программирование»

Группа      ПИЭ-09

Студент          Вахрамеева К. О.

Преподаватель:  Нестеров А. П.

Вариант                4

Дата сдачи

Смоленск, 2010

  1.  Теоретическое введение.
    1.  Метод Гаусса.

Метод Гаусса— классический метод решения системы линейных алгебраических уравнений (СЛАУ). Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе ступенчатого (или треугольного) вида, из которого последовательно, начиная с последних (по номеру) переменных, находятся все остальные переменные.

  1.  Многомодульное приложение.

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

  1.  Техническое задание.
    1.  Задание 1.

Решить систему линейных уравнений методом Гаусса:

  1.  Задание 2.

Разработать многомодульное (многооконное) приложение, которое позволяет работать с 2-мя точечнозаданными функциями.

Приложение должно удовлетворять следующим требованиям:

  •  Должно быть 2 окна для редактирования таблиц значений 2 функций.
  •  Должно быть окно для отображения графиков 2 функций (компонент TChart).
  •  Предусмотреть ввод пользователем новых значений функций. (с обновлением графиков).
  •  Предусмотреть сохранение таблиц значений в типизированный файл (диалог сохранения).
  •  Предусмотреть загрузку таблиц значений из типизированного файла (диалог открытия файла).
  •  Предусмотреть возможность редактирования таблиц значений пользователем (добавление, редактирование, удаление значений) с обновлением графиков.
  •  Шаг значений аргумента может быть неравномерным.
  •  Максимальное количество точек каждого графика - 50.
  •  Предусмотреть форму "О программе", где указать сведения о разработанном программном продукте.
  •  Предусмотреть ввод 2-х таблиц значений стандартных функций.

Файл значений функции должен быть действительного типа. Значения в него сохраняются последовательно парами (X,Y).

  1.  Анализ технического задания.
    1.  Задание 1.

Метод Гаусса основан на приведении матрицы системы к треугольному виду: это достигаем последовательным исключением неизвестных из уравнений системы. Сначала с помощью первого уравнения исключаем x1 из всех последующих уравнений системы, затем с помощью второго уравнения исключаем x2 из третьего уравнения. Таким образом, приводим матрицу системы к треугольному виду. Затем последовательно вычисляем искомые неизвестные: решая последнее уравнение, находим единственное неизвестное x3. Далее, используя это значение, из второго уравнения вычисляем x2, последним находим x1 из первого уравнения.

  1.  Задание 2.

Для решения данной задачи в среде Delphi 7 нужно разработать алгоритм, по которому будет работать программа, и учесть простейшие ошибки: во-первых, некорректный ввод, во-вторых, ввод ограниченного количества точек (не больше 50).

Приложение будет состоять из четырех форм. Первые две формы абсолютно идентичные: 2 окна для редактирования таблиц значений 2 функций (рис. 3.1), третья форма: окно для отображения графиков 2 функций (рис. 3.2), четвертая форма: "О программе" (рис. 3.3).

Рис 3.1 - Окна для редактирования таблиц значений функций.

Рис 3.2 - Окно для отображения графиков функций.

Рис 3.2 -"О программе".

  1.  Проектирование алгоритма.
    1.  

Блок-схема программы 1.

Рис. 4.1 – Программа 1.

n=3 – const;

perv – первый член системы;

x[i] – искомые переменные;

A[i,j] – матрица коэффициентов системы;

B[i] – матрица свободных членов;

i – номер строки;

j – номер столбца.

  1.  Блок-схема программы 2.
    1.  

Блок-схема процедуры sortirov.

Рис. 4.2 – Процедура sortirov.

  1.  

Блок-схема процедуры grafik.

Рис. 4.3 – Процедура grafik.

  1.  

Блок-схема загрузки.

Рис. 4.3 – Кнопка «Загрузить».

  1.  

Блок-схема сохранения.

Рис. 4.4 – Кнопка «Сохранить».

  1.  

Блок-схема функции.

Рис. 4.5 – Кнопка «Функция».

  1.  

Блок-схема добавления.

Рис. 4.6 – Кнопка «Добавить».

  1.  

Блок-схема удаления.

Рис. 4.7 – Кнопка «Удалить».

  1.  Модульная структура.
    1.  

Программа 1.

Рис 5.1 – Модульная структура программы 1.

  1.  

Программа 2.

Рис 5.2 – Модульная структура программы 2.

  1.  Спецификация на программные модули.

Программа 1.

Имя модуля - Button1Click.

Имя вызываемого модуля - Unit.

Выполняемые функции – поиск корней системы уравнений.

Входные данные – A[i,j], B[i].

Выхoдные данные – x[i].

Особенности, ограничения – нет.

Программа 2.

Загрузка.

Имя модуля – Button1Click.

Имя вызываемого модуля – Unit.

Выполняемые функции – загрузка сохраненных данных.

Входные данные – x, y.

Выходные данные – x, y.

Особенности, ограничения – нет.

Сохранение.

Имя модуля – Button2Click.

Имя вызываемого модуля – Unit.

Выполняемые функции – сохранение данных.

     Входные данные – x, y.

     Выходные данные – нет.

Особенности, ограничения – нет.

Функция.

Имя модуля – Button3Click.

Имя вызываемого модуля – Unit.

Выполняемые функции – построение графика.

Входные данные – x, y.

Выходные данные – x, y.

Особенности, ограничения – нет.

Добавление.

Имя модуля – Button4Click.

Имя вызываемого модуля – Unit.

Выполняемые функции – добавление элемента.

Входные данные – x, y.

Выходные данные – x, y.

Особенности, ограничения – нет

Удаление.

Имя модуля – Button5Click.

Имя вызываемого модуля – Unit.

Выполняемые функции – удаление элемента.

     Входные данные – j.

Выходные данные – нет.

Особенности, ограничения – нет.

Процедура sortirov.

Имя модуля - sortirov.

Имя вызываемого модуля – Button4Click.

Выполняемые функции – удаление элемента.

Входные данные – x, y.

Выходные данные – x, y.

Особенности, ограничения – нет.

Процедура grafik.

Имя модуля - grafik.

Имя вызываемого модуля – Button3(4,5)Click.

Выполняемые функции – построение графика.

Входные данные – x, y.

Выходные данные – x, y.

Особенности, ограничения – нет.

Функция schet.

Имя модуля - schet.

Имя вызываемого модуля – Button5Click.

Выполняемые функции – задание функции.

Входные данные – x.

Выходные данные – нет.

Особенности, ограничения – нет.

  1.  Тестирование.
    1.  Программа 1.

Рис. 7.1. Тестирование программы 1.

Рис. 7.2. Результат программы 1.

  1.  Программа 2.

Рис. 7.3. Тестирование программы 2 (добавление/удаление элемента).

Рис. 7.4. Тестирование программы 2 (построение графиков).

  1.  Заключение.

В результате выполнения расчетного задания в среде визуального программирования Delphi 7 было произведено вычисление корней системы уравнений методом Гаусса, а также разработано многомодульное (многооконное) приложение, которое позволяет работать с двумя точечными функциями.

  1.  Приложение 1.
    1.  Текст программы 1.

unit Unit1;

interface

uses

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

 Dialogs, StdCtrls, Grids, XPMan;

type

 TForm1 = class(TForm)

   StringGrid1: TStringGrid;

   StringGrid2: TStringGrid;

   Label1: TLabel;

   Label2: TLabel;

   StringGrid3: TStringGrid;

   Label3: TLabel;

   Button1: TButton;

   Edit1: TEdit;

   StringGrid4: TStringGrid;

   XPManifest1: TXPManifest;

   Label4: TLabel;

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

{$R *.dfm}

const n=3;

procedure TForm1.Button1Click(Sender: TObject);

var A:array [1..n,1..n] of real;

   B:array [1..n] of real;

   x:array [1..n] of real;

   i,j,k,q,g:Integer;

   m,perv,t,s:real;

begin

 for i:=1 to n do {задание матрицы коэфициентов}

 for j:=1 to n do

 begin

   A[i,j]:=StrToFloat(StringGrid1.Cells[j-1,i-1]);

 end;

 for i:=1 to n do {задание матрицы свободных членов}

 begin

   B[i]:=StrToFloat(StringGrid2.Cells[0,i-1]);

 end;

 for k:=1 to n do

 begin

   perv:=abs(A[k,1]);

   q:=k;

   for i:=k+1 to n do

   If abs(A[i,1])>perv then

   begin

     perv:=abs(A[i,1]);

     q:=i;

   end;

   for j:=1 to n do

   begin

     t:=A[k,j];

     A[k,j]:=A[q,j];

     A[q,j]:=t;

   end;

  t:=B[k];

  B[k]:=B[q];

  B[q]:=t;

  for i:=k+1 to n do

  begin

    m:=A[i,k]/A[k,k];

    for j:=k to n do

    A[i,j]:=A[i,j]-m*A[k,j];

    B[i]:=B[i]-m*B[k];

  end;

 end;

 If A[n,n]=0 then {поиск корней}

 If B[n]=0 then Edit1.Text:='Бесконечно много решений'

 else Edit1.Text:='Решений нет'

 else

 begin

   x[3]:=B[3]/A[3,3];

   for i:=3 downto 1 do

   begin

     s:=0;

     for j:=i+1 to n do

     s:=s+A[i,j]*x[j];

     x[i]:=(b[i]-s)/a[i,i];

     StringGrid3.Cells[0,i-1]:=FloatToStr(x[i]);

   end;

   for i:=1 to n do {вывод треугольной матрицы}

   for j:=1 to n do

   begin

     Stringgrid4.Cells[j-1,i-1]:=FloatToStr(A[i,j]);

   end;

 end;

end;

end.

  1.  Текст программы 2.

unit Unit1;

interface

uses

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

 Dialogs, StdCtrls, Grids, XPMan;

type

 Tmy=record

 arg:real;

 func:real;

 end;

 massmy=Array[1..50] of Tmy;

 TForm1 = class(TForm)

   StringGrid1: TStringGrid;

   Button1: TButton;

   Button2: TButton;

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Edit1: TEdit;

   Edit2: TEdit;

   Label4: TLabel;

   Edit3: TEdit;

   Button3: TButton;

   Button4: TButton;

   Button5: TButton;

   Button6: TButton;

   XPManifest1: TXPManifest;

   procedure FormCreate(Sender: TObject);

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

   procedure Button4Click(Sender: TObject);

   procedure Button5Click(Sender: TObject);

   procedure Button6Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 k:Tmy;

 a:massmy;

 f:file of Tmy;

 kod,n,i:integer;

 Form1: TForm1;

implementation

uses Unit3, Unit2, Unit4;

{$R *.dfm}

procedure sortirov(n:integer;var a:massmy); {процедура сортировки прямого включения}

var i,j:integer;

   x:tmy;

begin

    for i:=2 to n do

      begin

        x:=a[i];

        for j:=i downto 2 do

          if a[j-1].arg>x.arg then

                               begin

                                a[j]:=a[j-1];

                                a[j-1]:=x;

                               end;

      end;

end;

procedure grafik(a:massmy; n:integer);  { процедура построения графика}

var i:integer;

begin

 form3.Series1.Clear;

 for i:=1 to n do

 Form3.Series1.AddXY(a[i].arg,a[i].func,'',clyellow);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

 i:=1;

 Button1.Visible:=true;

 assignfile(f,'a.txt');

 StringGrid1.Cells[0,0]:='';

 StringGrid1.Cells[1,0]:='X';

 StringGrid1.Cells[2,0]:='Y';

end;

function schet(x:real):real;  {данная функция}

begin

result:=(exp(3*ln(x)))/10000-10;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

 StringGrid1.Visible:=true;

 reset(f);

 i:=1;

 while not(eof(f)) do

 begin

   read(f,a[i]);

   StringGrid1.Cells[0,i]:=inttostr(i);

   StringGrid1.Cells[1,i]:=floattostr(a[i].arg);

   StringGrid1.Cells[2,i]:=floattostr(a[i].func);

   i:=i+1;

   StringGrid1.RowCount:=i+1;

 end;

 closefile(f);

 grafik(a,i-1);

 button2.Visible:=true;

 button3.Visible:=true;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

 rewrite(f);

 for i:=1 to stringgrid1.RowCount-2 do

 begin

   a[i].arg:=strtofloat(StringGrid1.Cells[1,i]);

   a[i].func:=strtofloat(StringGrid1.Cells[2,i]);

   write(f,a[i]);

 end;

 closefile(f);

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

 Form3.Series1.Clear;

 StringGrid1.RowCount:=2;

 for i:=1 to 50 do

 begin

   a[i].arg:=i;

   a[i].func:=schet(i);

   StringGrid1.Cells[0,i]:=inttostr(i);

   StringGrid1.Cells[1,i]:=floattostr(a[i].arg);

   StringGrid1.Cells[2,i]:=floattostr(a[i].func);

   StringGrid1.RowCount:=StringGrid1.RowCount+1;

 end;

 grafik(a,50);

end;

procedure TForm1.Button4Click(Sender: TObject);

var s:string;

begin

 i:=i+1;

 if i>50 then

         begin

          ShowMessage('Больше не надо!!!');

          exit;

         end;

 n:=i-1;

 s:=Edit1.Text;

 val(s,k.arg,kod);

 if kod<>0 then

            begin

             showmessage('Ошибка-x');

             exit;

            end;

 s:=Edit2.Text;

 val(s,k.func,kod);

 if kod<>0 then

            begin

             showmessage('Ошибка-y');

             exit;

            end;

 a[n]:=k;

 sortirov(n,a);

 StringGrid1.RowCount:=2;

 for i:=1 to n do

 begin

   StringGrid1.Cells[0,i]:=inttostr(i);

   StringGrid1.Cells[1,i]:=floattostr(a[i].arg);

   StringGrid1.Cells[2,i]:=Floattostr(a[i].func);

   StringGrid1.RowCount:=StringGrid1.RowCount+1;

 end;

 grafik(a,n);

 Edit1.Text:='';

 Edit2.Text:='';

end;

procedure TForm1.Button5Click(Sender: TObject);

var j:integer;

begin

 val(edit3.text,n,kod);

 if kod<>0 then

            begin

             showmessage('Ошибка-#');

             exit;

            end;

 for i:=n to StringGrid1.RowCount-1 do

 begin

   for j:=1 to 2 do

   begin

     StringGrid1.Cells[j,i]:=StringGrid1.Cells[j,i+1];

   end;

   if i<StringGrid1.RowCount-1 then a[i]:=a[i+1]

                              else

                                 a[i]:=a[i];

 end;

 grafik(a,stringgrid1.RowCount-2);

 StringGrid1.RowCount:=StringGrid1.RowCount-1;

 StringGrid1.Cells[0,StringGrid1.RowCount-1]:='';

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

 Form2.Show;

 Form3.Show;

 Form4.Show;

end;

end.

unit Unit2;

interface

uses

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

 Dialogs, StdCtrls, Grids, XPMan;

type

 Tmy=record

       arg:real;

       func:real;

      end;

 massmy=array [1..50] of tmy;

 TForm2 = class(TForm)

   StringGrid1: TStringGrid;

   Button1: TButton;

   Button2: TButton;

   Button3: TButton;

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Edit1: TEdit;

   Edit2: TEdit;

   Label4: TLabel;

   Edit3: TEdit;

   Button5: TButton;

   Button4: TButton;

   XPManifest1: TXPManifest;

   procedure FormCreate(Sender: TObject);

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

   procedure Button4Click(Sender: TObject);

   procedure Button5Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 k:Tmy;

 a:massmy;

 f:file of tmy;

 kod,n,i:integer;

 Form2: TForm2;

implementation

uses Unit1, Unit3, Unit4;

{$R *.dfm}

procedure sortirov(n:integer;var a:massmy);  {ïðîöåäóðà ñîðòèðîâêè ïðÿìîãî âêëþ÷åíèÿ}

var i,s,l,r:integer;

   t:Tmy;

begin

  s:=1;

  l:=1;

  r:=n-1;

  while s<>0 do

    begin

      s:=0;

      for i:=1 to r do

        if a[i].arg>a[i+1].arg then

                                begin

                                 t:=a[i];

                                 a[i]:=a[i+1];

                                 a[i+1]:=t;

                                 s:=i;

                                end;

      r:=s;

      for i:=r downto l do

       if a[i].arg>a[i+1].arg then

                               begin

                                t:=a[i];

                                a[i]:=a[i+1];

                                a[i+1]:=t;

                                s:=i;

                               end;

      l:=s;

    end;

end;

procedure grafik(a:massmy; n:integer); {ïðîöåäóðà ïîñòðîåíèÿ ãðàôèêà}

var i:integer;

begin

 for i:=1 to n do

 Form3.Series2.AddXY(a[i].arg,a[i].func,'',clMaroon);

 Form3.Series2.AddXY(a[i].arg,a[i].func,'',clyellow);

end;

procedure TForm2.FormCreate(Sender: TObject);

begin

 i:=1;

 Button1.Visible:=true;

 assignfile(f,'a1.txt');

 StringGrid1.Cells[0,0]:='¹';

 StringGrid1.Cells[1,0]:='X';

 StringGrid1.Cells[2,0]:='Y';

end;

function schet(x:real):real; {ôóíêöèÿ}

begin

 result:=-(exp(3*ln(x)))/10000+10;

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

 StringGrid1.Visible:=true;

 Form3.Show;

 reset(f);

 i:=1;

 while not(eof(f)) do

 begin

   read(f,a[i]);

   StringGrid1.Cells[0,i]:=inttostr(i);

    StringGrid1.Cells[1,i]:=floattostr(a[i].arg);

   StringGrid1.Cells[2,i]:=floattostr(a[i].func);

   i:=i+1;

   StringGrid1.RowCount:=i+1;

 end;

 closefile(f);

 grafik(a,i-1);

 button2.Visible:=true;

 button3.Visible:=true;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

 rewrite(f);

 for i:=1 to stringgrid1.RowCount-2 do

 begin

   a[i].arg:=strtofloat(StringGrid1.Cells[1,i]);

   a[i].func:=strtofloat(StringGrid1.Cells[2,i]);

   write(f,a[i]);

 end;

  closefile(f);

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

 Form3.Series2.Clear;

 StringGrid1.RowCount:=2;

 for i:=1 to 50 do

 begin

   a[i].arg:=i;

   a[i].func:=schet(i);

   StringGrid1.Cells[0,i]:=inttostr(i);

   StringGrid1.Cells[1,i]:=floattostr(a[i].arg);

   StringGrid1.Cells[2,i]:=floattostr(a[i].func);

   StringGrid1.RowCount:=StringGrid1.RowCount+1;

 end;

 grafik(a,50);

end;

procedure TForm2.Button4Click(Sender: TObject);

var s:string;

begin

 i:=i+1;

 if i>50 then

         begin

          ShowMessage('Áîëüøå íå íàäî!!!');

          exit;

         end;

 n:=i-1;

 s:=Edit1.Text;

 val(s,k.arg,kod);

 if kod<>0 then

            begin

             showmessage('Îøèáêà-x');

             exit;

            end;

 s:=Edit2.Text;

 val(s,k.func,kod);

 if kod<>0 then

            begin

             showmessage('Îøèáêà-y');

             exit;

            end;

 a[n]:=k;

 sortirov(n,a);

 StringGrid1.RowCount:=2;

 for i:=1 to n do

 begin

   StringGrid1.Cells[0,i]:=inttostr(i);

   StringGrid1.Cells[1,i]:=floattostr(a[i].arg);

   StringGrid1.Cells[2,i]:=Floattostr(a[i].func);

   StringGrid1.RowCount:=StringGrid1.RowCount+1;

 end;

 grafik(a,n);

 Edit1.Text:='';

 Edit2.Text:='';

end;

procedure TForm2.Button5Click(Sender: TObject);

var j:integer;

begin

 val(edit3.text,n,kod);

 if kod<>0 then

            begin

             showmessage('Îøèáêà-#');

             exit;

            end;

 for i:=n to StringGrid1.RowCount-1 do

 begin

   for j:=1 to 2 do

   begin

    StringGrid1.Cells[j,i]:=StringGrid1.Cells[j,i+1];

   end;

   if i<StringGrid1.RowCount-1 then a[i]:=a[i+1]

                              else

                                 a[i]:=a[i];

 end;

 grafik(a,stringgrid1.RowCount-2);

 StringGrid1.RowCount:=StringGrid1.RowCount-1;

 StringGrid1.Cells[0,StringGrid1.RowCount-1]:='';

end;

end.

unit Unit3;

interface

uses

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

 Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart;

type

 TForm3 = class(TForm)

   Chart1: TChart;

   Series1: TPointSeries;

   Series2: TPointSeries;

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form3: TForm3;

implementation

uses Unit1, Unit2, Unit4;

{$R *.dfm}

end.

unit Unit4;

interface

uses

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

 Dialogs, StdCtrls;

type

 TForm4 = class(TForm)

   Memo1: TMemo;

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form4: TForm4;

implementation

uses Unit1, Unit2, Unit3;

{$R *.dfm}

end.

  1.  Приложение 2.
    1.  Форма программы 1.

Рис. 10.1. Форма программы 1.

  1.  Форма программы 2.

Рис. 10.2. Форма программы 2.


 

А также другие работы, которые могут Вас заинтересовать

41274. Математические схемы моделирования систем 238.5 KB
  При построении математической модели системы необходимо решить вопрос об ее полноте. Также должна быть решена задача упрощения модели которая помогает выделить в зависимости от цели моделирования основные свойства системы отбросив второстепенные. При переходе от содержательного к формальному описанию процесса функционирования системы с учетом воздействия внешней среды применяют математическую схему как звено в цепочке описательная модель – математическая схема – математическая аналитическая или и имитационная модель. Формальная...
41275. Непрерывно-детерминированные модели (D-схемы). Основные соотношения. Возможные приложения D-схемы 224 KB
  Они отражают динамику изучаемой системы и в качестве независимой переменной от которой зависят неизвестные искомые функции обычно служит время t. Элементарные системы Из этого уравнения свободного колебания маятника можно найти оценки интересующих характеристик. Очевидно что введя обозначения h2 = mMlM2 = LK h1 = 0 h0 = mMglM = 1 CK Ft = qt = zt получим обыкновенное дифференциальное уравнение второго порядка описывающее поведение этой замкнутой системы: h2d2zt dt2 h1dzt dt h0zt = 0 2.9 где h0 h1...
41276. Дискретно-детерминированные модели (F-схемы). Основные соотношения. Возможные приложения F-схемы 170.5 KB
  Система представляется в виде автомата как некоторого устройства с входными и выходными сигналами перерабатывающего дискретную информацию и меняющего свои внутренние состояния лишь в допустимые моменты времени. В каждый момент t = 0 1 2 дискретного времени Fавтомат находится в определенном состоянии zt из множества Z состояний автомата причем в начальный момент времени t = 0 он всегда находится в начальном состоянии z0 = z0. Другими словами если на вход конечного автомата установленного в начальное состояние z0 подавать в...
41277. Дискретно-стохастические модели (Р-схемы). Основные соотношения. Возможные приложения P-схемы. Непрерывно-стохастические модели (Q-схемы). Основные соотношения 159.5 KB
  Непрерывностохастические модели Qсхемы Основные соотношения Особенности непрерывностохастического подхода рассмотрим на примере типовых математических Qсхем – систем массового обслуживания англ. В качестве процесса обслуживания могут быть представлены различные по своей физической природе процессы функционирования экономических производственных технических и других систем например: потоки поставок продукции некоторому предприятию потоки деталей и комплектующих изделий на сборочном конвейере цеха заявки на обработку информации ЭВМ...
41278. Непрерывно-стохастические модели (Q-схемы) (продолжение). Возможные приложения Q-схем 140.5 KB
  В студенческом машинном зале расположены две ЭВМ и одно устройство подготовки данных УПД. Студенты приходят с интервалом в 8  2 мин и треть из них хочет использовать УПД и ЭВМ а остальные только ЭВМ. Работа на УПД занимает 8  1 мин а на ЭВМ – 17 мин. Кроме того 20 работавших на ЭВМ возвращаются для повторного использования УПД и ЭВМ.
41279. Сетевые модели (N-схемы). Основные соотношения. Возможные приложения N-схем 176.5 KB
  Сетевые модели Nсхемы. Сетевые модели Nсхемы Основные соотношения Для формального описания структуры и взаимодействия параллельных систем и процессов а также анализа причинноследственных связей в сложных системах используются сети Петри англ. Граф Nсхемы имеет два типа узлов: позиции и переходы изображаемые 0 и 1 соответственно. Граф Nсхемы является мультиграфом так как он допускает существование кратных дуг от одной вершины к другой.
41281. ФОРМАЛИЗАЦИЯ И АЛГОРИТМИЗАЦИЯ ПРОЦЕССОВ ФУНКЦИОНИРОВАНИЯ СИСТЕМ 163 KB
  Методика разработки и машинной реализации моделей систем Сущность машинного моделирования системы состоит в проведении на вычислительной машине эксперимента с моделью которая представляет собой некоторый программный комплекс описывающий формально и или алгоритмически поведение элементов системы в процессе ее функционирования т. Требования пользователя к модели Основные требования предъявляемые к модели процесса функционирования системы: 1. Полнота модели должна предоставлять пользователю возможность получения необходимого набора оценок...