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

Назначение

Локализация минимума функции одной переменной.

Математическое описание

Подпрограмма 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