Текст подпрограммы и версий ( Фортран )
zf17r.zip  zf17d.zip 
Тексты тестовых примеров ( Фортран )
tzf17r.zip  tzf17d.zip 
Текст подпрограммы и версий ( Си )
zf17r_c.zip  zf17d_c.zip 
Тексты тестовых примеров ( Си )
tzf17r_c.zip  tzf17d_c.zip 
Текст подпрограммы и версий ( Паскаль )
zf17r_p.zip  zf17e_p.zip 
Тексты тестовых примеров ( Паскаль )
tzf17r_p.zip  tzf17e_p.zip 

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

Назначение

Вычисление нуля вещественной функции (трансцендентного уравнения) на заданном интервале комбинированным методом Ньютона и дихотомии.

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

ZF17R вычисляет нуль вещественной функции  y = F (x) на интервале (A, B), на котором  F (x) меняет знак, с заданной точностью EPS комбинированным методом Ньютона и дихотомии.

И.С.Березин, Н.П.Жидков. Методы вычислений, т.1. Изд - во "Наука", 1966.

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

    SUBROUTINE  ZF17R (FUNCD, A, B, EPS, ROOT, ITMAX, IERR) 

Параметры

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

Версии

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

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

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

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

  В подпрограммах ZF17R и ZF17D имеется общий блок COMMON /ZF17RR/ ITER. Переменная ITER полагается равной количеству итераций, выполненных при вычислении нуля функции.

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

       SUBROUTINE  FUNCD (X, F, DF) 
       F = SIN(X) 
       DF = COS(X) 
       RETURN 
       END 

       EXTERNAL FUNCD
       COMMON /ZF17RR/ ITER 
       A = - 2.57 
       B = 1.57 
       EPS = 1.E - 5 
       ITMAX = 30 
       CALL  ZF17R (FUNCD, A, B, EPS, ROOT, ITMAX, IERR) 

Результаты:

        ROOT = - 0.000008279458 

        ITER = 5
        IERR = 0