Текст подпрограммы и версий ( Фортран ) 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 |
Среднеквадратическая аппроксимация кусочно - постоянной функции монотонной кусочно - постоянной функцией
Пусть задана кусочно - постоянная функция 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 )