Текст подпрограммы и версий ( Фортран ) ef02r.zip |
Тексты тестовых примеров ( Фортран ) tef02r.zip |
Текст подпрограммы и версий ( Си ) ef02r_c.zip |
Тексты тестовых примеров ( Си ) tef02r_c.zip |
Текст подпрограммы и версий ( Паскаль ) ef02r_p.zip |
Тексты тестовых примеров ( Паскаль ) tef02r_p.zip |
Приближенное решение интегрального уравнения Фредгольма I рода в классе кусочно - выпуклых функций с ограниченной первой производной.
Решение интегрального уравнения Фредгольма I рода
b ∫ k(x, y) u(y) dy = f(x) , c ≤ x ≤ d , a
при априорно известной информации об ограниченности первой производной искомого решения u = u (y) и об участках знакопостоянства его кривизны сводится на основе метода квазирешений В.К.Иванова к задаче минимизации
d b min ∫ ( ∫ k(x, y) u(y) dy - f(x) )2 dx v, u (a) c a
на множестве кусочно - монотонных функций v (y) = u' (y), определенных на отрезке [a, b]
y u(y) = u(a) + ∫ v(t) dt , a ≤ y ≤ b , a и удовлетворяющих ограничениям v1(y) ≤ v(y) ≤ v2(y) , a ≤ y ≤ b ,
v1 (y) и v2 (y) - заданные на отрезке [a, b] функции. Значение u (a) может считаться как известным, так и подлежащим определению.
Численная дискретизация этой вариационной задачи после аппроксимации соответствующих интегралов с помощью квадратурных формул на сетках ωx = {xi : c = x1 < ... < xi < ... < xM = d} и ωy = {yj : a = y1 < ... < yj < ... < yN = b} приводит к задаче квадратичного программирования
M N
(1) min ∑ pi ( ∑ dj ki j uj - fi )2
v, u1 i=1 j=1
при условии, что вектоp v = (v1, ..., vN - 1) удовлетворяет ограничениям
j -1 (2) uj = u1 + ∑ he ve , j = 2, ..., N e=1 (3) v1 j ≤ vj ≤ v2 j , j = 1, ..., N-1 (4) mj ( vj + 1 - vj ) ≥ 0 , j = 1, ..., N-2 ,
где ki j = k (xi, yj), fi = f (xi), dj > 0 - коэффициенты квадратурной формулы трапеции на сетке ωy , pi > 0 - весовые коэффициенты, hj = yj + 1 - yj - шаг сетки ωy , v1j = v1 (yj), v2j = v2 (yj), параметры mj определяются условиями кусочной монотонности функции v = u' и принимают значения 1, 0 или -1.
Численное решение задачи (1) - (4) основано на методе проекции сопряженных градиентов, который позволяет проводить итерационный процесс минимизации в конечномерном пространстве W2, ρ1 с нормой
N-1 || v || = ( || v || Q2 + ∑ ρj (vj - vj-1)2 )1/2 , j=2 N-1 || v || Q = ( ∑ qj vj2 ) , j=1
qj > 0 и ρj ≥ 0 - заданные числа. Если априори известно, что производная искомого решения является достаточно гладкой функцией, то задание параметров ρj > 0, связанных с конкретной нормировкой W2, ρ1 (при ρj ≡ 0 эта ноpма v совпадает с || v || Q) позволяет увеличить точность и улучшить качество приближений.
Итерационный процесс считается оконченным после выполнения заданного числа итераций или после достижения заданной точности.
1. | А.Н.Тихонов, В.Я.Арсенин, Методы решения некорректных задач. M. "Hаука", 1974. |
2. | В.А.Морозов, Н.Л.Гольдман, М.К.Самарин, Метод дескриптивной регуляризации и качество приближенных решений. ИФЖ, т.33, N 6, 1977. |
3. | Ф.П.Васильев, Лекции по методам решения экстремальных задач. Изд - во МГУ, 1974. |
4. | Н.Л.Гольдман, Приближенное решение интегрального уpавнения Фредгольма I рода в классе кусочно - выпуклых функций с ограниченной первой производной, сб. "Численный анализ на ФОРТРАНе". Изд - во МГУ, 1978. |
SUBROUTINE EF02R (M, N, A, F, NG, V1, V2, MU, H, P, Q, R, E, ISP, LU, U, FU, KN, B)
Параметры
M - | заданная размерность вектоpа правой части f (тип: целый); |
N - | заданная размерность вектоpа искомого решения u = (u1, ..., uN) (тип: целый); |
A - | заданный вещественный двумерный массив размерности M * N, элементы которого A (I, J) = ki j; |
F - | заданный вещественный вектоp длины M, содержащий компоненты вектоpа правой части f; |
NG - | заданный признак наличия ограничений на производную искомого решения (тип: целый); |
NG = 0 - | если ограничения отсутствуют; |
NG = 1 - | если выполнены ограничения (3); |
NG = 2 - | если выполнены ограничения (4); |
NG = 3 - | если выполнены ограничения (3) и (4); |
V1 - | вещественный вектоp длины N, первые N - 1 компонент которого содержат нижние ограничения v1 j; |
V2 - | вещественный вектоp длины N, первые N - 1 компонент которого содержат верхние ограничения v2 j; |
MU - | целый вектоp длины N, первые N - 2 компонент которого содержат параметры mj; |
H - | вещественный вектоp длины N, первые N - 1 компонент которого содержат шаги hj разностной сетки ωy на отрезке [a, b]; |
P - | вещественный вектоp длины M, содержащий весовые коэффициенты pi > 0; |
Q - | вещественный вектоp длины N, первые N - 1 компонент которого содержат весовые коэффициенты qj > 0; |
R - | вещественный вектоp длины N + 1 значений параметров ρj таких, что: R (1) = 0., R (J) = ρj ≥ 0, j = 2, ..., N - 1, ρ (N) = 0., ρ (N + 1) = 0.; |
E - | заданная точность вычисления по градиенту (тип: вещественный); |
ISP - | заданное максимально допустимое число итераций (тип: целый); |
LU - | параметр, задаваемый из условия (тип: целый): |
LU = 1 - | если значение u (a) известно, |
LU = 0 - | если значение u (a) неизвестно; |
U - | вещественный вектоp длины N, задающий произвольное начальное приближение; U (1) = u (a) в случае заданного значения u (a); в результате работы подпрограммы U содержит вычисленное решение u; |
FU - | вещественная переменная, содержащая вычисленное значение минимизируемого функционала; |
KN - | целая переменная, указывающая причину выхода из подпрограммы: |
KN = 0 - | если выполнено заданное число итераций; |
KN = 1 - | если достигнута точность по градиенту, |
KN = 2 - | если достигнута точность по функционалу; |
KN = 3 - | если достигнута точность по аргументу; |
B - | вещественный вектоp длины M + 7N + 2, используемый как рабочий. |
Версии: нет
Вызываемые подпрограммы
EF01R - | приближенное решение интегрального уравнения Фредгольма I рода в классе ограниченных кусочно - монотонных функций. |
Замечания по использованию
1. |
Kpоме искомого решения u подпрограмма позволяет получить приближение для его производной: компоненты вычисленного вектоpа v = (v1, ..., vN - 1) расположены в B (M + 1), ..., B (M + N - 1). | |
2. |
При работе подпрограммы исходная информация, расположенная в массивах A и F, не сохраняется. | |
3. | Справедливы замечания 3) - 5) к использованию подпрограммы EF01R. |
DIMENSION A(11, 11), F(11), V1(11), V2(11), MU(11), H(11), * P(11), Q(11), R(12), U(11), B(90) DATA V1 /10*0.0/, V2 /10*1.1/, MU /5*1, 4*-1/ DATA H /10*0.1/, P /11*1.0/, Q /0.05, 9*0.1, 0.05/, R /12*0.0/ M = 11 N = 11 NG = 3 LU = 1 E = 1.0E - 7 ISP = 20 DO 3 I = 1, M DO 3 J = 1, N IF(I-J) 2, 1, 2 1 A(I, J) = 1. / Q(I) GO TO 3 2 A(I, J) = 0. 3 CONTINUE U(1) = -11. / 24. DO 4 J = 2, N 4 U(J) = 0. Y = -0.5 SF = 0.025 DO 5 I = 1, M S = SF + SIN(123.456*I + 789.) F(I) = Y - (Y**3) / 3. + S 5 Y = Y + H(I) CALL EF02R (M, N, A, F, NG, V1, V2, MU, H, P, Q, R, E, * ISP, LU, U, FU, KN, B) Результат: U = ( -4.58E-1, -4.11E-1, -3.16E-1, -2.21E-1, -1.26E-1, -3.13E-2, 7.87E-2, 1.73E-1, 2.68E-1, 3.64E-1, 4.58E-1 )