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