2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 счетчик идет не правильно с++
Сообщение22.12.2017, 23:34 
Код:
for(size_t n = 1; n < n_max; n++)
{

        t[n]=t[n]+h * n;//расчет времени

        std::array<double, Size> k1, k2, k3;

        for(std::size_t i = 0; i < Size; i++)

        {   
            k1[i] = F[i](t[n], vec[n-1], 0);
            k2[i] = F[i](t[n] + step/3, vec[n-1], k1[i]/3);
            k3[i] = F[i](t[n] + 2*step/3, vec[n-1], k2[i]/3);
        }

        for(std::size_t i = 0; i < Size; i++)

       {
      vec[n][i] = vec[n-1][i] + (k1[i] + 3*k3[i]) * (h/4);
       }

          if(vec[n][0] < 78)
         {

            double tnew =t[n]-t[n-1]
            t[n]=tnew;

         }
}

h-шаг 0.1 по времени
получается программа считает и проверяет условие vec[n][0] < 78, если верно рассчитывает время double tnew =t[n]-t[n-1] и заносит в массив t[n]=tnew

но после этого время не изменяется

выглядит так
0.1
0.2
0.366
0.4
0.5
но шаг же прибавляется к предыдущему значению.
0.1
0.2
0.336
0.336+0.1

что не верно?

 
 
 
 Posted automatically
Сообщение22.12.2017, 23:41 
 i  Тема перемещена из форума «Программирование» в форум «Карантин»
по следующим причинам:

- неправильно оформлен код;
- постарайтесь более внятно сформулировать, что именно Вы ожидаете получить в результате выполнения кода;
- сделайте предлагаемый участок компилируемым.

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.


-- 22.12.2017, 23:43 --

 !  Кстати, kaykat, это Ваша шестая(!) подряд тема в Карантине. Еще одна не попала туда по чистой случайности. По-видимому, Вам нужно пересмотреть принципы создания тем. Предупреждение.

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group