Оточення і локалізація кореня нелінійної функції
дійсної змінної h2>
Важливою проблемою пошуку кореня нелінійної функції
дійсної змінної є з'ясування інтервалу, на якому корінь
міститься. Нижче наведено алгоритм пошуку такого інтервалу і обмеження на його
застосування. p>
Будемо говорити, що корінь функції f (x) оточений на
інтервалі [a, b], якщо f (a) і f (b) мають протилежні знаки. Для того, щоб
оточений згідно з цим визначенням корінь дійсно існував на цьому
інтервалі, достатньо безперервності f (x), а для його єдиності - ще й
монотонності. При невиконанні цих властивостей можливо відсутність кореня на [a, b]
або невизначеність його позиції. p>
При використанні комп'ютера ми завжди маємо справу з
дискретним набором можливих представлень чисел (хоча й досить щільним).
Крім того, монотонність обчисленої функції може бути злегка порушена в
межах точності її обчислення. Це в ряді випадків ускладнює обчислення
оточених коренів функції, якщо до їх точності пред'являються завищені
вимоги. p>
Оточення кореня функції при гарантії її визначення на
необмеженому інтервалі, проводиться за наступним ітераційний алгоритм. p>
Алгоритм h2>
Призначення: оточення кореня функції, якщо ф-я
визначена на необмеженому інтервалі p>
Вхід: p>
Початкове
наближення (input guess) x0 p>
початковий
інтервал пошуку D p>
інкремент
початкового інтервалу пошуку d> 1 p>
максимальне
значення інтервалу M p>
Вихід: p>
інтервал
оточення [a, x0], або p>
інтервал
оточення [x0, b], або p>
повідомлення про
помилку p>
Ініціалізація: p>
calculate f0 = f (x0) p>
Кроки: p>
1. calculate (a = x0-D, b = x0 + D; p>
fa = f (a), fb = f (b)) p>
2. repeat p>
3.
increase search interval: D = D * d p>
4.
if search interval