48611

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

Курсовая

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

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

Русский

2013-12-12

789.5 KB

6 чел.

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

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

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

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

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

студента: Баева Василия Михайловича

группы  И351

 

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

2009 г.


Содержание

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

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

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

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

3 Рациональная схема статистического моделирования …………………………………………...9

Заключение ………………………………………………………………………………………………13

Список использованных источников …………………………………………………………………..14

Приложения ……………………………………………………………………………………………...15

     Приложение А………………………………………………………………………………………..15

Приложение Б………………………………………………………………………………………..16

Приложение В………………………………………………………………………………………..19


Введение

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

где g = G( t ),

X(0) = A.         

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

Допустимая абсолютная погрешность результата: εдоп. = 0,01.

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

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

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

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

Исходные данные (вариант 2-2):

G = 1 ÷ 1.4,                

a = 0.6 ÷ 0.8,              

T = 1.3,

A = 1,                          

k = 1.2.


Основная часть

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

Решим дифференциальное уравнение вида[1]:

                                                                                       (1)

где g = G(t), 

X(0) = A.       

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


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

 

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

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

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

                                                                                       (2)

где g – случайный параметр, распределенный по равномерному закону в интервале [1;1.4],


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

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

где  - искомое математическое ожидание.

С учетом (1) находим :

Таким образом,

Определим дисперсию :

               ,                                      (3)

где  - дисперсия выходного сигнала.

Введем обозначение:  и найдем  :

    (4)

Рассчитаем слагаемые, входящие в (4):

;

Таким образом, 21.77.

 Подставив полученные значения в (3), определим дисперсию выходного сигнала:

С учетом известной дисперсии оценим необходимое количество опытов с погрешностью :

,

где  – необходимое количество опытов.

Значение параметра  зависит от доверительной вероятности . Примем Pд=0,997  и  aд=3. Подставив значения параметров в (5), получим:

опытов.

Все перечисленные расчеты производились в математическом пакете MathCAD [2],  приводятся в Приложении А.


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

Если трудоемкость эксперимента имеет существенное значение, применяются итерационные алгоритмы получения оценок [3]. Идея итерационных алгоритмов состоит в том, что определение точности и требуемого количества опытов проводится в ходе эксперимента на основе получаемых оценок искомых параметров.

Блок-схема типового итерационного алгоритма приведена на рисунке 1.

Рисунок 1 - Блок-схема итерационного алгоритма

Для задачи оценки математического ожидания  случайной величины x предусматривается:  

  1.  Проведение начальной серии опытов объемом n  и накопление сумм

  ,

где  - реализация случайной величины  x в отдельных опытах.

  1.  Вычисление оценок математического ожидания  и дисперсии :

,                                                           (6)

.                                                   (7)

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

.                                                       (8)

  1.  Проведение дополнительной серии опытов объемом  и накопление сумм:

,   .

  1.  Уточнение оценок математического ожидания m*x  и  дисперсии D*x:

,                                                            (9)

.                                                (10)

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

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

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

    .

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

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

 

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

Проблема метода  связана с тем, что результаты проводимых серий опытов складываются случайным образом и при конечных n возможны следующие негативные эффекты:

  •  Выборочный  закон  распределения  может  существенно  отличаться  от нормального. Чаще всего оценки требуемого количества опытов оказываются завышенными.
  •  Разброс составляющих выборку реализаций случайной величины может оказаться существенно меньше истинного ее разброса. Оценки требуемого количества опытов оказываются резко заниженными, а результаты моделирования - неточными. Во избежание подобных ситуаций рекомендуется выбирать объем начальной серии опытов не менее 100-500.
  •  В выборке могут оказаться реализации случайной величины, значительно отличающиеся от ее среднего значения, в непропорционально большом количестве (возможны завышенные оценки требуемого количества опытов для получения точных результатов моделирования).

3 Рациональная схема статистического моделирования

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

В соответствии с данным методом область G возможных значений случайного вектора разбивается на K=10 непересекающихся областей Gk:

 

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

где pk – вероятность попадания случайного вектора V в область Gk

.

В нашем случае pk  = 0.1.

Блок-схема итерационного алгоритма метода расслоенной выборки приведена на рисунке 2.

           

Рисунок 2 - Блок-схема итерационного алгоритма метода расслоенной выборки.

1.Если для области Gk выполним Nk опытов, получим оценку математического ожидания искомого показателя для данной области:

.                                                 (11)         

 Результирующая оценка  должна рассматриваться как случайная дискретная величина, значения которой  наблюдаются с вероятностями pk . Тогда результирующая оценка определяется усреднением:

                                             .                                          (12)

 2.Определим дисперсию оценки (9), имея в виду, что все N1+ N2+ N3+…+ N10 слагаемые – независимые случайные величины:

                           .                          (13)

 Дисперсия случайной величины  может быть оценена следующим образом:

                          (14)

3. Введя в рассмотрение доли от общего количества опытов, соответствующие областям Gk,

,

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

                                       (15)

  При удачном разбиении области G и удачном выборе соотношения количества опытов для отдельных областей Gk дисперсия оценки (13) может быть существенно снижена. Оптимальные значения  должны быть пропорциональны произведениям

Провели начальную серию опытов N=200. После проведения данной серии опытов были  получены следующие результаты:

  •  Оценка математического ожидания для каждой из 10 областей на основании (11):

  •  Результирующая оценка математического ожидания по (12):

  •  Дисперсия  для каждой из 10 областей по (14):

  •  Дисперсия оценки математического ожидания по (13):

  •  Требуемое количество опытов, рассчитанное по (15):

 опытов.

Алгоритм повторялся до тех пор, пока не выполнилось условие . Данное условие выполнилось после третьей итерации алгоритма.

После второй итерации получили:

  •  N = 1982 опытов.

  •  Оценка математического ожидания для каждой из 10 областей:

  •  Результирующая оценка математического ожидания:

  •  Дисперсия  для каждой из 10 областей:

  •  Дисперсия оценки математического ожидания:

(

  •  Требуемое количество опытов:

опытов.

После третьей итерации алгоритма:

  •  N = 2191 опытов.

  •  Оценка математического ожидания для каждой из 10 областей:

  •  Результирующая оценка математического ожидания:

  •  Дисперсия  для каждой из 10 областей:

  •  Дисперсия оценки математического ожидания:

  •  Требуемое количество опытов:

 опытов.

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

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

Заключение

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

  •  Используя стандартную схему статистического моделирования  
  •  Используя метод расслоенной выборки  
  •  Аналитически

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


Список использованных источников

  1.  Бертмант А.Ф. Краткий курс математического анализа. - М.: Наука, 1965.
  2.  Кирьянов Д. Самоучитель MathCAD 11.- СПБ.: Бхв-Петербург, 2003.
  3.  Емельянов В.Ю. Методы моделирования стохастических систем управления. - СПб.: БГТУ, 2004.
  4.  Потапов М. К. Алгебра и анализ элементарных функций. - М.: Наука, 1980.
  5.  Бобровский С.  DELPHI 7. Учебный курс.- СПБ.: Питер, 2003.

       Приложение А

Аналитические расчеты, произведенные в математическом пакете MathCAD.

      Приложение Б

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

unit Standart;

interface

uses

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

 Dialogs, StdCtrls, Buttons;

type

 TForm1 = class(TForm)

   Memo1: TMemo;

   Edit1: TEdit;

   Memo2: TMemo;

   Button1: TButton;

   BitBtn1: TBitBtn;

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

const

   alfa=9;

   h=0.001;

   eps=0.01;

   kk=1300;

   k=0.5;

var

 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

 var

 Sx,Sx2,mx,Dx,G,a,x,Sx2n,Sxn,mxn,Dxn:real;

 i,j,ll:integer;

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

flag:boolean;

 begin

Sx:=0;

Sx2:=0;

randomize;

nn:=200;

Memo1.Lines.Clear;

Memo2.Lines.Clear;

for i:=1 to nn do

   begin

   G:=random*0.4+1;

   a:=random*0.2+0.6;

   x:=1;

   for j:=1 to kk do x:=x+a*x*h+g*1.2*a*h;

   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));

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

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

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

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

n1:=0;

flag:=true;

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:=random*0.4+1;

     a:=random*0.2+0.6;

     x:=1;

     for j:=1 to kk do x:=(a*x+g*1.2*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);

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

Memo2.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));

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

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

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

end; end;

end.

            Приложение В

                                         Программная реализация метода расслоенной выборки

unit Viborka;

interface

uses

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

 Dialogs, Buttons, StdCtrls;

type

 TForm1 = class(TForm)

   Memo1: TMemo;

   Memo2: TMemo;

   Memo3: TMemo;

   Memo4: TMemo;

   Memo5: TMemo;

   Memo11: TMemo;

   Memo12: TMemo;

   Button1: TButton;

   BitBtn1: TBitBtn;

   Edit1: TEdit;

   Edit2: TEdit;

   Edit3: TEdit;

   StaticText1: TStaticText;

   StaticText2: TStaticText;

   StaticText3: TStaticText;

   StaticText4: TStaticText;

   StaticText5: TStaticText;

   StaticText6: TStaticText;

   StaticText7: TStaticText;

   StaticText8: TStaticText;

   StaticText9: TStaticText;

   StaticText10: TStaticText;

   Memo6: TMemo;

   Memo7: TMemo;

   Memo8: TMemo;

   Memo9: TMemo;

   Memo10: TMemo;

   StaticText11: TStaticText;

   StaticText12: TStaticText;

   StaticText13: TStaticText;

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

uses Okno2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

const

 h=0.001;

 eps=0.01;

 alfa=9;

 k=10;

 Pk=0.1;

 kk=1300;

 t=1.3;

 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,g,a,Disp,treal,xn:real;

begin

    randomize;

    ntreb:=200;

    n:=0;

    f:=true;

    jj1:=0;

Memo1.Lines.Clear;

Memo2.Lines.Clear;

Memo3.Lines.Clear;

Memo4.Lines.Clear;

Memo5.Lines.Clear;

Memo6.Lines.Clear;

Memo7.Lines.Clear;

Memo8.Lines.Clear;

Memo9.Lines.Clear;

Memo10.Lines.Clear;

Memo11.Lines.Clear;

Memo12.Lines.Clear;

while n<ntreb do begin

          Dx:=0;

          Mx:=0;

          qk:=0;

          Mxcp:=0;

          Disp:=0;

          for i:=1 to k 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

                  g:=random*0.4+1;

                  a:=random*Pk*0.2+0.6+Pk*(i-1)*0.2;

                    x:=1;

                   for jj:=1 to kk do begin x:=(a*x+g*a*1.2)*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));

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

                  end;

              2:  begin //Memo2.Lines.Clear;

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

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

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

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

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

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

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

                  Memo2.Lines.Add('***********');end;

              3:  begin //Memo3.Lines.Clear;

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

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

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

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

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

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

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

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

                  Memo3.Lines.Add('***********');end;

              4:  begin// Memo4.Lines.Clear;

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

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

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

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

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

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

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

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

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

              5:  begin //Memo5.Lines.Clear;

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

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

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

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

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

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

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

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

                  Memo5.Lines.Add('***********');end;

              6:  begin //Memo6.Lines.Clear;

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

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

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

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

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

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

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

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

                  Memo6.Lines.Add('***********');end;

              7:  begin //Memo7.Lines.Clear;

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

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

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

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

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

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

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

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

                  Memo7.Lines.Add('***********');end;

              8:  begin //Memo8.Lines.Clear;

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

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

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

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

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

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

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

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

                  Memo8.Lines.Add('***********');end;

             9:  begin //Memo9.Lines.Clear;

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

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

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

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

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

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

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

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

                  Memo9.Lines.Add('***********');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));

                  Memo10.Lines.Add('***********');end;

          end;

         // Form2.Visible:=true;

             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));

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

        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));

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

        edit3.text:=floattostr(ntreb);

        f:=false;

        end;

        end;

end.

   


 

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

12046. Банковское кредитование 148 KB
  Банковское кредитование ВВЕДЕНИЕ Актуальность темы данной работы обусловлена несколькими аспектами. Вопервых увеличением числа кредитнофинансовых организаций осуществляющих кредитные операции. Это требует выявление специфики именн
12047. Оптимізація біржової торгівлі конвертованими валютами на базі прогнозування їх крос-курсів на прикладі діяльності приватного підприємця 1.62 MB
  ПОЯСНЮВАЛЬНА ЗАПИСКА до дипломної роботи магістра спеціальності 8.050102 Економічна кібернетика на тему: Оптимізація біржової торгівлі конвертованими валютами на базі прогнозування їх кроскурсів на прикладі діяльності приватного підприємця ЗАВДАННЯ для диплом
12048. Сравнительный анализ условий предоставления потребительский кредитов на материалах банков г.Барнаула 1009.5 KB
  Содержание Введение Теоретические аспекты организации кредитования физических лиц Основы кредитования физических лиц Процедура выдачи кредита Способы опр...
12049. Фундаментальный анализ эмитентов в инвестиционной деятельности на рынке ценных бумаг 649 KB
  Фундаментальный анализ эмитентов в инвестиционной деятельности на рынке ценных бумаг Содержание [1] Содержание [2] ВВЕДЕНИЕ [3] Глава 1. Фундаментальный подход к оценке акций. [3.1] 1.1 Сущность фундаментального подхода [...
12050. Организация и совершенствование управления банковскими рисками на примере АО «Казкоммерцбанк» 533.5 KB
  Введение Умение разумно рисковать один из элементов культуры предпринимательства в целом а банковской деятельности в особенности. Современный рынок банковских услуг находящийся сегодня кризисном положении наглядно иллюстрирует актуальность рассматриваемого
12051. АНАЛИЗ ФИНАНСОВОГО СОСТОЯНИЯ И ОЦЕНКА КРЕДИТОСПОСОБНОСТИ ЗАО «АРГО» 432.5 KB
  PAGE 27 ВВЕДЕНИЕ Кредитнофинансовая система – одна из важнейших и неотъемлемых структур рыночной экономики. Развитие банковской системы и товарного производства исторически шло параллельно и тесно переплеталось. Находясь в центре экономической жиз
12052. ШЛЯХИ ВДОСКОНАЛЕННЯ ДІЯЛЬНОСТІ БАНКІВСЬКОЇ СИСТЕМИ УКРАЇНИ 274 KB
  ВСТУП У наш час Україна переживає широкомасштабну економічну кризу. Це не дивує тому що з початку 90х років у нашій країні були проведені реформи спрямовані на зміну економічного і політичного устрою. Серед тих сфер де відбулися особливо великі зміни у зв’язку з
12053. Депозитарная деятельность в Республике Беларусь и пути ее совершенствования (на примере депозитария ООО «БММ-Траст») 1.18 MB
  ДИПЛОМНАЯ РАБОТА на тему: Депозитарная деятельность в Республике Беларусь и пути ее совершенствования на примере депозитария ООО БММТраст реферат Депозитарная деятельность в Республике Беларусь и пути ее совершенствования на примере депозитария ОО...
12054. Концепція управління персоналом в комерційному банку АКБ Приватбанк 1.13 MB
  ДИПЛОМНА РОБОТА спеціаліста Концепція управління персоналом в комерційному банку АКБ Приватбанк АНОТАЦІЯ Предметом дипломного проекту є вивчення стосунків працівників у процесі роботи комерційного банку з точки зору найбільш повного та ефект...