Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.06.2013, 15:31
IraDiz IraDiz вне форума
Прохожий
 
Регистрация: 24.06.2013
Сообщения: 4
Версия Delphi: delphi 7
Репутация: 10
По умолчанию физический процесс реакции диффузии через метод конечных разностей

в программе моделируется физический процесс реакции диффузии через метод конечных разностей
формулы правильные проверил несколько раз

при компилировании вылетает ошибка "Project PProject2.exe raised exception class EOverflow with message "Floating point ocerflow". Process stopped. Use Step or Run to cotinue."

программка в архиве
Вложения
Тип файла: rar Копия progr.rar (233.4 Кбайт, 5 просмотров)
Ответить с цитированием
  #2  
Старый 24.06.2013, 16:36
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Что-то намудрено вот в этом цикле
Код:
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;
в смысле, много цифёрных разрядов на выходе, пжлст, покажите какие данные должны вводиться в L, t2, u1 и v1, на нулях проверял, непонятно. Могли бы и по дефолту в эдиты их прописать.
Ответить с цитированием
  #3  
Старый 25.06.2013, 01:18
IraDiz IraDiz вне форума
Прохожий
 
Регистрация: 24.06.2013
Сообщения: 4
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

L - здесь не используется, она будет использована позже
t2 - конечное время (лучше ставить маленькое, т.к. долго будет высчитывать, например 0,05 )
u1 v1 эти значения нужно подобрать (хотя в теории они высчитываются по формуле u1=exp(-x^2); v1=1-exp(-x^2);
n = 20
t и x подбираются по формуле t/(x^2)=10^-4
Ответить с цитированием
  #4  
Старый 25.06.2013, 01:49
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

А, понятно, вот подправил немного, правда глючит теперь в другом месте, надо дальше смотреть, вот вариант, пароль для скачивания подбирается по формуле
:^-0)
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Mrak (25.06.2013)
  #5  
Старый 25.06.2013, 03:00
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Alegun
... пароль для скачивания подбирается по формуле
Шутник.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #6  
Старый 25.06.2013, 03:03
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Оффтоп:

Сохранена стилистика ТС, если надо - подберёт
Ответить с цитированием
  #7  
Старый 25.06.2013, 09:41
IraDiz IraDiz вне форума
Прохожий
 
Регистрация: 24.06.2013
Сообщения: 4
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
А, понятно, вот подправил немного, правда глючит теперь в другом месте, надо дальше смотреть, вот вариант, пароль для скачивания подбирается по формуле
:^-0)

и как его подбирать ?
Ответить с цитированием
  #8  
Старый 25.06.2013, 09:58
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от IraDiz
...u1 v1 эти значения нужно подобрать (хотя в теории они высчитываются по формуле u1=exp(-x^2); v1=1-exp(-x^2)...
А как мне для проверки u1 и v1 аналогично подобрать, а?
Ответить с цитированием
  #9  
Старый 25.06.2013, 11:08
IraDiz IraDiz вне форума
Прохожий
 
Регистрация: 24.06.2013
Сообщения: 4
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

у меня не подходит пароль .... вроде вычислил а всеравно не то (((
Ответить с цитированием
  #10  
Старый 25.06.2013, 11:30
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Оффтоп: Всё, шутка затянулась, уже не смешно. Даже я этого пароля не подберу, т.к. не силён в математике

По теме: во время выполнения, примерно на 19й итерации цикла происходит переполнение допустимых значений переменных - пересмотрите ещё раз ваши формулы, возможно где-то надо поставить дополнительные скобки в коде, пользуйтесь breakpoint`ами, это поможет найти момент переполнения, ваши формулы, это чистая математика и делфи здесь ни при чём. Извините за юмор.

Последний раз редактировалось Alegun, 25.06.2013 в 17:53. Причина: самозензура
Ответить с цитированием
  #11  
Старый 25.06.2013, 16:46
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Цитата:
Сообщение от IraDiz
у меня не подходит пароль .... вроде вычислил а всеравно не то (((
кто кого затролил))
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
Этот пользователь сказал Спасибо Mrak за это полезное сообщение:
Alegun (25.06.2013)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter