48596

Сокращение трудоемкости статистического моделирования

Курсовая

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

При использовании рациональной схемы статистического моделирования обеспечить снижение требуемого количества опытов по сравнению со стандартной схемой не менее чем в 10 раз.2 с учетом статистической независимости k и определим искомую характеристику: Математическое ожидание выходного процесса определяется с учетом решения Дисперсия выходного процесса определяется с помощью уже найденного выше математического ожидания по формуле Используя полученное аналитически значение дисперсии...

Русский

2013-12-12

308 KB

12 чел.

БАЛТИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ "ВОЕНМЕХ"

им.  Д. Ф.  УСТИНОВА

КУРСОВАЯ  работа

по учебной дисциплине __ Стохастические системы управления_____________________________

на тему _ Сокращение трудоемкости статистического моделирования _________________________

студента __________Барышникова        Василия   Игоревича _________________________________

                                                Фамилия ,                             Имя ,            Отчество        студента

группы ______И341_____

 

САНКТ-ПЕТЕРБУРГ

2008  г.

СОДЕРЖАНИЕ

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

Основная часть……………………………………………………………………...4

  1.  Аналитическое решение………………………………………………………..4

2.  Стандартная схема статистического моделирования………………………...6

  1.  Метод выделения главной части…………….…………………………………8

ЗАКЛЮЧЕНИЕ…………………………………………………………………………..11

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ……………………………………12

ПРИЛОЖЕНИЯ ………………………………………………………………………....13

  1.  Приложение 1 ………………………………………………………………....13
  2.  Приложение 2 ………………………………………………………………....16


ВВЕДЕНИЕ

Требуется определить математическое ожидание выходного сигнала X неустойчивого апериодического звена в заданный момент времени T. Модель звена:

, ,

содержит случайные параметры с равномерным законом распределения в заданных интервалах.

Допустимая абсолютная погрешность .

Задачу решить тремя способами:

  •  используя стандартную схему статистического моделирования;
  •  используя рациональную схему статистического моделирования с применением комбинированного метода сокращения трудоемкости;
  •  аналитически.

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

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

Исходные данные (Вариант 1):

;

;

;

;

.


ОСНОВНАЯ ЧАСТЬ

1 Аналитическое решение

  В соответствии с заданием необходимо решить дифференциальное уравнение:

, ,                                        (1)

где g = G( t ),

X(0) = A.       

Сначала найдем решение соответствующего однородного дифференциального уравнения:

 Подставим полученное решение однородного дифференциального уравнения (1):

 

Найдем С1 из условия X(0) = A:

В результате имеем:

Решение исходного дифференциального уравнения (1) имеет вид:

,                                                     (2)

Где где  a – случайный параметр, распределенный по равномерному закону в интервале [0.5;1.1],


k - случайный параметр, распределенный по равномерному закону в интервале [0.6;1],

  Для Т=1.2 с учетом статистической независимости k и a определим искомую характеристику:

   Математическое ожидание  выходного процесса определяется с учетом решения (2) [1]:

            (3)

Дисперсия  выходного процесса определяется с помощью уже найденного выше математического ожидания по формуле (3) [1]:

 (4)

Используя полученное аналитически значение дисперсии можно оценить требуемое количество опытов, которое необходимо было бы провести при решении методом статистического моделирования [1]:

,                                                          (5)

где параметр  принят равным 3 (при доверительной вероятности Рд=0,997.

Подставляя в формулу (5) значение, полученное по формуле (4), получим требуемое значение опытов :


2 Стандартная схема статистического моделирования

Поставленная задача решалась с использованием итерационного алгоритма статистического моделирования [1]. Данный алгоритм включает в себя следующие действия:

1. Проведение начальной серии опытов объемом N>=100, накопление сумм и вычисление оценок математического ожидания m*x и дисперсии D*x :

,                                                               (6)

,                                                      (7)

где xi – решение исходного дифференциального уравнения (1), находимое методом Эйлера с шагом h=0.01.

2. Получение оценки требуемого количества опытов:

.                                                           (8)

3. Проверка условия окончания вычислений

.                                                               (9)

4. Проведение дополнительной серии опытов и уточнение оценок математического ожидания m*x и дисперсии D*x , найденных по формулам (6) и (7) в случае невыполнения условия (9):

,                                                     (10)

.                                        (11)

5. Уточнение оценки требуемого количества опытов , найденное по формуле (8) с учетом новых значений математического ожидания и дисперсии, полученных по формулам (10) и (11):

.

6. Повторная проверка условия (9), и, в случае его невыполнения, возврат к пункту 4 для очередного проведения дополнительных серий опытов и уточнения найденных результатов.

Провели начальную серию опытов n = 400. Накопили суммы  и :   Вычислили оценки математического ожидания и дисперсии по (6) и (7):   Получили оценку требуемого количества опытов  по (8):

Так как , то провели дополнительную серию опытов  Для того, чтобы не проводилось лишнее число опытов искусственно уменьшили n в 2 раза. Таким образом,  опытов. Вновь накопили суммы ,  и  уточнили оценки математического ожидания и дисперсии по (9) и (10):    Тогда оценка требуемого количества опытов получилась:  Значение n = 11778+200=11978 опытов.

После данной итерации 11978<21100, следовательно, продолжили выполнение итерационного алгоритма. Получили следующие результаты:

    .

Проверили выполнение условия . Данное условие не выполнилось, так как 21398>21377, следовательно, алгоритм завершил работу.

Окончательные результаты :

 

Дифференциальное уравнение (1) решается численным интегрированием методом Эйлера первого порядка [4] с шагом 0.001. Программа, реализующая итерационный алгоритм, написана в среде Borland Delphi 7 [5]. Текст программы представлен в  Приложении 1.

3.Метод Выделения главной части.

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

 Решение системы                                                  (12)

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

 Вводится новая переменная состояния  и в системе уравнений (12) выполняется замена переменной  на Z путём подстановки:

                                                      (13)

                                                  (14)       

или

,

.

Оценка искомого математического ожидания определяется в виде:

mx=M[Y(t1,V)]+M[Z(t1,V)],                                                                                  (15)

где первое слагаемое может быть найдено аналитически:

,

G - область возможных значений вектора V, а второе слагаемое определяется по методу статистического моделирования на основе многократного решения полученной новой системы уравнений до момента времени t1: , , V (i) - i-я реализация вектора случайных параметров, N - количество решений системы уравнений для различных V (i).

При удачном выборе функции Y(t,V) дисперсия случайной величины Z(t1,V) может оказаться существенно меньше, чем дисперсия X1(t1,V), что и приведет к сокращению требуемого количества опытов.

3.2 Применение метода выделения главной части к решению задачи

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

                     (16)

Введём новую перемеренную состояния ,

отсюда

,

.

Выполним в уравнении (1) замену переменной X на Z :

                                 (17)

Получим новое уравнение:

,  (18)

где ,.  (Учитывая, что A=0)

Оценка искомого математического ожидания определяется в виде (15), где первое слагаемое может быть найдено аналитически:

а второе слагаемое определяется по методу статистического моделирования на основе многократного решения полученного нового уравнения (18).

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

Итак, по схеме итерационного алгоритма статистического моделирования, подробно рассмотренного выше, определим оценку математического ожидания  величины Z.

Таблица  Результаты вычислений

итерации

mz

Dz

Nтреб.

Общее количество опытов

1

-0.2082

0.0138

1238

500

2

-0.2052

0.0136  

1227

700

3

-0.2056

0.0135

1212

900

4

-0.2056

0.0134

1209

1100

В результате, при статистическом моделировании на основе использованного выше алгоритма, получили следующие оценки:

,  ,  

Оценка математического ожидания по (3) равна:

Таким образом, при использовании описанного метода позволило обеспечить снижение требуемого количества опытов по сравнению со стандартной схемой в  раз. Программа, реализующая итерационный алгоритм, написана в среде MATLAB 6.5 [5]. Текст программы представлен в  Приложении 2.


ЗАКЛЮЧЕНИЕ

В ходе выполнения работы были получены следующие результаты:

  •  определено математическое ожидание выходного сигнала неустойчивого апериодического звена в заданный момент времени, которое при решении задачи разными методами составило:
    •  при решении аналитически ;
    •  при решении прямым методом статистического моделирования  (необходимо провести 21377 опытов);
    •  при решении  методом выделения главной части  (необходимо провести 1209 опытов);
  •  снижена трудоемкость статистического эксперимента в 17.7 раза за счет выбора и проведения исследования упрощенной модели.


СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

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

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

3. “Положение о курсовых проектах и курсовых работах на факультете информационных и управляющих систем (общие требования)”.


ПРИЛОЖЕНИЯ

Приложение 1

unit Unit1;

interface

uses

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

 Dialogs,StdCtrls, Buttons;

type

 TForm1 = class(TForm)

   Memo1: TMemo;

   Memo2: TMemo;

   Edit1: TEdit;

   Button1: TButton;

   Memo3: TMemo;

   Memo4: TMemo;

   Memo5: TMemo;

   Memo6: TMemo;

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Label5: TLabel;

   Label6: TLabel;

   Label7: TLabel;

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

const

   alfa=9;

   h=0.001;

   eps=0.01;

   kk=1200;

var

 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

 var

 Sx,Sx2,mx,Dx,g,a,x,Sx2n,Sxn,mxn,Dxn,aa,kkk,K:real;

 i,j,ll:integer;

ntreb,nn,n,n1,n2:longint;

flag:boolean;

 begin

Sx:=0;

Sx2:=0;

randomize;

nn:=400;

Memo1.Lines.Clear;

Memo2.Lines.Clear;

Memo3.Lines.Clear;

Memo4.Lines.Clear;

Memo5.Lines.Clear;

Memo6.Lines.Clear;

// Начальная серия опытов

for i:=1 to nn do

   begin

   g:=1;

   a:=random*0.6+0.5;

   k:=random*0.4+0.6 ;

   x:=0;

   for j:=1 to kk do x:=(a*x+1*k*a)*h+x;

   Sx:=Sx+x;

   Sx2:=Sx2+sqr(x);

   end;

mx:=Sx/nn;     // Вычисление оценок МО и Дисперсии

Dx:=Sx2/(nn-1)-sqr(mx);

ntreb:=round(alfa*Dx/sqr(eps));     // Оценка Требуемого количества опытов

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

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

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

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

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

Memo5.Lines.Add('nn='+FloatToStr(nn));

n1:=0;

flag:=true;

// Дополнительная серия опытов

randomize;

while nn<ntreb do

begin

     n1:=ntreb-nn;      // Объём дополнительной серии

     edit1.text:=floattostr(n1);

     if (n1>8500) then n1:=n1 div 2

     else begin

     if n1<7 then n1:=n1*2;end;

     for i:=nn to n1+nn do

     begin

     G:=1;

   a:=random*0.6+0.5;

   k:=random*0.4+0.6 ;

     x:=0;

     for j:=1 to kk do x:=(a*x+1*K*a)*h+x;

     Sx:=Sx+x;

     Sx2:=Sx2+sqr(x);

     end;

Memo2.Lines.Add('n1='+FloatToStr(n1));

mx:=(Sx)/(n1+nn); //

Dx:=(Sx2)/(n1+nn-1)-sqr(mx);

Memo3.Lines.Add('Sxn='+FloatToStr(Sx));

Memo3.Lines.Add('Sx2n='+FloatToStr(Sx2));

Memo2.Lines.Add('mx='+FloatToStr(mx));

Memo2.Lines.Add('Dx='+FloatToStr(Dx));

nn:=n1+nn;

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

Memo4.Lines.Add('nn='+FloatToStr(nn));

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

Memo4.Lines.Add('************************');

end; end;

end.

Приложение 2

Функция a.m

function ret = g(t,x);

global A;

global G;

global a;

global k;

Y = (A + k * G )*(1+a*t*2)-k*G;

dY = a*k*2;

ret =  k * a * G + a * x + a * Y - dY;

Скрипт-файл Main.m

clear all;

clc;

global A;

global G;

global a;

global k;

G = 1;

t = 1.2;

A = 0;

array = [500 700 900 1100];

n = 0;

index = 1;

disp('Итерация    М.О.      Дисперсия      Треб. кол-во опытов     Общее кол-во опытов');  

ntr = array(1);

while (n < ntr && index < 5)

   

   nn=array(index);

       

   for i = (n+1):1:nn

       k = unifrnd(0.6, 1.0);

       a = unifrnd(0.5, 1.1);

       

       [T,U] = ode23('g', t, 0);

       tmp = U(size(U));

       x(i) = tmp(1);

   end;

   

   Mx = sum(x) / nn;

   Dx = sum(x .^ 2) / (nn - 1) - Mx ^ 2;

   n = nn;

   ntr = round(9 / 0.0001 * Dx);

   d = [index Mx Dx ntr n];

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

   index = index + 1;

       

end;


 

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

37026. ПУЛЬТОВОЕ ОБОРУДОВАНИЕ 1023.5 KB
  Содержание I Техническое описание лабораторного модуля Назначение 4 Технические характеристики 4 Состав и конструктивное исполнение 4 Подготовка к работе 5 II Технические характеристики и основы программирования таймера Н5СХ Общие сведения 6 Подключение входных и Выходных сигналов 7 Программирование таймера Н5СХ 8 III Технические характеристики и основы программирования счётчика Н7СХ Общие сведения 16 Подключение входных и выходных сигналов 17 Программирование счётчика Н7СХ 18 IV Технические характеристики и основы...
37027. Весна пришла. Сценарий класного часа 17.01 KB
  Настя: Ребята мы сегодня поговорим об одном из прекрасных времен года о весне. Далее Настя рассказывает о праздниках весны какие праздники знают дети Рассказ о космонавте Ю. Настя Аня Полет Белки и Стрелки в космос был осуществлен 19 августа 1960 года когда одна из ракет стартовавшая с космодрома Байконур вывела на орбиту космический корабль Восток с собаками на борту. Настя Какой бывает весна 3.
37029. Что нами движет при выборе профессии. Классный час 18.3 KB
  Как вы думаете о чем сегодня пойдет речь Сегодня разговор наш будет о профессиональном самоопределении процессе и результате самостоятельного и сознательного выбора профессии. Означает ли это что к выбору профессии можно идти путем проб и ошибок А может надо сознательно готовить себя к будущей профессиональной деятельности Что мы имеем в виду когда произносим слово “профессия†Профессия – понятие многозначное: общность всех людей занятых данным видом труда. Выбор профессии можно отнести к самым сложным от...
37031. В гостях у светофора 26.16 KB
  Игра Разрешается – запрещается. Ребята давайте вспомним правила дорожного движения и поиграем в игру Разрешается – запрещается. Если вы считаете что моё высказывание верное то говорите разрешается а если не верное то запрещается. Играть на мостовойзапрещается.
37034. В ГОСТЯХ У СКАЗОК БРАТЬЕВ ГРИММ 84.86 KB
  Und ds ist mein Zuberstock. lle zuschuen Wer ist ds Heinz ist ful Ist Heinz ful Wie ist Heinz Он любит много спать и много есть совсем не любит работать. Nennt lle Lebensmittel die Heinz mg Дети: Ds ist У. Rtet ws er will Дети задают вопросы типа: Ist ds Kse Вот так мечтая о благополучии и вкусной пище но не работая Гейнц лишился козы которая у него была улья с пчелами и даже последнего горшка с медом.