Текст подпрограммы и версий ( Фортран )
zf18r.zip  zf18d.zip 
Тексты тестовых примеров ( Фортран )
tzf18r.zip  tzf18d.zip 
Текст подпрограммы и версий ( Си )
zf18r_c.zip  zf18d_c.zip 
Тексты тестовых примеров ( Си )
tzf18r_c.zip  tzf18d_c.zip 
Текст подпрограммы и версий ( Паскаль )
zf18r_p.zip  zf18e_p.zip 
Тексты тестовых примеров ( Паскаль )
tzf18r_p.zip  tzf18e_p.zip 

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

Назначение

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

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

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

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

    SUBROUTINE  ZF18R (F, A, B, FACT, N, IERR) 

Параметры

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

Версии

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

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

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

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

  В подпрограммах ZF18R и ZF18D имеется общий блок COMMON /ZF18RR/ NREAL. Переменная NREAL полагается равной выполненному количеству увеличений первоначального интервала (A, B)

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

       FUNCTION  F (X) 
       F = SIN(X) 
       RETURN 
       END 
       
       EXTERNAL F 
       COMMON /ZF18RR/ NREAL 
       FACT = 1.1 
       N = 50 
       A = 1.0 
       B = 1.1 
       CALL  ZF18R (F, A, B, FACT, N, IERR) 

Результаты: 

       A = - 0.8448105 
       B = 1.1 
       NREAL = 5 

       IERR = 0