Вторая пачка часть 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) (см
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


У нас невысокая цена топас для всех и каждого.
Hosted by uCoz