По какому закону дует ветер?

Все уверены, что ветер дует по закону Вейбулла. Такова его функция распределения, как случайного процесса. Я же в этом усомнился. Взял первый попавший надёжный источник по ссылке conceptdraw.com/solution-park/QLT_TOOL_7BASIC (коричневая гистограмма из 20 колонок), перевел её в такие цифры (текстовой файл с именем wind.txt):

1 0.027 2 0.052 3 0.073 4 0.089
5 0.098 6 0.101 7 0.098 8 0.092
9 0.083 10 0.07 11 0.057 12 0.046
13 0.035 14 0.026 15 0.019 16 0.013
17 0.009 18 0.006 19 0.004 20 0.002

и нашел своё самое подходящее распределение (см. на рисунке).
Составил малюсенькую программу аппроксимации методом Монте Карло:

open #1,"wind.txt","r"
dim x(100),y(100),f(100):z=.01
for i=1 to 20:input #1 x(i),y(i):next i
a0=-1:b0=1:c0=1:d0=1:s1=10^100:nn=10000000
for j=1 to nn:a=a0*(1+z*(ran()-.5))
b=b0*(1+z*(ran()-.5))
c=c0*(1+z*(ran()-.5)):d=d0*(1+z*(ran()-.5))
s=0
for i=1 to 20:x=x(i)
A1=-a*x^(b*x^c+d-1)
A2=(b*x^c*(c*log(x)+1)+d)
A3=exp(a*x^(b*x^c+d))
f(i)=A1*A2*A3
s=s+(y(i)-f(i))^2:next i:if s<=s1 then
print a,b,c,d,s:s1=s
if s<0.00001 then z=0.0001:fi
a0=a:b0=b:c0=c:d0=d
fi
next j

Нашел 4 оптимальных параметра распределения Александрова после десяти миллионов циклов прокрутки.
Сумма квадратов отклонений по 20 точкам равна 0.00000435. Это отличный результат для натурных наблюдений! Сопоставление с точками гистограммы хорошо видно на графике: совпало так, будто ветер ни на миллиметр не отклонился!
Что касается хвалёного распределения Вейбулла (детища 1939 года, то есть 82 года назад), то его тут даже стыдно приводить. Сумма квадратов отклонений у него на порядки больше.

2 сентября 2021 г.


Рецензии