Текст подпрограммы и версий ( Фортран ) zf11r.zip zf11d.zip |
Тексты тестовых примеров ( Фортран ) tzf11r.zip tzf11d.zip |
Текст подпрограммы и версий ( Си ) zf11r_c.zip zf11d_c.zip |
Тексты тестовых примеров ( Си ) tzf11r_c.zip tzf11d_c.zip |
Текст подпрограммы и версий ( Паскаль ) zf11r_p.zip zf11e_p.zip |
Тексты тестовых примеров ( Паскаль ) tzf11r_p.zip tzf11e_p.zip |
Вычисление нуля вещественной функции, меняющий знак на заданном интервале, методом секущих.
ZF11R вычисляет нуль вещественной функции Y = F (X), меняющей знак на заданном интервале (A, B), т.е. F (A) * F (B) < 0, используя метод секущих.
И.С.Березин, Н.П.Жидков, Методы вычислений, т.2, M., 1962.
SUBROUTINE ZF11R (F, A, B, EPS, NDIG, ITMAX, ROOT, IERR)
Параметры
F - | имя вещественной подпрограммы - функции вычисления F (X) в любой точке интервала (A, B); |
A, B - | заданные нижняя и верхняя границы интервала, на котоpом F (X) меняет знак (тип: вещественный); |
EPS - | первый критерий сходимости: заданная абсолютная погрешность вычисления нуля функции (тип: вещественный); |
NDIG - | второй критерий сходимости: заданное число значащих цифр, с которыми предполагается вычислить нуль функции (тип: целый); |
ITMAX - | целая переменная, значение которой перед началом работы подпрограммы должно быть положено равным максимальному числу итераций, ориентировочно требуемых для обеспечения сходимости; в pезультате работы подпрограммы ее значение полагается равным действительному числу итераций, потребовавшихся для обеспечения сходимости в соответствии с заданными критериями; |
ROOT - | вещественная переменная, значение которой в pезультате работы подпрограммы полагается равным вычисленному нулю функции F (X); |
IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом: |
IERR=65 - | когда нуль функции не может быть посчитан в пределах заданного числа итераций; |
IERR=66 - | когда функция не меняет знака на заданном интервале. |
Версии
ZF11D - | вычисление нуля вещественной функции, меняющей знак на заданном интервале, методом секущих с повышенной точностью. При этом параметры A, B, EPS и ROOT должны иметь тип DOUBLE PRECISION, а подпрограмма - функция вычисления F (X) должна быть оформлена как DOUBLE PRECISION FUNCTION. |
Вызываемые подпрограммы
UTZF10 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы ZF11R. |
UTZF11 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы ZF11D. |
Замечания по использованию
Пусть Xi - 1 и Xi являются двумя последовательными приближениями к нулю функции F (X). Тогда Xi принимается за искомый нуль, если выполнен один из двух критериев сходимости | F(Xi) | ≤ | EPS | или | Xi-1 - Xi | < | Xi | * 10 (- NDIG ) .При обращении к подпрограмме может быть задан только первый критерий сходимости (тогда NDIG задается равным 0), либо только второй критерий (тогда EPS задается равным 0), либо оба критерия одновременно. |
FUNCTION F(X) F = X*X + 2.0*X - 6.0 RETURN END EXTERNAL F A = - 3.3 B = 4.6 EPS = 0.00001 NDIG = 6 ITMAX = 20 CALL ZF11R (F, A, B, EPS, NDIG, ITMAX, ROOT, IERR) Результаты: ROOT = 1.645750595 , ITMAX = 17 , IERR = 0