Здравствуйте, гость ( Вход | Регистрация )
Белый пони | Дата 5.3.2011, 14:18 |
Разобрался. Где в функции toFile инициализируется переменная hi? После второго вывода в cerr? Нет. Виноват, забыл уточнить. Она инициализируется там где многоточие, причём как результат деления, т.е. дробь с большим количеством цифр после запятой, чем в "233.623" . В итоге аргументы в двух случаях, оказались немного разные (разница в 4-м знаке). А с учётом того, что по краям ( вблизи -1 и +1) у арккосинуса бесконечная производная, то эта четвёртая цифра дала серьёзную ошибку. Ошибка была в том, что выражение учитывает только случай ( аргумент > +1 ). ( у значений типа 1,00000023, отрезает "хвост" - погрешнось делния double'ов) .отдельно расписал условия для ( аргумент < -1) и (аргумент >+1) и всё заработало. Спасибо что уделили мне время! ![]() |
|
Kagami | Дата 5.3.2011, 12:07 |
Где в функции toFile инициализируется переменная hi? После второго вывода в cerr? | |
Белый пони | Дата 5.3.2011, 11:07 |
Здравствуйте! Совсем не могу понять как так. вот функция fX®:
При этом такой кусок кода:
выдаёт такой результат:
Как так получается Я не понимаю каких-нибудь основ С++ ? (остальные переменные - l12, l13, beta23, I1, I2, sqI13 - члены класса MainWidget, вычисляемые один раз в конструкторе) |
|
Просмотр темы полностью (откроется в новом окне) | |
![]() |
Текстовая версия | Сейчас: 16.2.2025, 2:44 |