Cтраница 3
![]() |
Схема алгоритма испытаний при длительном статическом нагружении. [31] |
Третьим видом программ, подучив-шим наибольшее распространение в авиационной и автомобильной промыш-ленностях, является создание типовых программ нагружения. Существует несколько видов программ, реализованных с помощью ССМО СОУС, FMR, которые характеризуются тем, что в них определен достаточно большой блок, в котором распределение полуциклов по амплитудам и характер нагружения выбирались близкими к усредненным условиям эксплуатации. Стандартизованные программы для испытаний элементов конструкций задают последовательность экстремумов с помощью подпрограмм, осуществляющих генерирование случайных чисел с функцией распределения, заданной в виде таблицы. [32]
Некоторые компьютерные программы дают возможность воспользоваться более эффективными методами выборочного исследования, вытекающими, однако, из метода Монте-Карло. Один из них - широко распространенный метод латинского гиперкуба, с помощью которого производят статистическую обработку достоверных данных и получают такие же результаты после меньшего количества повторений, а следовательно, быстрее. Она эффективно использует генерирование случайных чисел программы Монте-Карло для выбора данных по конкретным слоям из суммарных кривых распределения частот. Это значительно расширяет спектр случайных значений переменных при относительно небольших усилиях. [33]
В языке Паскаль такой класс памяти отсутствует. Это означает, что если при использовании языка Паскаль необходимо, чтобы некоторая переменная сохраняла свое значение в промежутках между обращениями к некоторой функции или процедуре, то эта переменная должна быть внешней по отношению к соответствующей функции или процедуре. То есть эта переменная оказывается доступной для других функций и процедур, а ее имя должно быть уникальным в значительно более обширной области действия. Простым примером, иллюстрирующим проблемы, возникающие в результате отсутствия статических переменных, является подпрограмма для генерирования случайных чисел: сгенерированное при i - м обращении к такой подпрограмме случайное число должно быть сохранено, поскольку при ( i l) - M обращении к этой подпрограмме оно используется в качестве начального значения. Для этого сгенерированное случайное число должно размещаться в переменной, время жизни которой охватывает все обращения к подпрограмме генерирования случайных чисел. На практике это означает, как правило, необходимость описания этой переменной в самом внешнем блоке программы. А это приводит к тому, что описание этой переменной оказывается расположенным далеко от того места в программе, где эта переменная используется. [34]
Методам вычисления случайных чисел и генерирования случайных переменных посвящено множество теоретических работ; ограниченный объем книги не позволяет нам рассмотреть их здесь. Великолепный обзор по работам, опубликованным до 1962 г., был написан Халлом и Добеллом [5]; библиография обзора содержит около 150 наименований. Этим же вопросам посвящена монография Янссона [8], появившаяся в 1966 г.; в библиографию включено около 300 наименований. В книге Нейлора и др. [17] эти вопросы рассмотрены в двух главах; книга содержит также стандартные подпрограммы генерирования случайных чисел на Фортране. [35]
В языке Паскаль такой класс памяти отсутствует. Это означает, что если при использовании языка Паскаль необходимо, чтобы некоторая переменная сохраняла свое значение в промежутках между обращениями к некоторой функции или процедуре, то эта переменная должна быть внешней по отношению к соответствующей функции или процедуре. То есть эта переменная оказывается доступной для других функций и процедур, а ее имя должно быть уникальным в значительно более обширной области действия. Простым примером, иллюстрирующим проблемы, возникающие в результате отсутствия статических переменных, является подпрограмма для генерирования случайных чисел: сгенерированное при i - м обращении к такой подпрограмме случайное число должно быть сохранено, поскольку при ( i l) - M обращении к этой подпрограмме оно используется в качестве начального значения. Для этого сгенерированное случайное число должно размещаться в переменной, время жизни которой охватывает все обращения к подпрограмме генерирования случайных чисел. На практике это означает, как правило, необходимость описания этой переменной в самом внешнем блоке программы. А это приводит к тому, что описание этой переменной оказывается расположенным далеко от того места в программе, где эта переменная используется. [36]