![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.09.2010
Сообщений: 10
|
![]()
Доброго времени суток уважаемые жители форума.
Столкнулся с проблемой ошибки округления, при решении комплексной системы уровненный из 20 и более неизвестных точность таит просто на глазах (По сравнению с тем же MathCAD). Как я понял, проблема решается использованием длиной арифметики (возможно с использованием фиксированной точки). Но проблема в том что все примеры которые находил в интернете, используют целочисленные больше числа. В моем же примере, используются иррациональные числа, для более менее адекватного решения нужно, хотя бы, 40-60 знаков после запятой (иногда лучше и больше ),желательно что бы были как можно меньшие затраты времени на вычисления. Был бы, очень признателен за подсказку где рыть, за алгоритм, код или литературу где будет пояснено основные математические операции с данными числами. Так же, по возможности попросил бы сильно не оффтопить. Заранее большое спасибо. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
умножай все на 10^60 и работай как с целыми
![]()
Не стесняемся, плюсуем!
![]() |
![]() |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
----ДОБАВЛЕНО---- http://programmersforum.ru/showthrea...5%F1%F2&page=2
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 16.03.2013 в 08:38. |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Вообще-то проблема обычно решается использование специальных численных методов для работы с плохо обусловленными матрицами.
Повышение точности представления чисел в данном случае неэффективно. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 19.09.2010
Сообщений: 10
|
![]()
Спасибо огромное всем, даже не рассчитывал на столь скорую помощь. Отдельность благодарность товарищу Уткину, действительно очень сильно помогли. Я пол ночи бился, дошел лишь до работы с длины строками и вроде бы все работает, но были огромные затраты времени, ваш код по оптимальные будет.
@s-andriano Я работаю как рас с плохо обусловленными матрицами использую специальные алгоритмы упаковки и оптимизации расчета, но опят же, при их большой размерности просто катастрофически падала точность. Еще рас Всем огромное спасибо. |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Дело в том, что оптимальность того или иного представления зависит от набора операций, которые предстоит выполнять. Фиксированная точка - для сложения и вычитания, плавающая точка - для умножения и деления. Насколько я представляю, при решении системы уравнений умножение и деление - одни из основных, поэтому, вроде бы, следовало отдать предпочтение представлению с плавающей точкой. С другой стороны, основная головная боль проистекает от разности больших чисел, т.е. от операции вычитания, для которой и нужны данные с максимальной разрядностью. Я бы на Вашем месте разработал арифметику с длинными числами с плавающей точкой, для чего взял за основу какой-либо из модулей по работе с большими целыми числами, дополнил числа полем порядка и откорректировал реализацию арифметических операций. |
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
\Увы, не обнаружил даже намеков на документацию, а код откомментирован крайне убого (по крайней мере, в интерфейсной части). Раз журнал уже не работает, где можно взять документацию? |
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
А ссылочку на этот свободный доступ можно?
Ну или, по минимуму, указание года издания, номера, тома и диапазона страниц. |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
https://www.google.ru/search?client=...utf-8&oe=utf-8
Цитата:
![]() Нашел - март 2011, №12
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 18.03.2013 в 14:31. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Длинная арифметика | Свитозар | Помощь студентам | 0 | 26.09.2012 19:07 |
[C++] Деление произвольных двоичных чисел с фиксированной точкой с использованием прямых кодов | Java | Помощь студентам | 0 | 04.06.2011 17:22 |
Длинная арифметика. | Steam.dll | Помощь студентам | 8 | 03.04.2011 17:47 |
Длинная арифметика | Khelleos | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 20.12.2010 09:08 |
Длинная арифметика чисел с плавающей точкой | RIO | Общие вопросы C/C++ | 3 | 14.04.2010 17:11 |