# Вторая пачка часть 89

В процедуре ZEROIN выполняется ите¬ра¬ци¬он¬ный процесс, в ко¬¬тором на каждом шаге при¬сут-ст¬ву¬ют три аб¬с¬ци¬с¬сы a, b и c. Обычно абcцисса a - предыдущее при¬¬бли¬же¬ние (хn-1); b - последнее и наилучшее при¬бли¬же¬ние хn; c - предыдущее, но еще более раннее при¬бли¬же¬¬ние, причем sign( FUNC(b) ) = sign( FUNC(c) ). Та¬ким об¬ра¬зом, b и с ограничивают нуль. При этом |FUNC(b)|< |FUNC(c)|. Если |b - c| умень¬ши¬лось на¬столь¬ко, что вы¬полняется условие |b - c| < tol + 4.0 ? eps ? abs(b), то b выдается как найденное значение процедуры-функ¬ции ZEROIN. Кроме параметра tоl в проверке схо¬ди¬мости участ¬вует еще один параметр - ерs, "ма¬шинный нуль", чтобы под¬стра¬хо¬вать¬ся на случай, если tol за¬дано слишком ма¬лень¬ким, например равным нулю. На каждой очередной итерации в ZEROIN вы¬би¬ра¬¬ется оче¬редное приближение к корню из двух - один получен ал¬горитмом бисекции, а другой - интер¬поляцией. Если a, b и c различны, то ис-поль¬зуется квад¬ра¬тичная интерполяция (ме¬¬тод па¬рабол), если нет, то ме¬тод секущих (ли¬ней¬ная ин-тер¬¬поляция). Если по¬лу¬чен¬ное xn+1 на¬хо¬дит¬ся в "ра¬зумных" пре¬делах, то выбирают его, в про¬тив¬ном случае выбирают точ¬ку би¬секции. Оп¬ре¬¬де¬ле¬ние "ра¬зум¬ности" означает, что xn+1 ???b, c], т.е. ле¬жит внут¬ри интервала и не совпадает с его кон¬¬ца¬ми. Та¬¬ким образом, длина интервала га¬ран¬ти¬ро¬ван¬¬¬но убы¬ва¬¬ет с каждой итерацией, а если функ¬ция еще к тому же ве¬дет себя хорошо, то и до¬ста¬точ¬но быст-ро. Бо¬лее под¬роб¬но об алгоритме, про¬грам¬¬ме и описании метода мож¬но по¬смот¬реть в кни¬ге Брента (1973). Еще несколько важных замечаний по поводу ал¬го¬рит¬ма. Для того чтобы точка бисекции всегда лежала внут¬¬ри рас¬¬четного интервала и желаемая ве¬ли¬чи¬на по¬лу¬чалась как ма¬¬лая поправка к най¬ден¬ному при¬бли¬же¬нию, ее вы¬чис¬ля¬ют по фор¬му¬ле xm := b + 0.5*(c - b). Большое внимание в алгоритме уделяется про¬бле¬¬ме ма¬¬шинных нулей. Это выражается в не¬о-быч¬ной про¬вер¬ке знаков FUNC(b) и FUNC(c) (см

Индекс
Элементарные функции Линейные уравнения Нелинейные уравнения Случайные числа
У нас невысокая цена топас для всех и каждого.