![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
в программе моделируется физический процесс реакции диффузии через метод конечных разностей
формулы правильные проверил несколько раз при компилировании вылетает ошибка "Project PProject2.exe raised exception class EOverflow with message "Floating point ocerflow". Process stopped. Use Step or Run to cotinue." программка в архиве |
|
#2
|
||||
|
||||
|
Что-то намудрено вот в этом цикле
Код:
for i:=1 to (n-1) do begin u2[i]:=u1[i]+0.125*(t/(x*x)*(u1[i+1]-2*u1[i]+u1[i-1])+(1/0.125)*(u1[i]-(u1[i]*u1[i]*u1[i]))-(1/0.125)*v1[i]) ; v2[i]:=v1[i]+(t/(x*x)*(v1[i+1]-2*v1[i]+v1[i-1]))-t*(0.25*u1[i]+v1[i]) ; end; |
|
#3
|
|||
|
|||
|
L - здесь не используется, она будет использована позже
t2 - конечное время (лучше ставить маленькое, т.к. долго будет высчитывать, например 0,05 ) u1 v1 эти значения нужно подобрать (хотя в теории они высчитываются по формуле u1=exp(-x^2); v1=1-exp(-x^2); n = 20 t и x подбираются по формуле t/(x^2)=10^-4 |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Mrak (25.06.2013)
| ||
|
#5
|
||||
|
||||
|
Цитата:
![]() |
|
#6
|
||||
|
||||
|
Оффтоп:
Сохранена стилистика ТС, если надо - подберёт ![]() |
|
#8
|
||||
|
||||
|
Цитата:
![]() |
|
#9
|
|||
|
|||
|
у меня не подходит пароль .... вроде вычислил а всеравно не то (((
|
|
#10
|
||||
|
||||
|
Оффтоп: Всё, шутка затянулась, уже не смешно. Даже я этого пароля не подберу, т.к. не силён в математике
По теме: во время выполнения, примерно на 19й итерации цикла происходит переполнение допустимых значений переменных - пересмотрите ещё раз ваши формулы, возможно где-то надо поставить дополнительные скобки в коде, пользуйтесь breakpoint`ами, это поможет найти момент переполнения, ваши формулы, это чистая математика и делфи здесь ни при чём. Извините за юмор. Последний раз редактировалось Alegun, 25.06.2013 в 17:53. Причина: самозензура |
|
#11
|
||||
|
||||
|
Цитата:
|
| Этот пользователь сказал Спасибо Mrak за это полезное сообщение: | ||
Alegun (25.06.2013)
| ||