Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2014, 12:53   #1
Romen1992
Новичок
Джуниор
 
Регистрация: 20.04.2014
Сообщений: 1
По умолчанию Моделирование случайных величи

Нам дан вот такой пример, менять вроде как объяснил препод нужно то, что выделено..
Код:
Program Test_08;
{Тестирование генераторов случайных чисел}
Const
  Nx=20000; {Максимальное число реализаций}
  N1=1000;  {Период проверки}
{Менять отсюда}
Var
  a,b,c,p:real; {Параметры распределения}
  Xsr,Sigma,r:real;{Среднее,квадр.отклонение, коэф.корреляции}
  Xs,Sig,r_:real;{Теоретические среднее,квадр.отклонение}
  dXsr,dSigma:real;{Отклонения от теор. значений}
  iv:1..2;
  n:integer;
  X,X1:real;
  S1,S2,S3:real;{Накапливаемые статистики}
  Fil:text;
Function Gistograma(a,b,c,p:real):real;
{Генератор случайных чисел по гистограмме}
Var
  g:real; {случайное число в интервале 0..1}
Begin
 g:=random;
 if g<p then begin g:=random;  Gistograma:=a+g*(b-a) end
        else begin g:=random;  Gistograma:=b+g*(c-b) end;
End;
Procedure Param(a,b,c,p:real;Var Xsr,Sigma:real);
{Вычисление математического ожидания Xsr и квадратичного отклонения
 Sigma генерируемой случайной величины}
 Var X2:real;
 Begin
  Xsr:=p*(a+b)/2+(1-p)*(b+c)/2;
  X2:=p*(a-c)*(a+b+c)/3+(b*b+b*c+c*c)/3;
  Sigma:=sqrt(X2-Xsr*Xsr);
 End;[/B]
{И до сюда}
BEGIN
 writeln('Куда выводить результаты ? 1 - экран, 2 - файл Test_08.rez');
 readln(iv);
 if iv=1 then assign(Fil,'Con')
         else assign(Fil,'Test_08.rez');
 rewrite(Fil);
 writeln('Введите параметры распределения a,b,c,p');
 readln(a,b,c,p);
 {Вывод шапки таблицы}
 writeln(Fil,'Результаты тестирования  распределения с параметрами');
 writeln(Fil,'    a=',a:8:2,' b=',b:8:2,' c=',c:8:2,' p=',p:8:2);
Writeln(Fil,'┌───────┬────────┬──────┬────────┬──────┬──────┬');
 Writeln(Fil,'│   N   │   Xsr  │ dXs  │  Sigma │dSigma│   r  │');
 Writeln(Fil,'├───────┼────────┼──────┼────────┼──────┼──────┤              ');
 S1:=0; S2:=0; S3:=0;
 Param(a,b,c,p,Xs,Sig); {Расчет теоретических значений}
 r_:=0;
 for n:=1 to Nx do
 begin
  X:=Gistograma(a,b,c,p);
  S1:=S1+X; S2:=S2+X*X;
  if n>1 then S3:=S3+X*X1;
  X1:=X;
  if n mod N1 = 0 then
   begin
    Xsr:=S1/n;
    dXsr:=abs(Xsr-Xs);
    Sigma:=sqrt(S2/n-Xsr*Xsr);
    dSigma:=abs(Sigma-Sig);
    r:=(S3/(n-1)-Xsr*Xsr)/sqr(Sigma);
 writeln(Fil,'│ ',n:5,' │',Xsr:7:3,' │',dXsr:6:3,'│',Sigma:7:3,' │',dSigma:6:3,'│',r:6:3,'│');
   end;
 end;
Writeln(Fil,'├───────┼────────┼──────┼────────┼──────┼──────┤');
 writeln(Fil,'│Точ.зн.│',Xsr:7:3,' │      │',Sig:7:3,' │      │',r_:6:3,'│');
Writeln(Fil,'└───────┴────────┴──────┴────────┴──────┴──────┘');
 readln;
 close(Fil);
END.
Нужно её изменить для расчета с помощью логарифмически нормального распределения.


Последний раз редактировалось Romen1992; 20.04.2014 в 12:57.
Romen1992 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компьютерное моделирование, моделирование физических процессов. (в Excel ) Dytchi Помощь студентам 0 06.02.2012 15:54
Датчик случайных чисел Ksy JavaScript, Ajax 0 07.02.2011 23:10
1) Моделирование полной группы случайных событий gfadssa11 Microsoft Office Excel 5 17.12.2010 00:34
ввод случайных чисел OlegBodom Помощь студентам 6 09.10.2009 10:39
Генерация случайных... Яр|/||< (^_^) Общие вопросы Delphi 2 22.06.2009 21:33