Реферат: Окружение и локализация корня нелинейной функции действительной переменной

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<fb then: /* the right side search */

/* Analogically */

end of if fa<fb

end of compare

end of case

end of repeat

Случай f0<0 (строка 7) аналогичен.

Так как интервал поиска постоянно расширяется, то в конце концов используя указанный алгоритм корень будет окружен. Возможны модификации алгоритма в двух направлениях:

1) увеличивать интервал не в геометрической прогрессии, а в арифметической либо по заданному сценарию;

2) Если область определения функции заведомо ограничена, то расширение интервала поиска также следует ограничивать имеющимися пределами, либо доопределять функцию там, где ее оригинал не определен.

Ниже расположена программа окружения корня нелинейной функции, реализующая данный алгоритм.

/* Bracketing function''s root. The function is supposed to have unlimited

domain and be continuous.

int BracketRoot(double x0,double *a,double *b,double d0,

double di, double dmax,double (*fun)(double));

Parameters:

x0 - initial guess on input;

a - left bound on output;

b - right bound on output;

d0 - initial interval of hunting;

К-во Просмотров: 509
Бесплатно скачать Реферат: Окружение и локализация корня нелинейной функции действительной переменной