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