Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры_сапр(оба сем)ГОТОВЫЕ.doc
Скачиваний:
7
Добавлен:
13.09.2019
Размер:
3.1 Mб
Скачать

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

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

Недостатком яв-ся необходимость символьных преобразований, что резко снижают описание гибридного поведения, а также необходимость численного решения большого числа алгебраических уравнений, что значительно услажняет задачу автоматического получения достоверного решения. К наиболее простейшим относятся: Dymola, Omola, OmSim, Smile, Modelica.

3. Пакеты, ориентированные на использование схем гибридного автомата.

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

Недостатки: избыточность описаний, при моделировании чистых непрерывных систем. Пример: пакеты Shibt, Model Visin Studium.

41.Опишите способы генерации последовательности случайных чисел, используемые при моделировании систем на ЭВМ

На практике в большинстве случаев применяются программные методы получения случайных чисел. на самом дел'е случайные последовательности, получаемые по некоторому алгоритму, яв-ся псевдослучайными. это происходит из-за того, что связь между значениями в последовательности, получаемой программным путем, обычно все-таки существует. данное обстоятельство приводит к тому, что на каком-то этапе генерируемая последовательность чисел начинает повторяться — «входит в период». рассмотрим несколько наиболее известных и пригодных для практического использования программных методов генерации псевдослучайных величин (все же, понимая смысл выражения, будем по привычке и для удобства называть их случайными).

конгруэнтный метод генерации последовательности случайных чисел

конгруэнтный метод генерации последовательности случайных чисел получил широкое распространение. он описан во многих источниках, но конкретных рекомендаций по его использованию на платформе intel автор не встретил. попытаемся устранить этот недостаток. в основе этого метода генерации последовательности случайных чисел лежит понятие конгруэнтности. по определению, два числа а и в конгруэнтны (сравнимы) по модулю м в случае, если существует число к, при котором а-в=км, то есть если разность а-в делится на м, и числа а и в дают одинаковые остатки от деления на м. например, числа 85 и 5 конгруэнтны по модулю 10, так как при делении на 10 дают остаток 5 (при к=1). в соответствии с этим методом каждое число в этой последовательности получается исходя из следующего соотношения:

хn+1=(ахn+с) mod m, где n > 0. (1)

при задании начального значения хо, констант а и с данное соотношение однозначно определяет последовательность целых чисел x,, составленную из остатков от деления на m предыдущих членов последовательности, в соответствии с соотношением (1). величина этих чисел не будет превышать значение т. если каждое число этой последовательности разделить на т, то получится последовательность случайных чисел из интервала 0.1.1'. но не спешите подставлять в это соотношение какие-либо значения. основная трудность при использовании этого метода — подбор компонентов формулы. в зависимости от значения с различают два вида конгруэнтного метода — мультипликативный (с=0) и смешанный (с не равно 0).

мультипликативный конгруэнтный метод генерации последовательности случайных чисел

мультипликативный конгруэнтный метод задает последовательность неотрицательных целых чисел xj (xj<m), получаемых по формуле:

хn+1=ахn(mod m). (2)

на значения накладываются ограничения:

  • хо — нечетно;

  • а=52р+1 (р=0, 1, 2, ...) или a=2m+3 (m=3, 4, 5, ...) — обе эти записи означают, что младшая цифра а при представлении а в восьмеричной системе счисления должна быть равна 3 или 5 (проще говоря, остаток от деления а/8 должен быть равен 3 или 5);

  • m=2 (1>4).

при соблюдении этих ограничений, длина периода будет равна m/4.

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

соотношение смешанного конгруэнтного метода выглядит так: xn+1=(axn+c) mod m, где n > 0. при правильном подборе начальных значений элементов кроме увеличения периода последовательности случайных чисел уменьшается корреляция (зависимость) получаемых случайных чисел.

на значения накладываются ограничения:

  • х0>0;

  • а=21+1, где 1>=2;

  • с>0 взаимно просто с m (это выполнимо, если с — нечетно, а т=2р, где (р>=2)

  • m=2р (р>=2) и т кратно 4.

аддитивный генератор случайных чисел

генератор, формирующий очередное случайное число в соответствии с отношением (3), называется аддитивным:

xn+1=(xn+xn-k) mod m. (3)

в трехтомнике кнута [5] обсуждаются подобные генераторы и рекомендован следующий вариант формулы (3):

xn+1=(xn-24+xn-55) mod m.(4)

здесь n > 55, m=21, хо, ..., х54 — произвольные числа, среди которых есть и нечетные. при этих условиях длина периода последовательности равна 21-1 (255-1). для генерации первых 55 случайных чисел можно использовать один из рассмотренных выше генераторов. возьмем датчик линейной (смешанной) конгруэнтной последовательности случайных чисел (с > 0).

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

для процесса генерации требуются два значения одинаковой размерности — y и с. значение y будет первым в последовательности случайных чисел. значение с играет роль маски, в соответствии с которой впоследствии будет производиться операция «исключающее или». генерация очередного случайного числа происходит в два этапа. на первом этапе значение y сдвигается влево на один разряд. при этом нас интересует содержимое выдвинутого бита. его значением устанавливается флаг eflags.cf. на втором этапе, если cf=1, то корректируем значение y= =y xor с и сохраняем y; в противном случае сохраняем сдвинутое значение в качестве очередного числа последовательности.

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

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

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

  • стохастичность последовательности псевдослучайных чисел. этот критерий означает определение вероятности появления единиц (нулей) в определенных п разрядах генерируемых датчиком случайных чисел.

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