Текст подпрограммы и версий ( Фортран ) 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 внутри заданного интервала (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