Название: Функция от одного аргумента возвращает разные значения ? Отправлено: Белый пони от Март 05, 2011, 10:56 Здравствуйте!
Совсем не могу понять как так. вот функция fX(r): Код: double MainWidget::fX( double r) При этом такой кусок кода: Код: void MainWidget::toFile() выдаёт такой результат: Код: hi = 233.623 Как так получается ??? Я не понимаю каких-нибудь основ С++ ? (остальные переменные - l12, l13, beta23, I1, I2, sqI13 - члены класса MainWidget, вычисляемые один раз в конструкторе) Название: Re: Функция от одного аргумента возвращает разные значения ? Отправлено: SimpleSunny от Март 05, 2011, 11:13 Зайдите под отладчиком в эти функции и посмотрите что не так (:
К тому же аргументы могут быть не совсем одинаковыми, при выводе могли потеряться разряды у double. Название: Re: Функция от одного аргумента возвращает разные значения ? Отправлено: Белый пони от Март 05, 2011, 14:03 К тому же аргументы могут быть не совсем одинаковыми, при выводе могли потеряться разряды у double. Да, так и было :)Хотя всего четвёртый знак после запятой, но у арккосинуса по краям бесконечная производная, и итоговая ошибка получалась большой. Ошибка была в том, что выражение Код: if( isnan(a)) a = 0; отдельно расписал условия для -1 и +1 и всё заработало. Спасибо :) |