Текст подпрограммы и версий ( Фортран )
ia03r.zip 
Тексты тестовых примеров ( Фортран )
tia03r.zip 
Текст подпрограммы и версий ( Си )
ia03r_c.zip 
Тексты тестовых примеров ( Си )
tia03r_c.zip 
Текст подпрограммы и версий ( Паскаль )
ia03r_p.zip
Тексты тестовых примеров ( Паскаль )
tia03r_p.zip

Подпрограмма:  IA03R

Назначение

Наилучшая среднеквадратическая аппроксимация дискретными унимодальными функциями.

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

Для заданной дискретной функции  F = ( f 1, f 2, ..., f N ) вычисляется наилучшее среднеквадратическое приближение  T = ( t 1, t 2, ..., t N ) на классе дискретных функций, имеющих один экстремум. Приближение  T вычисляется из условия:

    N
    ∑   p K ( f K - t K )2  =
   K=1
                                                                                 N
                        =         min                 min                ∑        pK ( f K  - y K )2 ,
                             K1 ≤ L ≤ K2      YS( M, L )        K=1 

где  K1, K2 - предполагаемые границы расположения искомого экстремума,  p K > 0,  K = 1, 2, ..., N - заданные весовые коэффициенты, класс

   S (M, L) = { Y  RN :  sign(M) ( yK + 1 - yK ) ≥ 0 ,    K = 1, 2, ..., L - 1 ,
                        sign(M) ( yK + 1 - yK ) ≤ 0 ,    K = L, ..., N - 1 } , 

а заданный параметр  M определяет вид экстремума: при  M > 0 приближение  T ищется на множестве функций, имеющих один максимум, а при  M < 0 - один минимум. Если  M = 0, то функция  Т полагается равной исходной функции  F .

М.К.Самарин. Приближение сеточных функций функциями с заданным числом внутренних экстремумов, Сб. "Численный анализ на ФОРТРАНе", вып. 7, 1974, 101 - 110.

Использование

    SUBROUTINE  IA03R (F, T, P, M, N, K1, K2, IERR) 

Параметры

F - вещественный вектоp длины  N заданных значений приближаемой функции;
T - вещественный вектоp длины  N вычисленных значений найденного приближения;
P - вещественный вектоp длины  N заданных весовых коэффициентов;
M - заданный параметр, определяющий класс, приближающих функций (тип: целый):
M > 0 - приближение ищется на множестве функций, имеющих один максимум;
M < 0 - приближение ищется на множестве функций имеюших один минимум;
M = 0 - приближение полагается равным исходной функции;
N - заданное число значений функции  F (тип: целый);
K1, K2 - заданные нижняя и верхняя границы номеpов узлов, между которыми заключен экстремум искомого приближения  1 ≤ K1 ≤ K2 ≤ N (тип: целый);
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом:
IERR=65 - если экстремум искомого приближения находится вне заданных границ; в этом случае приближение полагается равным исходной функции.

Версии: нет

Вызываемые подпрограммы

IA02R - наилучшая среднеквадратическая аппроксимация дискретными монотонными функциями;
UTIA10 - подпрограмма выдачи диагностических сообщений при работе подпрограммы IA03R.

Замечания по использованию

  Алгоритм вычисляет искомое приближение за  o ( ( K2 - K1 ) N 2 ) арифметических операций, поэтому в целях сокращения времени счета рекомендуется более точно указывать границы  K1 и  K2, между которыми заключен экстремум искомой функции.

Пример использования

       DIMENSION  F(5), T(5), P(5)
       DATA  P /5*1./,  F /1., 3., -1., 9., 4./
       N = 5
       M = 1
       K1 = 1
       K2 = N
       CALL  IA03R (F, T, P, M, N, K1, K2, IERR)

Результаты:  IERR = 0 ;    T = (1., 1., 1., 9., 4.)