Окружение і локалізація кореня нелінійної функції дійсною перемінної
Приріст початкового інтервалу пошуку d>1. Повідомлення про ошибке Инициализация: If search interval? M then break the cycle with error message. Максимальне значення інтервалу M. Початкова наближення (input guess) x0. Початковий інтервал пошуку D. Інтервал оточення, либо. Інтервал оточення, либо. If fa>fb then: /* the right side search */. If fa=fb then: /* both sides search */. Let a=a-D, b=b+D… Читати ще >
Окружение і локалізація кореня нелінійної функції дійсною перемінної (реферат, курсова, диплом, контрольна)
Окружение і локалізація кореня нелінійної функції дійсною перемінної
Важной проблемою пошуку кореня нелінійної функції дійсною перемінної є з’ясування інтервалу, у якому корінь міститься. Нижче наведено алгоритм пошуку такого інтервалу та обмеження з його застосування.
Будем говорити, що корінь функції f (x) оточений на інтервалі [a, b], якщо f (a) і f (b) мають протилежні знаки. А, щоб оточений згідно з визначенням корінь справді існував у цьому інтервалі, досить безперервності f (x), а його одиничності - що й монотонності. За невиконання цих властивостей можливо відсутність кореня на [a, b] чи невизначеність його.
При використанні комп’ютера ми завжди маємо працювати з дискретним набором можливих уявлень чисел (хоч і досить щільним). З іншого боку, монотонність обчисленій функції то, можливо злегка порушена в межах точності її обчислення. Це деяких випадках ускладнює обчислення оточених коренів функції, якщо їх точності пред’являються завищені вимоги.
Окружение кореня функції при гарантії її визначення на необмеженому інтервалі, проводиться у разі наступному итерационному алгоритму.
Алгоритм
Назначение: оточення кореня функції, якщо ф-я визначено на необмеженому интервале Вход:
Початкова наближення (input guess) x0.
початковий інтервал пошуку D.
приріст початкового інтервалу пошуку d>1.
максимальне значення інтервалу M.
Выход:
інтервал оточення [a, x0], либо.
інтервал оточення [x0,b], либо.
повідомлення про ошибке Инициализация:
calculate f0=f (x0).
Шаги:
1. calculate (a=x0-D, b=x0+D;
fa=f (a), fb=f (b)).
2. repeat.
3. increase search interval: D=D*d.
4. if search interval? M then break the cycle with error message.
5. if sign (fa)?sign (f0) then:
a root is bracketed on [a, x0] interval.
break the cycle.
end of if.
6. if sign (fb)?sign (f0) then:
a root is bracketed on [x0, b] interval.
break the cycle.
end of if.
7. case f0>0:
8. compare (fa, fb):
9. if fa=fb then: /* both sides search */.
let a=a-D, b=b+D, fa=f (a), fb=f (b).
end of if fa=fb.
10. if fa>fb then: /* the right side search */.
let a=x0, x0=b, fa=f0, f0=fb;
let b=b+D, fb=f (b).
end of if fa>fb.
11. if fa.