Текст подпрограммы и версий ( Фортран )
iam1r.zip , iam1d.zip
Тексты тестовых примеров ( Фортран )
tiam1r.zip , tiam1d.zip
Текст подпрограммы и версий ( Си )
iam1r_c.zip , iam1d_c.zip
Тексты тестовых примеров ( Си )
tiam1r_c.zip , tiam1d_c.zip
Текст подпрограммы и версий ( Паскаль )
iam1r_p.zip , iam1e_p.zip
Тексты тестовых примеров ( Паскаль )
tiam1r_p.zip , tiam1e_p.zip

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

Назначение

Среднеквадратическая аппроксимация кусочно - постоянной функции монотонной кусочно - постоянной функцией

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

Пусть задана кусочно - постоянная функция  f0 (x),  x  (x0, xN]:

                       f0 (x)  =  y1 ,    x  ( x i -1, x1 ] ,    i = 1,..., N 

Строится наилучшая среднеквадратическая аппроксимация функции  f0 (x) в классе монотонно возрастающих функций:

                  xN
                   ∫  [ f(x) - f0(x) ]2  dx  =  min ,     f(x)  V1 [x0, xN] ,
                 x0 

где V1 [x0, xN] - множество монотонно возрастающих функций. В подпрограмме реализован прямой метод решения этой задачи, разработанный в [1] и требующий CONST*N арифметических операций. Алгоритм основан на построении выпуклой оболочки функции

                               x
               F0 (x)  =  ∫  f(t) dt
                             x0
и последующем ее дифференцировании. 

Построенная аппроксимирующая функция является монотонно возрастающей кусочно - постоянной функцией, точки разрыва которой содержатся среди точек разрыва исходной кусочно - постоянной функции.

1.  Малышев В.А. Решение задачи монотонной аппроксимации и выпуклая оболочка кусочно - линейной функции. Сб."Численный анализ: методы, алгоритмы, приложения". Изд - во МГУ, 1985.

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

    SUBROUTINE  IAM1R (N, X0, X, Y, Z, I I, F0) 

Параметры

N - заданное число точек разрыва аппроксимируемой кусочнопостоянной функции (тип: целый);
X0 - заданное значение  x0 (тип: вещественный);
X - вещественный вектор длины N заданных значений точек разрыва;
Y - вещественный вектор длины N заданных значений аппроксимируемой кусочно - постоянной функции;
Z - вещественный вектор длины N вычисленных в точках  x1, ..., xN значений аппроксимирующей кусочно - постоянной функции;
I I - целый вектор длины N, содержащий полученные номера  i1, ..., ik (k ≤ N) точек разрыва  xi 1, ..., xi k аппроксимиющей кусочно - постоянной функции;
F0 - вещественный рабочий вектор длины N

Версии

IAM1D - среднеквадратическая аппроксимация кусочно - постоянной функции монотонной кусочно - постоянной функцией в режиме удвоенной точности. При этом параметры X0, X, Y, Z, F0 должны иметь тип DOUBLE PRECISION .

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

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

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

Для среднеквадратической аппроксимации кусочно - постоянной функции

                f0 (x)  =  y1 ,   x  ( x i -1, x1 ] ,    i = 1, ..., 7
такой, что
                X0  =  0.
                X   =  ( 2., 4., 5., 7., 10., 12., 15. )
                Y   =  ( 1., -1., -2., 2., -0.333333, 3., 1. )

обращение к подпрограмме имеет вид:

        DIMENSION  X(7), Y(7), Z(7), I I(7), F0(7)
        DATA  X /2., 4., 5., 7., 10., 12., 15./
        DATA  Y /1., -1., -2., 2., -0.333333, 3., 1./
        N = 7
        X0 = 0. 
        CALL  IAM1R (N, X0, X, Y, Z, I I, F0)

Результат:   Z  =  ( -0.4, -0.4, -0.4, 0.6, 0.6, 1.8, 1.8 )