Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите!!! что делать с этим числом.... ((( / 25 сообщений из 70, страница 1 из 3
15.04.2006, 05:49
    #33668618
Помогите!!! что делать с этим числом.... (((
Здравствуйте.
У меня проблема такого характера - мне нужно найти решение СЛАУ (методом квадратного корня) после чего вычислить вектор невязки таким образом:
К примеру размерность системы = 4.
К примеру я нашел решение: х1=3,55432011, х2=-0,12544932112022, х3=-1,4432, х4=0,5. (используется тип double).
Суть не в значениях найденного решения а в следующем:
теперь я подставляю найденные х-ы в систему и получаю какой-то результат.
Наприем первое уравнение было заданно так: 3*х1+12*х2-5*х3+х4 = 5,4
Так вот, подставив найденные х-ы в левую часть этого уравнения я получил (например) число 5,4333222990011133. То есть практически тоже самое, но немного все же другое. Теперь я вычитаю из этого числа число 5,4 для того, чтобы определить значение невязки первого уравнения. И ТУТ!!!!!!! вдруг, при выводе на экран результата этой операции, я вижу абсолютно непонятное мне число, к примеру такое: -3,3444555348293235623Е -34. Вот это мне не нравится и я не понимаю откуда оно берется и как мне получить нормальный результат с которым я мог бы дальше работать.
Возможно его нужно как-то округлять, какими-то стандартными функциями или еще как-то.. Помогитепожалуйста.. Застрял на этом, казалось бы, простом моменте.. Но его ничего не могу понять.. что это за число? мне хотелось бы более конкретное значение...
Заранее БОЛЬШОЕ СПАСИБО!
PS: пишу на С++ Билдере 6.0
...
Рейтинг: 0 / 0
15.04.2006, 06:34
    #33668622
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
5,4333222990011133-5,4=0,0333222990011133 а не -3,3444555348293235623Е -34.
Если же Вы наблюдаете -3,3444555348293235623Е -34, то это странно.
Пристегните исходный текст *.bpr;*.cpp;*.h, и саму систему уравнений, иначе навряд ли Вам смогут помочь.
...
Рейтинг: 0 / 0
15.04.2006, 22:48
    #33669134
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
А чем тебе непонятно число
-3,3444555348293235623Е -34 ?

Мне например все приведенные тобой числа равнонепонятны...
...
Рейтинг: 0 / 0
16.04.2006, 00:12
    #33669170
_shumer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Никаких советов без анализа кода давать я думаю не следует.
Выложите код, тогда можно будет думать.
...
Рейтинг: 0 / 0
16.04.2006, 08:19
    #33669259
Помогите!!! что делать с этим числом.... (((
Хорошо! Сейчас выложить не смогу, завтра выложу.. Посмотрите пожалуйста.. буду Очень признателен.
...
Рейтинг: 0 / 0
17.04.2006, 10:29
    #33670327
Борманнн
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Да че здеся гадать-то : арифметика плавающей точки, ну и все вытекающие последствия...
Решение: 1) отказ от арифметики с плавающей точкой (изобретение своего супер-пупер навороченного лисапеда, реализующего операции с дробными числами)
2) производить округление результата до необходимой точности

З.Ы. Здря вообще этот double придумали (IMHO), т.к. проблем от него больше чем пользы...
...
Рейтинг: 0 / 0
19.04.2006, 10:15
    #33675469
Борманнн
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Кто осилит следующее:
нужно числу типа double присвоить значение 3024.1935
т.е.
Код: plaintext
double nVal= 3024 . 1935 ;
Потом глядим в отладчике на значение...
У меня почему-то получается 3024.19349999999...
Вот вам и двойная точность...
...
Рейтинг: 0 / 0
19.04.2006, 10:58
    #33675661
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
БорманннВот вам и двойная точность...Интересно, а чего ты ждал ?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
19.04.2006, 12:32
    #33676101
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
БорманннКто осилит следующее:
нужно числу типа double присвоить значение 3024.1935
т.е.
Код: plaintext
double nVal= 3024 . 1935 ;
Потом глядим в отладчике на значение...
У меня почему-то получается 3024.19349999999...
Вот вам и двойная точность...

Есстественно. Ошибка должна быть на несколько порядков меньше, чем при обычной точности. Вот, я смотрю, в твоем пример совсем маленькая ошибка
...
Рейтинг: 0 / 0
20.04.2006, 10:56
    #33678458
Борманнн
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Карабас Барабас БорманннВот вам и двойная точность...Интересно, а чего ты ждал ?
Posted via ActualForum NNTP Server 1.3
Ты удивисся: 3024.1935!!!!
Я знаю, про эти проблемы с плавающей точкой, мне одно не понятно: на кой икс тогда нужен этот тип double?
Сейчас, возможно, пойдут возражения, типа, для большинства задач данный тип можно использовать. Хм, возможо, если задача статичная (не развивается, не модифицируется). Сам накололся на это дело. Все работало как часы. В один прекрасный момент стало необходимо повысить точность вычислений. В результате - все пришлось переделывать...
...
Рейтинг: 0 / 0
20.04.2006, 11:37
    #33678636
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Борманнн

Карабас Барабас БорманннВот вам и двойная точность...Интересно, а чего ты ждал ?


Ты удивисся: 3024.1935!!!!


Борман, тебе не хватает базовых знаний в области математики. Именно - рациональные и иррациональные числа. Почитай - поймешь, зачем double.
...
Рейтинг: 0 / 0
21.04.2006, 10:38
    #33681480
Борманнн
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Да причем тута рац. и иррац. числа-то? Сам-то понял?
Если в двоичном виде число (ну например, то же 3024.1935 ) не представимо- какие тут рац и иррац. числа? Это двоичная арифметика...

З.Ы.
Рациона́льное число́ — число представляемое обыкновенной дробью , где m — целое число, n — натуральное число.
Иррациона́льное число́ это вещественное число, которое не является рациональным
...
Рейтинг: 0 / 0
21.04.2006, 11:42
    #33681853
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
БорманИррациона́льное число́ это вещественное число, которое не является рациональным
корень из 2 - иррациональное
PI - трансцедентное
...
Рейтинг: 0 / 0
21.04.2006, 11:55
    #33681934
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
БорманннДа причем тута рац. и иррац. числа-то?

Рациональное число в одной системе счисления не обязательно будет рациональным в другой системе счисления.
...
Рейтинг: 0 / 0
21.04.2006, 11:57
    #33681955
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
MasterZiv БорманннДа причем тута рац. и иррац. числа-то?

Рациональное число в одной системе счисления не обязательно будет рациональным в другой системе счисления.

Глубоко

Но верно только для систем счисления с не натуральным основанием (единичку не рассматриваем)
...
Рейтинг: 0 / 0
21.04.2006, 12:18
    #33682084
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Gluk (Kazan)Но верно только для систем счисления с не натуральным основанием (единичку не рассматриваем)ээээ не рациональным наверное ?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
21.04.2006, 12:38
    #33682163
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Рациональное - представимое в виде отношения натурального числителя и знаменателя

Натуральное - 1,2,3,4,...

Давайте будем точны в определениях
...
Рейтинг: 0 / 0
21.04.2006, 12:46
    #33682204
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Gluk (Kazan) GK> Рациональное - представимое в виде отношения натурального
GK> числителя и знаменателя

GK> Натуральное - 1,2,3,4,...

GK> Давайте будем точны в определениях
Ну дак и я о том же. Вот к примеру число PI. В системе с основанием PI (нерациональное основание) оно будет 1, т.е. 1/1, стало быть рациональным. А в системе с основанием 3.1 (рациональное основание) оно все же останется иррациональным
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
21.04.2006, 13:28
    #33682425
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Gluk (Kazan)Но верно только для систем счисления с не натуральным основанием

а я что сказал ?
...
Рейтинг: 0 / 0
21.04.2006, 13:35
    #33682455
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Gluk (Kazan)а я что сказал ?Найди 10 отличий: натуральное и рациональное
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
21.04.2006, 13:42
    #33682488
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
А вот это уже надо доказывать математически :)
...
Рейтинг: 0 / 0
21.04.2006, 13:52
    #33682555
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Gluk (Kazan)А вот это уже надо доказывать математически :)Строго говоря - да, согласен
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
23.04.2006, 07:57
    #33684750
Борманнн
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
MasterZiv БорманннДа причем тута рац. и иррац. числа-то?

Рациональное число в одной системе счисления не обязательно будет рациональным в другой системе счисления.
Ну хорошо, при переводе в двоичную систему счисления данное число будет иррациональным, и что ? double -то зачем? Чтобы показать иррациональность десятичных чисел в двоичной системе счисления? А я полагал, что его необходимость обусловлена операциями с нецелыми (вещественными) числами... А т.к. результаты этих операций, мягко говоря, не совсем соответствуют ожидаемым (в силу "иррациональности" представления), то напрашивается вопрос: а зачем использовать данный тип, если в результате (не всегда, конечно) получается не весть что? Я же не буду объяснять пользователю моей программы, что дескать, понимаете, результат немного отличается от нужного в силу непредставимости чисел (их иррац.) в двоичной системе счисления. Или предложу им (пользователям) все данные вводить (получать) в двоичной (ну или в 16-ричной ) системе. Да пошлют меня подальше с такими объяснениями и предложениями- и будут правы! Увы, большинство населения привыкло к десятичной системе счисления... Поэтому double фтопку- и изобретать свой лисапед...
...
Рейтинг: 0 / 0
23.04.2006, 12:03
    #33684820
v6y
v6y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
Борманнн MasterZiv БорманннДа причем тута рац. и иррац. числа-то?

Рациональное число в одной системе счисления не обязательно будет рациональным в другой системе счисления.
Ну хорошо, при переводе в двоичную систему счисления данное число будет иррациональным, и что ? double -то зачем? Чтобы показать иррациональность десятичных чисел в двоичной системе счисления? А я полагал, что его необходимость обусловлена операциями с нецелыми (вещественными) числами... А т.к. результаты этих операций, мягко говоря, не совсем соответствуют ожидаемым (в силу "иррациональности" представления), то напрашивается вопрос: а зачем использовать данный тип, если в результате (не всегда, конечно) получается не весть что? Я же не буду объяснять пользователю моей программы, что дескать, понимаете, результат немного отличается от нужного в силу непредставимости чисел (их иррац.) в двоичной системе счисления. Или предложу им (пользователям) все данные вводить (получать) в двоичной (ну или в 16-ричной ) системе. Да пошлют меня подальше с такими объяснениями и предложениями- и будут правы! Увы, большинство населения привыкло к десятичной системе счисления... Поэтому double фтопку- и изобретать свой лисапед...
В вашем случае погрешность будет 0.0000000000...1 Для подавляющего большинства задач этого более чем достаточно. Сомневаюсь, что вы сможете изобрести "лисапед" дающий такую же точность с такой же скоростью.
...
Рейтинг: 0 / 0
23.04.2006, 13:13
    #33684855
Борманнн
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите!!! что делать с этим числом.... (((
v6y
В вашем случае погрешность будет 0.0000000000...1 Для подавляющего большинства задач этого более чем достаточно. Сомневаюсь, что вы сможете изобрести "лисапед" дающий такую же точность с такой же скоростью.
Уже слышали это...
Есть такое понятие, как промежуточные результаты.Дык вот, когда в промежуточных результатах стоит (к примеру) наше "магическое" число 3024.1935 , а в машине оно хранится как 3024.19349999..., то при проведении нескольких сотен,(тысяч,миллионов) итераций с применением различных арифметических операций с этим (ну и с другими подобными числами), с формированием таких же промежуточных результатов, в итоге мы можем получить погрешность. А если точность еще более большая- то и погрешность будет большей. Т.е. повезет- не повезет...
А лисапед простой- использование целых чисел и целочисленной арифметики (скорость при этом, согласен, теряется: ну а что делать?)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите!!! что делать с этим числом.... ((( / 25 сообщений из 70, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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