Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Список использованных источников. 3. Емельянов В.Ю

Читайте также:
  1. IV. Складіть список КК зарубіжних держав, які перекладені на українську чи російську мову, вкажіть джерела, в яких вони опубліковані.
  2. V. СПИСОК РЕКОМЕНДОВАНИХ ДЖЕРЕЛ ДЛЯ
  3. Анализ источников формирования запасов и затрат
  4. Анализ пассивов (источников финансирования).
  5. Анализ размещения состава и структуры источников средств организации
  6. Анализ средств, чистых активов организации и источников их формирования
  7. Библиографический список

1. Потапов М. К. Алгебра и анализ элементарных функций. - М.: Наука, 1980.

2. Ануфриев И. Е. Самоучитель Matlab 5.3/6.x. СПб: БХВ-Петербург, 2002.

3. Емельянов В.Ю. Методы моделирования стохастических систем управления. - СПб.: БГТУ, 2004.

4. Бобровский С. DELPHI 7. Учебный курс.- СПБ.: Питер, 2003.

 


Приложение А

 

Статистическое моделирование

%Файл-функция difun для решения

%дифференциального уравнения первого порядка:

%созданная по требованию функции ode

function f = difun(t,x);

global a k g i A;

f=[a(i)*x(1)+k(i)*a(i)*g];

 

clear all;

clc;

global i g a k A;

n=0;

m=0;

g=1;

A=0;

n_treb=100;

n_mas=[1000 3000 5000 7000 9000 12000 15000 17000 20000];

disp('Номер итерации Mx Dx n_treb Общее кол-во опытов');

while 1;

m=m+1; % Количество итераций алгоритма

a=unifrnd(0.6, 1.1, 1, n_treb); % Распределение а по непрерывному равномерному распределению

k=unifrnd(1, 1.5, 1, n_treb); % Распределение k по непрерывному равномерному распределению

 

for i=n+1:n_treb

[t,x] = ode23('difun', [0 1], A);

[str, sto]=size(x);

x_k(i)=x(str);

end;

Mx=sum(x_k)/n_treb;

Dx=sum(x_k.^2)/(n_treb-1)-Mx^2;

n=n_treb;

n_treb=round(9*Dx/0.0001);

d=[m Mx Dx n_treb n];

fprintf(' %5.0f %8.6f %8.6f %5.0f %5.0f\n',d);

 

if (n>19800)

break;

end;

if (n_treb>n_mas(m))

n_treb=n_mas(m);

end;

end;

 

 

Приложение Б

Рациональное моделирование

 

форма файла Project1

 

 

Текст программы (с сокращениями описания формы)

unit Project;

interface

uses

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

Dialogs, Buttons, StdCtrls, ComCtrls;

type

TForm1 = class(TForm)

Memo1… Memo12: TMemo;

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

PageControl1: TPageControl;

TabSheet1…TabSheet6: TTabSheet;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

const

h=0.001;

eps=0.01;

alfa=9;

Pk=0.1;

A=0;

G=1;

povtor=800;

kill=10;

t=1;

var

Nk:array [1..10] of longint;

Dk:array [1..10] of real;

ntreb,n:real;

i,j,jj,jj1:integer;

f:boolean;

Dx,Mx,Mxcp,Sx,Sx2,x,qk2,qk,aa,k,Disp,treal,xn:real;

begin

randomize;

ntreb:=200;

n:=0;

f:=true;

jj1:=0;

Memo1.Lines.clear; Memo12.Lines.Clear;

while n<ntreb do begin

Dx:=0;

Mx:=0;

qk:=0;

Mxcp:=0;

Disp:=0;

for i:=1 to kill do begin

Sx:=0;

Sx2:=0;

if f then

Nk[i]:=9

else

Nk[i]:=round(ntreb*Pk*sqrt(Dk[i])/qk2);

for j:=1 to Nk[i] do begin

// k:=random*Pk*0.6+1+Pk*(i-1)*0.6;

k:=random*1+0.5;

aa:=random*0.6+0.5;

x:=A;

for jj:=1 to povtor do begin

x:=(aa*x+aa*k*G)*h+x;

end; Sx:=Sx+x;

Sx2:=Sx2+sqr(x);

end;

Mx:=Sx/Nk[i];

Dk[i]:=Sx2/Nk[i]-sqr(Sx/Nk[i]);

Dx:=Dx+(Pk*Pk)*Dk[i]/Nk[i];

Mxcp:=Mxcp+Pk*Sx/Nk[i];

case i of

1: begin //Memo1.Lines.Clear;

Memo1.Lines.Add('Mx='+FloatToStr(Mx));

Memo1.Lines.Add('Dx='+FloatToStr(Dk[i]));

Memo1.Lines.Add('Disp='+FloatToStr(Disp));

Memo1.Lines.Add('Nk='+FloatToStr(Nk[i]));

Memo1.Lines.Add('Sx='+FloatToStr(Sx));

Memo1.Lines.Add('Sx2='+FloatToStr(Sx2));

Memo1.Lines.Add('n='+FloatToStr(n));

Memo1.Lines.Add('ntreb='+FloatToStr(ntreb));

end;

…….

10: begin //Memo10.Lines.Clear;

Memo10.Lines.Add('Mx='+FloatToStr(Mx));

Memo10.Lines.Add('Dx='+FloatToStr(Dk[i]));

Memo10.Lines.Add('n='+FloatToStr(n));

Memo10.Lines.Add('ntreb='+FloatToStr(ntreb));

Memo10.Lines.Add('Disp='+FloatToStr(Disp));

Memo10.Lines.Add('Nk='+FloatToStr(Nk[i]));

Memo10.Lines.Add('Sx='+FloatToStr(Sx));

Memo10.Lines.Add('Sx2='+FloatToStr(Sx2));

end;

end;

qk:=Pk*sqrt(Dk[i])+qk;

Disp:=Disp+Dk[i]*qk/(Pk*sqrt(Dk[i]));

end;

qk2:=qk;

Memo11.Lines.Add('Mxcp='+floattostr(Mxcp));

Memo11.Lines.Add('Dxcp='+floattostr(Dx));

edit1.Text:=floattostr(Mxcp);

edit2.Text:=floattostr(Dx);

n:=ntreb;

ntreb:=round(alfa*Disp*sqr(Pk)/sqr(eps));

Memo12.Lines.Add('n='+floattostr(n));

Memo12.Lines.Add('ntreb='+floattostr(ntreb));

edit3.text:=floattostr(ntreb); f:=false; end; end; end.


Дата добавления: 2015-12-08; просмотров: 48 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.012 сек.)