2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Точность вычислений при работе с комплексными числами
Сообщение23.05.2014, 10:13 
Привет! Сразу оговорюсь, осознаю, что, наверняка, тема поднималась не раз и решение проблемы прекрасно известно. Я его к сожалению не нашел, поэтому, если она где-то обсуждалась просто дайте ссылку, буду благодарен.

Суть вопроса:
Реализовал класс для работы с комплексными числами для использования в калькуляторе. При вычислении корней и возведении в степень вылезает мусор, например: sqrt(-1) = 6.12...e-17+i. Почему возникает проблема понятно, вопрос как с ней бороться (решение явно есть, многие научные калькуляторы с ней успешно справляются). Один из вариантов на поверхности: смотреть на аргумент числа, если он отличается от угла кратного pi/2 не более чем на дельту, то вместо него брать подправленный угол. Правда в этом случае будут отсеиваться случаи, когда сам пользователь ввел число с таким ублюдочным аргументом. Есть ли "канонический" подход к проблеме?

Заранее спасибо, надеюсь на советы и помощь :)

 
 
 
 Re: Точность вычислений при работе с комплексными числами
Сообщение23.05.2014, 10:34 
Пожалуй, только один - оставить как есть и ничего не трогать. Просто потому, что любая "коррекция" результата вносит в него дополнительные ошибки.

 
 
 
 Re: Точность вычислений при работе с комплексными числами
Сообщение23.05.2014, 10:41 
Полагаю есть разумные коррекции, которые не вносят существенных ошибок, мой калькулятор Casio каким-то образом данные ситуации отслеживает. Пользователей сильно напрягает этот мусор :-(

 
 
 
 Re: Точность вычислений при работе с комплексными числами
Сообщение23.05.2014, 12:02 
SGregory в сообщении #866860 писал(а):
Полагаю есть разумные коррекции, которые не вносят существенных ошибок, мой калькулятор Casio каким-то образом данные ситуации отслеживает. Пользователей сильно напрягает этот мусор
Т.е. если называть вещи своими именами, пользователи предпочитают видеть ответ с худшей точностью, но "красивый". Тогда просто округлять все до точности, на пару порядков хуже вычислительной, и все.

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group