Функция от одного аргумента возвращает разные значения ? |
Здравствуйте, гость ( Вход | Регистрация )
Функция от одного аргумента возвращает разные значения ? |
Белый пони |
5.3.2011, 11:07
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 27.1.2011 Пользователь №: 2373 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте!
Совсем не могу понять как так. вот функция fX®:
При этом такой кусок кода:
выдаёт такой результат:
Как так получается Я не понимаю каких-нибудь основ С++ ? (остальные переменные - l12, l13, beta23, I1, I2, sqI13 - члены класса MainWidget, вычисляемые один раз в конструкторе) |
|
|
Kagami |
5.3.2011, 12:07
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
Где в функции toFile инициализируется переменная hi? После второго вывода в cerr?
|
|
|
Белый пони |
5.3.2011, 14:18
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 27.1.2011 Пользователь №: 2373 Спасибо сказали: 0 раз(а) Репутация: 0 |
Разобрался.
Где в функции toFile инициализируется переменная hi? После второго вывода в cerr? Нет. Виноват, забыл уточнить. Она инициализируется там где многоточие, причём как результат деления, т.е. дробь с большим количеством цифр после запятой, чем в "233.623" . В итоге аргументы в двух случаях, оказались немного разные (разница в 4-м знаке). А с учётом того, что по краям ( вблизи -1 и +1) у арккосинуса бесконечная производная, то эта четвёртая цифра дала серьёзную ошибку. Ошибка была в том, что выражение учитывает только случай ( аргумент > +1 ). ( у значений типа 1,00000023, отрезает "хвост" - погрешнось делния double'ов) .отдельно расписал условия для ( аргумент < -1) и (аргумент >+1) и всё заработало. Спасибо что уделили мне время! |
|
|
Текстовая версия | Сейчас: 3.1.2025, 2:41 |