Текст подпрограммы и версий ( Фортран )
zf19r.zip  zf19d.zip 
Тексты тестовых примеров ( Фортран )
tzf19r.zip  tzf19d.zip 
Текст подпрограммы и версий ( Си )
zf19r_c.zip  zf19d_c.zip 
Тексты тестовых примеров ( Си )
tzf19r_c.zip  tzf19d_c.zip 
Текст подпрограммы и версий ( Паскаль )
zf19r_p.zip  zf19e_p.zip 
Тексты тестовых примеров ( Паскаль )
tzf19r_p.zip  tzf19e_p.zip 

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

Назначение

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

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

ZF19R внутри заданного интервала (A, B) выделяет NB интервалов, на которых вещественная функция  y = F (x) меняет знаки. Интервал (A, B) делится на  N частей, после чего на границах каждого из полученных интервалов проверяются знаки  F (x). Границы интервалов, на которых функция меняет знаки, запоминаются в одномерных массивах  A1 и  B1, а их число помещается в переменную NROOT.

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

    SUBROUTINE  ZF19R (F, A, B, N, A1, B1, NB, NROOT) 

Параметры

F - имя вещественной подпрограммы - функции вычисления  F (x);
A, B - границы интервала, внутри которого выделяются искомые интервалы (тип: вещественный);
N - заданное количество разбиений исходного интервала (A, B) (тип: целый);
A1, B1 - вещественные вектора длины NB, в которых помещаются левые и правые границы выделенных интервалов, соответственно;
NB - заданное количество искомых интервалов (тип: целый);
NROOT - целая переменная, значение которой полагается равным количеству выделенных интервалов

Версии

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

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

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

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

       FUNCTION  F(X) 
       F = SIN(X) 
       RETURN 
       END 

       EXTERNAL F 
       DIMENSION  A1(50), B1(50) 
       A = - 2*3.15 
       B = 2*3.15 
       N = 100 
       NB = 50 
       CALL  ZF19R (F, A, B, N, A1, B1, NB, NROOT)

Результаты:

       A1  =  ( - 6.3, - 3.15, - 0.235*10 - 5, 3.02, 6.17 ) 
       B1  =  ( - 6.17, - 3.02, 0.126, 3.15, 6.3 ) 

       NROOT = 5