Текст подпрограммы и версий ( Фортран )
zf11r.zip  zf11d.zip 
Тексты тестовых примеров ( Фортран )
tzf11r.zip  tzf11d.zip 
Текст подпрограммы и версий ( Си )
zf11r_c.zip  zf11d_c.zip 
Тексты тестовых примеров ( Си )
tzf11r_c.zip  tzf11d_c.zip 
Текст подпрограммы и версий ( Паскаль )
zf11r_p.zip  zf11e_p.zip 
Тексты тестовых примеров ( Паскаль )
tzf11r_p.zip  tzf11e_p.zip 

Подпрограмма:  ZF11R

Назначение

Вычисление нуля вещественной функции, меняющий знак на заданном интервале, методом секущих.

Математическое описание

ZF11R вычисляет нуль вещественной функции Y = F (X), меняющей знак на заданном интервале (A, B), т.е.   F (A) * F (B) < 0, используя метод секущих.

И.С.Березин, Н.П.Жидков, Методы вычислений, т.2, M., 1962.

Использование

    SUBROUTINE  ZF11R (F, A, B, EPS, NDIG, ITMAX, ROOT, IERR) 

Параметры

F - имя вещественной подпрограммы - функции вычисления  F (X) в любой точке интервала (A, B);
A, B - заданные нижняя и верхняя границы интервала, на котоpом  F (X) меняет знак (тип: вещественный);
EPS - первый критерий сходимости: заданная абсолютная погрешность вычисления нуля функции (тип: вещественный);
NDIG - второй критерий сходимости: заданное число значащих цифр, с которыми предполагается вычислить нуль функции (тип: целый);
ITMAX - целая переменная, значение которой перед началом работы подпрограммы должно быть положено равным максимальному числу итераций, ориентировочно требуемых для обеспечения сходимости; в pезультате работы подпрограммы ее значение полагается равным действительному числу итераций, потребовавшихся для обеспечения сходимости в соответствии с заданными критериями;
ROOT - вещественная переменная, значение которой в pезультате работы подпрограммы полагается равным вычисленному нулю функции  F (X);
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом:
IERR=65 - когда нуль функции не может быть посчитан в пределах заданного числа итераций;
IERR=66 - когда функция не меняет знака на заданном интервале.

Версии

ZF11D - вычисление нуля вещественной функции, меняющей знак на заданном интервале, методом секущих с повышенной точностью. При этом параметры A, B, EPS и ROOT должны иметь тип DOUBLE PRECISION, а подпрограмма - функция вычисления  F (X) должна быть оформлена как DOUBLE PRECISION  FUNCTION.

Вызываемые подпрограммы

UTZF10 - подпрограмма выдачи диагностических сообщений при работе подпрограммы ZF11R.
UTZF11 - подпрограмма выдачи диагностических сообщений при работе подпрограммы ZF11D.

Замечания по использованию

 

Пусть  Xi - 1 и  Xi являются двумя последовательными приближениями к нулю функции  F (X). Тогда  Xi принимается за искомый нуль, если выполнен один из двух критериев сходимости

       | F(Xi) | ≤ | EPS |   или   | Xi-1 - Xi | < | Xi | * 10 (- NDIG ) . 
При обращении к подпрограмме может быть задан только первый критерий сходимости (тогда NDIG задается равным 0), либо только второй критерий (тогда EPS задается равным 0), либо оба критерия одновременно.

Пример использования

       FUNCTION  F(X)
       F = X*X + 2.0*X - 6.0
       RETURN
       END

       EXTERNAL  F
       A = - 3.3
       B = 4.6
       EPS = 0.00001
       NDIG = 6
       ITMAX = 20
       CALL  ZF11R (F, A, B, EPS, NDIG, ITMAX, ROOT, IERR)

Результаты:    ROOT  = 1.645750595 ,  ITMAX  =  17 ,   IERR  =  0