| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Floating point overflow |
| Автор: trinitr0 24.9.2014, 16:22 | ||
| В коде построения графика по формуле расчёта методом конечных разностей (метод решёток):
при нажатии появляется сообщение о переполнении (Floating point overflow), и указание на строчку с формулой dT[i] = a*dtau*((T[i-1]-2*T[i]+T[i+1])/(dx*dx))+T[i]; Но если в строчке 29 задать i от 3 (i=3...), то рисуется просто прямая линия... В формуле, вроде, ошибок нет... Помогите пожалуйста! |
| Автор: tzirechnoy 24.9.2014, 19:31 | ||||
Неудивительно. |
| Автор: trinitr0 25.9.2014, 09:07 | ||
Поправил так:
Но всё равно при нажатии рисуется прямая просто линия, вместо графика... |
| Автор: xvr 25.9.2014, 13:19 |
| Цикл вы зря выкинули, верните обратно, но сделайте ему отдельную переменную для цикла. Замените все float на double, и исправьте индекс T в AddXY (там должно быть T[1]) |
| Автор: trinitr0 25.9.2014, 13:29 | ||
| Спасибо, сейчас попробую... Добавлено через 5 минут и 11 секунд Написал теперь так:
Но всё равно просто прямая линия и нули... |
| Автор: xvr 25.9.2014, 13:46 |
|
| Автор: trinitr0 25.9.2014, 14:53 | ||
| Спасибо!!! Решено! Применив ваши советы, ещё попотев пришёл к такому рабочему коду:
|