Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Точность вычисления (опять Fortran =) ) / 6 сообщений из 6, страница 1 из 1
29.07.2009, 18:58:08
    #36116412
mindstream
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точность вычисления (опять Fortran =) )
Добрый вечер!

Товарищи, почему два куска кода с виду одинаковых могут давать категорически разные результаты?

кусок 1:
Код: plaintext
1.
2.
3.
UBM =  1 .D0/BM
      BN=BR * UBM
      BT=BZ * UBM


кусок 2:

Код: plaintext
1.
2.
      BN=BR/BM
      BT=BZ/BM

Спасибо!
...
Рейтинг: 0 / 0
29.07.2009, 19:14:47
    #36116443
mindstream
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точность вычисления (опять Fortran =) )
Забыл уточнить, точность всех переменных одинаковая - фортрановский real*8
...
Рейтинг: 0 / 0
29.07.2009, 20:58:19
    #36116557
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точность вычисления (опять Fortran =) )
mindstream пишет:

> Забыл уточнить, точность всех переменных одинаковая - фортрановский real*8

Ну так real -- неточный тип данных, там вообще понятие "одинаковый"
неприменимо. Ты делаешь две разные операции (точнее две пары разных операций),
и получаешь разный результат. В чём проблема ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
29.07.2009, 21:02:04
    #36116559
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точность вычисления (опять Fortran =) )
Можешь конкретные цифры показать?
...
Рейтинг: 0 / 0
29.07.2009, 23:47:44
    #36116691
S.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точность вычисления (опять Fortran =) )
mindstream
категорически разные результаты
Да, поясните, пожалуйста.
...
Рейтинг: 0 / 0
06.08.2009, 18:13:52
    #36131002
Рус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точность вычисления (опять Fortran =) )
МастерЗИВ уже ответил крайне корректно. Множество Real в компьютере - это нигде не плотное множество.

Вот простой пример, елси в Ваших, миндстрим, терминах у машины будет тип Real*2 вместо Real*8
Bm = 3.0
Br = 3.0
Ubm = 1.0/Bm -- получаем 0.33
Bn = Br * Ubm -- получим 0.99
Bn = Br/Bm – получим 1.0
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Точность вычисления (опять Fortran =) ) / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]