Магическая кладка. Предистория 2
Но как должен выглядеть идеальный вариант? О, сколько копий было поломано в погоне за таковым! Великий инженер двадцатого столетия Алексей Алексеевич Солодовников нашел интуитивно изумительно красивую кладку причальной стенки из бетонных блоков. Она так и называется: "стенка Солодовникова". На нее был получен в 1954 году патент №98774 "Причальная стенка из массивовой кладки". Описание легко найти в интернете. Но это почти единичный случай, относящийся к однорядным структурам. Многорядные же кладки - во много раз более сложные. Интуиция в этом случае оказывается бессильной. Только математика способна рассмотреть данную проблему в самом общем виде и находить среди миллионов возможностей настоящие жемчужины и золотые россыпи.
Моя мама была прекрасным педагогом и математиком. Она подала мне революционную идею, похожую на метод линейного программирования. Отличие только в одном: найденная область нужна не для выявление целевой функции, которая лишь касается границы ОДР (области допустимых решений), а как раз внутри этой ОДР следует искать серию кривых целевой функции. Более того, мама предположила, что хотя бы на одной из линий наверняка найдётся и жемчужная точка. О, Боже! Как же она была права!
На рисунке показана математическая модель ОДР. Целевые функции - в левом верхнем углу. Чтобы графически построить область, нужно знать предельные ее точки. Их проще всего находить методом Монте Карло. Вот часть программы для нахождения наибольшей ширины стенки Br_max:
sxema=1:Gr=100:a=3:b=4:c=5:ro=2.4
if sxema=1 then N=a+b+c:J=min(c-b,a+b-c):fi
rem Method Monte-Carlo
hmax=(Gr/ro)^(1/3):hmin=(Gr/(9*ro))^(1/3):hr0=(hmax+hmin)/2
Br0=(3*hmax+9*hmin)/2
print hr0,Br0
smin=1/10^100
z=0.1
for i=1 to 1000000
hr=hr0*(1+z*(ran()-.5))
Br=Br0*(1+z*(ran()-.5))
if Br>=(Gr+376)/(520*J)*N then
if Br>=Gr*N/(3*hr^2*ro*a) then
if Br>=hr*N/(4*J) then
if Br>=hr*N/a then
if Br<=600*N/(hr*ro*(1+260/Gr)*b*c) then
if Br<=3*hr*N/c then
if Br<=Gr*N/(hr^2*ro*c) then
if Br<=sqrt(Gr*N/(hr*ro)) then
if Br<=4*Gr*N/(hr^2*ro*b*c) then
if Br>=smin then
print Br,hr:Brmax=Br:hr1=hr
smin=Br:hr0=hr:Br0=Br
fi:fi:fi:fi:fi:fi:fi:fi:fi
fi
next i
print "Br_max= ";:print Brmax;:print " hr1= ";:print hr1
В результате: Br_max= 15.3254 hr1= 2.12873
Аналогично находятся и другие экстремальные параметры. То есть мы можем выявить габариты в пикселах для окна будущего графика.
22 июня 2021 г.
80 лет назад в этот день началась самая безумная война в истории человечества.
Свидетельство о публикации №221062201621