1 Pages (5 items)
Проблема точности (как повысить точность вычислений) - Messages
#1 Posted: 11/8/2010 10:36:32 PM
Есть формула: http://ioj.com/v/jab5d(картинка)
При попытке просчитать её же в Smath c максимально выкрученной точностью: http://ioj.com/v/sknp2
в live:
[LIVE width=329 height=156]http://smath.info/live/?file=1830[/LIVE]
Вольфрам считает корректно:
http://www.wolframalpha.com/input/?i=%28%28%2810^-14*%28cos%2810^-14%29^%281%2F3%29%29-sin%2810^-14%29%29%2F%2810^-14%29^5%29%2B1%2F45%29%2F33.5097*10^-32
При попытке просчитать её же в Smath c максимально выкрученной точностью: http://ioj.com/v/sknp2
в live:
[LIVE width=329 height=156]http://smath.info/live/?file=1830[/LIVE]
Вольфрам считает корректно:
http://www.wolframalpha.com/input/?i=%28%28%2810^-14*%28cos%2810^-14%29^%281%2F3%29%29-sin%2810^-14%29%29%2F%2810^-14%29^5%29%2B1%2F45%29%2F33.5097*10^-32
#2 Posted: 11/14/2010 8:11:27 PM
Здравствуйте.
Немного потестировал Ваш пример и вижу, что SMath Studio считает верно, чего не сказать о Wolframalpha. Пример результата вычислений в маткаде:

А вот работа сайта wolframalpha.com выглядит странновато. При первом вычислении получается:

При уточнении результата ответ уже другой:

Поведение сайта крайне странное и объяснить я его никак не могу.
С уважением, Андрей Ивашов.
Немного потестировал Ваш пример и вижу, что SMath Studio считает верно, чего не сказать о Wolframalpha. Пример результата вычислений в маткаде:
А вот работа сайта wolframalpha.com выглядит странновато. При первом вычислении получается:
При уточнении результата ответ уже другой:
Поведение сайта крайне странное и объяснить я его никак не могу.
С уважением, Андрей Ивашов.
#3 Posted: 11/14/2010 9:48:55 PM
Здравствуйте!
В том то и дело! Что mathcad, smath, matlab и многие другие пакеты считают этот пример неверно.
Верно вычислили только: PARI/GP (когда задаёшь точность более 80. Скрин: http://ioj.com/v/tdv4u), maple и Mathematica (wolframalpha при нажатии на more digits увеличивает точность вычислений).
Пакеты в который используется динамический precision, в вычислениях накапливают значительно меньше ошибок (если вообще накапливается ошибка). В Smath используется IEEE754 просто по умолчанию Double precision, как и другие пакеты считающие с ошибкой.
Предлагаю подумать на эту тему для повышения точности вычислений Smath. Думаю есть готовые типы для .net'a с реализацией динамических или с более широким диапазоном точности. Как вы видите ошибка накапливается очень большая.
В том то и дело! Что mathcad, smath, matlab и многие другие пакеты считают этот пример неверно.
Верно вычислили только: PARI/GP (когда задаёшь точность более 80. Скрин: http://ioj.com/v/tdv4u), maple и Mathematica (wolframalpha при нажатии на more digits увеличивает точность вычислений).
Пакеты в который используется динамический precision, в вычислениях накапливают значительно меньше ошибок (если вообще накапливается ошибка). В Smath используется IEEE754 просто по умолчанию Double precision, как и другие пакеты считающие с ошибкой.
Предлагаю подумать на эту тему для повышения точности вычислений Smath. Думаю есть готовые типы для .net'a с реализацией динамических или с более широким диапазоном точности. Как вы видите ошибка накапливается очень большая.
#4 Posted: 11/15/2010 4:33:16 AM
Спасибо за пояснение! Проблему понял - что-нибудь придумаю.
#5 Posted: 12/5/2010 7:13:37 PM
более точно по теме: http://en.wikipedia.org/wiki/Arbitrary-precision
1 Pages (5 items)
-
New Posts
-
No New Posts