Курсовая работа: Вычисление интегралов методом Монте-Карло
if (!(i % PSChunk))
{
WaitForm->ProgressBar1->Position=100.0*(i-1)/(mcres.n1_int-1);
WaitForm->Refresh();
}
// проверка ограничения
con_ok=1;
switch (mcres.con_type)
{
case 3: // сплайн – поверхности
if ((_p(x_int,3,1) < sp_bottom->f(_p(x_int,1,1), \
_p(x_int,2,1)))||(_p(x_int,3,1) > sp_top->f(_p(x_int,1,1),_p(x_int,2,1)))) con_ok=0;
break ;
case 2: // квадратичная функция ограничений
con_sum=0;
for (ii=1; ii <= d_int; ii++)
for (jj=1; jj <= d_int; jj++)
if (_p(con_U,ii,jj) != 0)
con_sum += _p(x_int,ii,1)*_p(con_U,ii,jj)*_p(x_int,jj,1);
for (ii=1; ii <= d_int; ii++)
if (_p(con_v,ii,1) != 0)
con_sum += _p(con_v,ii,1)*_p(x_int,ii,1);
if (con_sum > con_wd) con_ok=0;
break ;
case 1: // линейная функция ограничений
for (ii=1; ii <= con_A->nl; ii++)
{
con_sum=0;
for (jj=1; jj <= d_int; jj++)