Текст подпрограммы и версий ( Фортран ) mna1r.zip , mna1d.zip |
Тексты тестовых примеров ( Фортран ) tmna1r.zip , tmna1d.zip |
Текст подпрограммы и версий ( Си ) mna1r_c.zip , mna1d_c.zip |
Тексты тестовых примеров ( Си ) tmna1r_c.zip , tmna1d_c.zip |
Текст подпрограммы и версий ( Паскаль ) mna1r_p.zip , mna1e_p.zip |
Тексты тестовых примеров ( Паскаль ) tmna1r_p.zip , tmna1e_p.zip |
Локализация минимума функции одной переменной.
Подпрограмма MNA1R для заданной функции одной переменной F (X) выполняет поиск трех таких точек A, B и C, что A < B < C, причем F (B) < F (A) и F (B) < F (C).
Если такие три точки A, B и C найдены, то это означает, что минимум функции (локальный или глобальный) находится между ними.
Перед работой подпрограммы должны быть заданы отличные друг от друга начальные значения для A и B и максимальное количество попыток NMAX для локализации минимума.
Н.С.Бахвалов. Численные методы. Изд - во "Наука", 1979.
SUBROUTINE MNA1R (F, A, B, C, FA, FB, FC, IFLAG, NMAX)
Параметры
F - | имя вещественной подпрограммы - функции вычисления F (X); |
A, B, C - | вещественные переменные, значения которых полагаются равными тройке чисел, локализующих минимум функции F (X) (см. также описание параметра IFLAG); должны быть заданы начальные значения для A и B; |
FA, FB - FC | вещественные переменные, значения которых полагаются равными F (A), F (B), F (C) соответственно для вычисленных значений A, B, C; |
IFLAG - | целая переменная, служащая для сообщения о том, удалось ли локализовать минимум за NMAX или меньше попыток; при этом |
IFLAG=0 - | когда минимум не локализован; тогда переменные A, B и C содержат значения, полученные при последней попытке; |
IFLAG=1 - | когда минимум локализован; тогда переменные A, B и C содержат искомую тройку чисел, локализующих минимум |
NMAX - | заданное максимальное количество попыток для локализации минимума (тип: целый). |
Версии
MNA1D - | локализация минимума функции одной переменной в режиме удвоенной точности. При этом параметры A, B, C, FA, FB и FC должны иметь тип DOUBLE PRECISION, а подпрограмма - функция F должна быть описана как DOUBLE PRECISION FUNCTION. |
Вызываемые подпрограммы: нет
Замечания по использованию
В подпрограммах MNA1R и MNA1D имеется общий блок COMMON /MNA1RR/ NREAL. Переменная NREAL полагается равной количеству попыток, выполненных для локализации минимума. Если IFLAG = 0, то NREAL = NMAX. |
FUNCTION F (X) F = X/10.0 + COS(X) RETURN END EXTERNAL F COMMON /MNA1RR/ NREAL A = 2.5 B = 2.51 NMAX = 100 CALL MNA1R (F, A, B, C, FA, FB, FC, IFLAG, NMAX) Результаты: A = 2.75576 , B = 3.07554 , C = 3.59296 FA = - 0.650909 , FB = - 0.690265 , FC = - 0.540556 IFLAG = 1 NREAL = 3