Showing posts with label Теория. Show all posts
Showing posts with label Теория. Show all posts

Friday, February 22, 2008

Matlab: статистические штучки для получения реализаций случайной величины

Это первое сообщение, отосланное через ScribeFire, аддон к браузеру FireFox.
Так-с. Исходные данные. Предполагается, что читатель знаком с:
Предположим, что у нас есть случайная прочность R с параметрами m=350, s=30. Это выглядит так:



Функции распределения и функции плотности в Матлабе соответствуют команды
cdf('norm', x, Mean1, StdDev1)
pdf('norm', x, Mean1, StdDev1)
Команда cdf(...) отвечает на вопрос "какова вероятность того, что реализация случайной переменной будет меньше, чем x?"
Но для задачи вероятностного расчета методом Монте-Карло нам нужно средство генерации множества реализаций нашей случайной прочности.
Для равномерного распределения такое средство одинаково в любом языке программирования и называется RND. И в Екселе тоже есть.
Для любого другого распределения для генерации случайных чисел нам нужна функция, обратная CDF, отвечающая на вопрос "какое число соответствует вероятности непревышения такой-то?". Такой способ получения случайных чисел называется методом обратного преобразования.
Откуда нам взять такого зверя? На помощь приходит замечательный статистический пакет Stixbox, о котором я обещал написать :
>> MonteCarloData1 = rnorm(1000, 350, 30);
>> Mean1 = mean(MonteCarloData1)
Mean1 =
349.9133
>> StdDev1 = std(MonteCarloData1)
StdDev1 =
30.7880
Функция rnorm(количество_реализаций, среднее, стд_отклонение) выдает столько реализаций случайной величины с нормальным распределением, сколько нам заблагорассудится. С ее помощью и построена наложенная на рисунок гистограмма реализаций случайной величины (красненьким).
Аналогичные функции есть в этом пакете и для других известных распределений. Для задач вероятностного анализа расчетных моделей конструкций более чем достаточно. Спасибо за этот замечательный инструмент Андерсу Хольтсбергу.

Thursday, February 21, 2008

Про 0,99865

Как показало былинное обсуждение «коэффициента спокойного сна» на dwg.ru, насчет критериев обеспеченности расчетных значений существует значительная неразбериха. Не говоря уже про вероятностный анализ.
Итак. Откуда берутся упомянутые в первой ссылке величины обеспеченности 0,99865 и 0,997. (Предполагается, что читатель знает, что такое среднее значение случайной величины и её стандартное отклонение.)
  • 0,997 - вероятность того, что реализация случайной величины с нормальным распределением окажется в промежутке между значением "среднее минус три стандартных отклонения" и "среднее плюс три стандартных отклонения". Этот промежуток будет называться доверительным интервалом.
  • 0,99865 - вероятность того, что эта реализация будет больше, чем значение "среднее минус три стандартных отклонения".

Первое можно получить с помощью так называемой функции ошибки (используем Matlab/Octave, как обычно):

>> erf(3/sqrt(2))
ans = 0.9973
Второе, как уже обсуждалось в более ранней записи,
>> 1 - cdf('norm', 1000-3*50, 1000, 50)
ans = 0.998650101968370
Как видим, 0,997 пришло к нам из статистики и еретического учения маркетинга сотоварищи. 0,99865, наоборот, есть правильная инженерная цифирь и, попросту говоря, является обеспеченностью (вероятностью), например, расчетной прочности бетона.
В нормах, понятно, все это отражено крайне мутными словами, и расчетное значение вычисляется на основе нормативного (с обеспеченностью 0,95) при помощи частных коэффициентов. Все это приводит к тому, что доценты нашего института не знают, что такое "обеспеченность" и в чем разница между коэффициентами перегрузки и коэффициентами безопасности (правильнее - частные коэффициенты надежности).

На картинке показана:
темно-красным - плотность распределения некоторой прочности с матожиданием 350, стандартным отклонением 30;
красным - гистограмма дискретных реализаций этой величины (1000 штук);
синим - расчетная и нормативная прочности с обеспеченностью 0,99865 и 0,95.