Беда в этом же выражении.
"n" всегда равен 10, реальных значений в массиве XPol тоже 10.
Поэтому значение XPol[n+1] равно 0 (n+1 выходит за диапазон реальных значений). Отсюда выражение (Xpol[n+1] - Xpol[n-(J-1)]) на первой итерации принимает значение -40 и опять же отрицательное значение аргумента Ln(-40 / 4) дает ошибку.
Научился бы смотреть значения выражений в отладке. Мне не трудно для тебя ошибки отыскивать, но это не самый эффективный путь, а время то идет - успеешь ли?.
Это не трудно. Устанавливаешь точку прерывания на строке, где происходит ошибка (ctrl+F8).
После остановки на этой точке подводишь мышиный курсор к закрывающей скобке справа, допустим, XPol[n+1], подсказка покаызвает текущее значение. Если надо посмотреть часть выражения, то выделяешь его из всего выражения, например, (Xpol[n+1] - Xpol[n-(J-1)]) и наводишь курсор на выделенный кусок. Опять же подсказка показывает значение выделенной части выражения. Если увидишь в результате слово "NAN" (при захвате в выделенное и функции Ln или Exp), то у функции в этот момент не корректное значение аргумента.
|