книги / Численные методы решения некорректных задач
..pdfОС 4 4
3 0 4 5
00-6
00-4 7
0 0 4 8
0 0 4 е?
0001
0002
0003
0004
000 5
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0001
0002
0 003
000 4
0 0 0 5
0 0 0 6
0 0 0 7
0 0 0 8
0 0 0 9
0010
0011
0012
0 0 1 3
0 0 1 4
0 0 1 5
0 0 1 6
0 0 1 7
001 8
0019
10 DO 9 I —1 ,N L = N * ( 1 - 1 ) + I
P I ( L ) = P I ( L ) + 1 . 0
PCONTINUE PE 7URN END
SUBROUTINE PTILR3(AJ, A,N ,N N ,MASK)
С* ПОДПРОГРАММА ФОРМИРОВАНИЯ
С* АКТИВНЫХ ОГРАНИЧЕНИЙ ПО МАСКЕ
|
IMPLICIT REAL*8(A -H,0-Z) |
|
|
REAL*8 |
AJ , A |
|
INTEGER |
N,NN,MASK, К , I , J |
|
DI MENS ION AJ(N N ,N ) ,A(N N ,N ),MASK(NN) |
|
|
K=0 |
|
|
DO 1 1=1,NN |
|
|
I F ( MASK( I ) .EQ .0) GOTO 1 |
|
|
K=K+i |
|
|
DO 2 J = i ,N |
|
2 |
AJ( К, J )=A( I , J ) |
|
CONTINUE |
||
1 |
CONTINUE |
|
|
RETURN |
|
|
END |
|
|
|
SUBROUTINE PTILR6( A, X, P , MASK, |
С |
* |
*GR,N,M,NN,C,D,IED) |
ПОДПРОГРАММА ВЫБРОСА ОГРАНИЧЕНИЙ |
||
С |
* |
IED - КОД ОТВЕТА: |
С* 0-НИЧЕГО НЕЛЬЗЯ ВЫБРОСИТЬ,
С* 1-ЧТО-ТО ВЫБРОСИЛИ
IMPLICIT REAL*8(A-H,0-Z)
REAL*8 |
A,X,P,GR,C,D,AL,R |
|
INTEGER |
MASK, N , M,NN,К, I , J , NNN, IED |
|
DIMENSION |
P (N N ,N ) ,GR( N ) , MASK(NN) |
|
DIMENSION |
A (N N ,N ),X (N ),C (N ,N ),D (N ) |
|
EXTERNAL |
PTILR7 |
CALL PTILR7( X, C, N , GR, D)
K=0
I ED=0
AL=1 . 0
DO 1 1=1,NN
I F ( MASK( I ) . EQ. 0 ) GOTO 1
С-* ДЛЯ АКТИВНЫХ ОГРАНИЧЕНИЙ СЧИТАЕМ
С* ТЕНЕВОЙ ПАРАМЕТР
К=К+1 R=0. 0
DO 2 J=1,N R=R+P(К, J ) *GR(J)
2 CONTINUE
C * ИЩЕМ МИНИМАЛЬНЫЙ ТЕНЕВОЙ параметр
IF (R.GE.AL) GOTO 1
201
0020 |
|
AL=R |
|
|
|
|
|
0021 |
|
NNN=I |
|
|
|
|
|
0022 |
* |
1 CONTINUE |
|
|
|
|
|
С |
ЕСЛИ ОИ > 0 , TO BCE, |
|
|||||
С |
* |
ИНАЧЕ ВЫБРАСЫВАЕМ NNN-E ОГРАНИЧЕНИЕ |
|||||
0 0 2 3 |
|
IF (AL .G E .0 .0) |
GOTO |
3 |
|||
0 024 |
|
MASK( NNN)=0 |
|
|
|
||
0 0 2 5 |
|
IED=1 |
|
|
|
|
|
0 026 |
|
M=M-1 |
|
|
|
|
|
002 7 |
|
3 RETURN |
|
|
|
|
|
0 0 2 8 |
|
END |
|
|
|
|
|
0001 |
|
SUBROUTINE |
PTILR1( MN, M, MASK, AQ, AJ, A,P, |
||||
|
|
* U , P I , В , GR, W, P I , WORK, ICM, IСI , С, X, D,N,NN, |
|||||
С |
* |
*R, DEL, DGR, IEND) |
|
||||
ДИСПЕТЧЕР МЕТОДА |
|
||||||
С |
* |
WORK=. TRUE. - |
РАБОТА С |
ЗАДАННОЙ МАТРИЦЕЙ А |
|||
С |
* |
ICI - СЧЕТЧИК |
БОЛЬШИХ |
ЦИКЛОВ |
|||
С * IСМ - ОГРАНИЧИТЕЛЬ ЧИСЛА БОЛЬШИХ ЦИКЛОВ |
|||||||
0002 |
|
IMPLICIT |
REAL* 8 ( А-Н, 0 - Z ) |
||||
0 0 0 3 |
|
REALKB AQ,AJ,A,P,U,PI,B,G R,W , |
|||||
00 04 |
|
#Р1, С , D , X, R , DEL, DGR |
|
||||
|
INTEGER |
MN, M, MASK,N ,N N ,IEND, |
|||||
0 0 0 5 |
|
* 1 , I C I , ICM,IED |
|
|
|||
|
DIMENSION A(N N ,N ),MASK(N N ),AJ(N N ,N ), |
||||||
|
|
*P (N N ,N),PI(N,N),B(NN),G R(N),W (M N), |
|||||
0 0 0 6 |
|
♦ P i ( N ) , C( N , N ) , X ( N ) , D ( N ) , AQ( MN, N ) , U(MN) |
|||||
|
LOGICAL |
WORK |
|
|
|||
000 7 |
|
EXTERNAL |
PTICI2,PTICR3,PTICR5, |
||||
000 8 |
|
#PTILR3, PTILR4, PTILR5, PTILR6 |
|||||
|
CALL |
PTIСI 2 ( MASK,0,NN) |
|||||
C * M - ЧИСЛО АКТИВНЫХ ОГРАНИЧЕНИЙ |
|||||||
0 0 0 9 |
|
M=0 |
|
|
|
|
|
0010 |
|
ENTRY PTILR2 |
|
|
|||
С * НАЧИНАЕМ ИТЕРАЦИИ БОЛЬШОГО ЦИКЛА |
|||||||
0011 |
|
1С1=0 |
|
|
|
|
|
0012 |
|
2 CONTINUE |
|
|
|
12 |
|
0 0 1 3 |
|
IF(ICI.EQ.ICM) GOTO |
|||||
0 0 1 4 |
|
ICI=ICI+1 |
|
GOTO |
101 |
||
0 0 1 5 |
* |
IF(.NOT.WORK) |
|||||
С |
ВЫЧИСЛЯЕМ |
НЕВЯЗКУ - R1, И ЕСЛИ ОНА < DEL, |
|||||
С * |
ТО ВЫХОДИМ |
|
|
|
|||
0 0 1 6 |
|
CALL PTICR3(AQ,X,W,N,MN) |
|||||
0 0 1 7 |
101 |
CALL PTICR5(W,U,MN,R1) |
|||||
0 0 1 8 |
CONTINUE |
|
|
GOTO 9 |
|||
0 0 1 9 |
|
IF(Rl.LE.DEL) |
|||||
С * ГОТОВИМ ОГРАНИЧЕНИЯ ПО MACKE |
|||||||
0020 |
|
CALL PTILR3( AJ, A,N,NN,MASK) |
|||||
C * |
ГОТОВИМ |
ПРОЕКТОР |
|
|
|||
0021 |
|
CALL |
PTILR4( A J , P , P I , M,N,NN) |
||||
С * МИНИМИЗИРУЕМ НА ГРАНИ |
|
||||||
0022 |
|
CALL PTILR5(A,AJ,B,MASK, N , M,NN,GR, |
|||||
0 0 2 3 |
|
*PI,W,P1,C,X,D,K,IED,DGR) |
|||||
|
I F ( IED. EQ•0) GOTO 2 |
|
202
С |
* ЕСЛИ НОРМА ГРАДИЕНТА |
< DGR, ТО ВЫХОДИМ |
0024 |
I F ( IED. EQ. 2 ) GOTO |
11 |
С* ПРОВЕРЯЕМ ОГРАНИЧЕНИЯ
С* НА ВОЗМОЖНОСТЬ ВЫБРОСА И ИСКЛЮЧАЕМ
0 0 2 5 |
|
CALL |
РТILR6( А , X, Р , MASK |
|
С |
*GR,N,M,NN,C,D,IED) |
|||
Ж ЕСЛИ ЧТО-ТО ВЫБРОСИЛИ, |
||||
С |
Ж ТО |
ПРОДОЛЖАЕМ, |
ИНАЧЕ ВЫХОД |
|
0026 |
|
IF (IE D .E Q .1) |
GOTO 2 |
|
С |
Ж НОРМАЛЬНОЕ ОКОНЧАНИЕ. ТОЧНЫЙ МИНИМУМ |
|||
0027 |
|
IEND=0 |
|
|
0 028 |
9 |
GOTO |
10 |
|
0 0 2 9 |
CONTINUE |
|
||
С |
Ж НОРМАЛЬНОЕ ОКОНЧАНИЕ. ВЫХОД ПО НЕВЯЗКЕ |
|||
0 0 3 0 |
|
IEND=1 |
|
|
0031 |
12 |
GOTO |
10 |
|
0032 |
CONTINUE |
|
||
С |
Ж ВЫХОД ПО ЧИСЛУ ИТЕРАЦИЙ |
|||
0 033 |
|
IEND=3 |
|
|
0034 |
11 |
GOTO |
10 |
|
0 0 3 5 |
CONTINUE |
ГРАДИЕНТА |
||
С Ж ВЫХОД ПО НОРМЕ |
||||
003 6 |
10 |
IEND=2 |
|
|
0 0 3 7 |
CONTINUE |
|
||
0038 |
|
I F ( .NOT.WORK)GOTO 102 |
||
С |
Ж ВЫЧИСЛЯЕМ ЗНАЧЕНИЕ ФУНКЦИОНАЛА НЕВЯЗКИ |
|||
С |
Ж ДЛЯ ВЫДАЧИ |
|
||
003 9 |
|
CALL |
РТICR3(AQ, X, W, N, MN) |
|
0 0 4 0 |
102 |
CALL |
РТICR5(W, U, MN, R) |
|
0041 |
CONTINUE |
|
||
004 2 |
|
RETURN |
|
|
004 3 |
|
END |
|
|
0001 |
|
SUBROUTINE РТILRA( AQ, U, C, D, N , MN) |
СЖ ПРИВЕДЕНИЕ ФУНКЦИОНАЛА НЕВЯЗКИ
СЖ К ВИДУ (СЖХ,Х)+(0,Х)+Е
0002 |
|
IMPLICIT ЯЕАСЖ8( А—Н, О—Z) |
|
0 0 0 3 |
|
ЯЕАСЖ8 |
AQ,U,C,D,R |
000 4 |
|
INTEGER |
N, MN, I , J,K |
0 0 0 5 |
|
DIMENSION AQ( MN, N ) , U( MN) , C( N ,N ) ,D(N) |
|
С Ж Ds =—2A' Жи |
|||
0 0 0 6 |
|
DO 6 1= 1,N |
|
000 7 |
|
R=0. 0 |
|
0 0 0 8 |
|
DO 5 J = 1 , MN |
|
0 009 |
|
R=R+ A Q (J ,I^ U < J ) |
|
0010 |
5 |
CONTINUE |
|
0011 |
6 |
D < I) = - 2 . 0ЖЯ |
|
0012 |
CONTINUE |
||
С |
Ж L:=A' ЖА, |
|
|
0 0 1 3 |
|
DO 7 1=1,N |
|
0 0 1 4 |
|
DO 7 J = 1 , I |
|
0 0 1 5 |
|
R=0. 0 |
|
0 0 1 6 |
|
DO 8 K=1, MN |
|
0 0 1 7 |
|
R=R+AQ(К, I ) ЖАО( К, J ) |
203
00 18
0 019
0020
0021
0022
0023
0001
0002
00 03
0004
0 0 0 5
000 6
00 07
00 08
0 009
0010
0011
0012
0013
001 4
0 0 1 5
0016
0017
001 8
0 0 1 9
0020
0021
0022
002 3
0024
0 0 2 5
0026
0 027
0 028
00 29
003 0
0031
0032
00 33
003 4
003 5
00 36
00 37
003 8
8CONTINUE C (I ,J )= R C (J ,I )= R
7CONTINUE RETURN END
С * |
|
SUBROUTINE PTILRB( A, В,N ,N N ,ITASK, С, IERR L |
|||
ПРОГРАММА ФОРМИРОВАНИЯ МАТРИЦЫ ОГРАНИЧЕНИЙ |
|||||
|
|
|
IMPLICIT REALMS<A-H,0-Z) |
|
|
|
|
|
REAL*8 |
A, В, C |
|
|
|
|
INTEGER |
N ,NN,ITASK, IERR, L, I |
|
|
|
|
DIMENSION A(NN,N ), В (NN) |
|
|
C * |
|
EXTERNAL PTICR2 |
|
||
ЗАДАН НЕСУЩЕСТВЫЮЩИй ТИП ОГРАНИЧЕНИЙ |
|||||
|
|
|
IERR=99 |
|
GOTO 777 |
|
|
|
IF(ITASK.GT.3.0R.ITASK.LT .1) |
||
C * НА МОНОТОННЫХ ФУНКЦИЯХ |
|
||||
с * |
КОНСТАНТА ОГРАНИЧЕНИЯ 0 |
|
|||
|
|
|
IERR=98 |
|
GOTO 777 |
|
|
|
IF ( I ТASK. EQ. 1 . AND.C.EQ.0.0) |
||
С |
* |
|
IERR=0 |
|
|
ЗАНУЛЯЕМ МАТРИЦУ |
|
||||
|
|
|
CALL PTICR2( A , 0 . 0 , N#NN) |
|
|
|
|
|
L=N-1 |
|
|
С |
* |
ПЕРЕКЛЮЧАТЕЛЬ |
|
||
|
|
1 |
GOTO ( 1 , 2 , 3 ) , I TASK |
|
|
C * |
CONTINUE |
|
|||
НА |
МОНОТОННЫХ ФУНКЦИЯХ |
|
|||
|
|
|
DO 11 1=1,N |
|
A( I , I ) = 1 . 0
A( 1 + 1 , 1 ) = - i . 0
B < I + 1 )= 0 . 0
11CONTINUE B(1)=C GOTO 777
2 CONTINUE
C * НА ВЫПУКЛЫХ ФУНКЦИЯХ
DO 12 1 = 2 ,L
A ( I , I )= - 2 . 0
A( I , I —1 ) = 1 . 0 A( I , I + l ) = 1 . 0 B ( I ) = 0 . 0
12CONTINUE
A( 1 , 1 ) =—i .0 A(N,N)= —1 . 0 B<1)= 0 . 0 В(N )=0•0
GOTO 777
3 CONTINUE
C # НА МОНОТОННЫХ ВЫПУКЛЫХ ФУНКЦИЯХ DO 13 1 = 2 ,L
A ( I , I )= - 2 . 0
A( I , 1 - 1 ) = 1 . 0
204
0039
0 0 4 0
0041
0042
0043
0044
0 0 4 5
0046
0047
0048
004 9
0001
0002
0003
0004
0005
000 6
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0 026
0027
0028
0029
0030
0031
0 032
0033
А( I , I+ 1 ) = 1•0 В ( I ) = 0 . 0
13CONTINUE
A ( 1 , 1 )=- l . 0 A( 1 , 2 ) = 1 . 0 A (N, N)=—1 . 0
B ( i ) = 0 . 0 В(N )= 0 . 0
777CONTINUE RETURN END
SUBROUTINE PTILR0(A,N)
С* ОБРАЩЕНИЕ СИММЕТРИЧНОЙ ПОЛОЖИТЕЛЬНОЙ
С * МАТРИЦЫ A(N,N) ПОРЯДКА N. РЕЗУЛЬТАТ
С* ПОМЕЩАЕТСЯ НА МЕСТО ИСХОДНОЙ МАТРИЦЫ.
С* МАТРИЦА А ДОЛЖНА ИМЕТЬ N+1 СТОЛБЦОВ
С # ( А ( N, N+1) ) , ПОСЛЕДНИЙ ИЗ КОТОРЫХ
С* ИСПОЛЬЗУЕТСЯ КАК РАБОЧИЙ МАССИВ.
С* ДОСТАТОЧНО ЗАДАВАТЬ ЛИШЬ ЭЛЕМЕНТЫ
С* ПОД ДИАГОНАЛЬЮ МАТРИЦЫ
С |
* |
А( I , J ), |
ГДЕ |
I>=J |
|
IMPLICIT REAL*8(A-H,0-Z) |
|||
|
REAL*8 A , X , Y , Z |
|
||
|
INTEGER 1 , I I , 1 2 , 1 3 , J , J 1 , J 2 , J 4 , К, K1 |
|||
|
DIMENSION A (N , 1) |
|
||
|
DO 1 |
1=1,N |
|
|
|
11=1+1 |
|
|
|
|
DO 1 |
J = I,N |
|
|
|
J1=J+1 |
|
|
|
|
X = A (J ,I ) |
|
|
|
|
12=1-1 |
|
2 |
|
|
I F ( 1 2 . LT. 1 ) GOTO |
|||
|
DO 3 |
K i = i ,12 |
|
|
|
K=I-Ki |
|
|
|
3 |
X = X -A(K,J1)*A(K,II) |
|||
CONTINUE |
|
|
||
2 |
CONTINUE |
GOTO |
4 |
|
|
I F ( J . N E . I ) |
|||
|
Y=1. /DSQRT( X) |
|
||
|
A ( I , 11) =Y |
|
|
|
4 |
GOTO |
1 |
|
|
A(I,J1)=X*Y |
|
|
||
1 |
CONTINUE |
|
|
|
|
DO 5 |
1=1,N |
|
|
|
13=1+1 |
|
5 |
|
|
I F ( 1 3 . GT. N )GOTO |
|||
|
DO 6 |
J = I 3.N |
|
|
|
Z=0. |
|
|
|
|
J1=J+1 |
|
|
|
|
J2=J -1 |
|
|
|
|
DO 7 |
K 1=I,J2 |
|
|
7 |
K=J-1-K1+I |
|
|
|
Z=Z -A(K,J1)*A(I,K +1) |
205
003 4 |
6 |
A ( I , J 1 ) = Z * A ( J , J 1 ) |
||
0 0 3 5 |
CONTINUE |
|||
0036 |
5 |
CONTINUE |
||
00 37 |
|
DO |
8 |
1=1,N |
0038 |
|
DO |
8 |
J = I ,N |
0039 |
|
Z=0. |
|
|
0040 |
|
J1=N+1 |
||
0041 |
|
J 4=J +1 |
||
0042 |
9 |
DO |
9 |
K=J4, J 1 |
0043 |
Z=Z+A(J,K)*A(I,K) |
|||
0044 |
8 |
A( I , J +i)=Z |
||
0045 |
CONTINUE |
|||
0046 |
|
DO |
11 |
1=1,N |
0047 |
|
DO |
11 |
J = I ,N |
0048 |
|
A ( J , I ) =A( I , J +l ) |
||
0049 |
11 |
A ( I , J )=A( I , J + l ) |
||
0050 |
CONTINUE |
|||
0051 |
|
RETURN |
||
0052 |
|
END |
|
|
VIII. Программарешения интегральных уравнений Фредгольма 1-го рода на множествах монотонных и (или) выпуклыхфункций.
Метод проекций сопряженных градиентов на множество векторов с неотрицательными координатами
0001 |
SUBROUTINE РТISR(АК, U0, X1 , X2 , Y1 , Y2, N, М, |
|
* Z, AN2, ITER, DL, IМАX, IС, |
0002 |
*R,NR,XERR) |
IMPLICIT REAL*8(A-H,0-Z) |
С* РЕШЕНИЕ ИНТЕГРАЛЬНОГО УРАВНЕНИЯ
С* ФРЕДГОЛЬМА ПЕРВОГО РОДА
С* МЕТОДОМ ПРОЕКЦИИ СОПРЯЖЕННЫХ ГРАДИЕНТОВ
С* ДИСПЕТЧЕР МЕТОДА
С# АК - ПОДПРОГРАММА-ФУНКЦИЯ ВЫЧИСЛЕНИЯ ЯДРА C * ТАБЛИЦА СООТВЕТСТВИЯ
C |
* |
ИМЯ |
|
ДЛИНА |
СОДЕРЖАНИЕ |
C |
* |
A: |
|
N*M |
МАТРИЦА ОПЕРАТОРА |
C |
* |
H: |
|
N |
НАПРАВЛЕНИЕ СПУСКА |
C |
* |
G: |
|
N |
ГРАДИЕНТ |
C |
* |
Us |
|
M |
ЗНАЧЕНИЕ ОПЕРАТОРА |
C |
* |
U1 s |
|
M |
РАБОЧИЙ МАССИВ |
C |
* |
Ss |
|
N |
РАБОЧИЙ МАССИВ |
С |
* |
|
|
|
|
С |
* |
NR=N*M+3N+2M |
|
||
0003 |
|
REAL*8 |
U0,Z,R,AK |
|
|
0004 |
|
REAL*8 |
X1,X2,Y1,Y2,DL,AN2 |
||
0005 |
|
INTEGER |
IMAX,IC,NR,ITER,IERR,N,M |
||
0006 |
|
INTEGER |
NA, NH, NG, NU, NU1, NS, NMAX, ICONT |
||
0007 |
|
DIMENSION |
U0(M) , Z( N ) , R( NR) |
||
0008 |
|
EXTERNAL |
PTICR0, PTICR1, |
||
0009 |
|
*PTISR1,PTISR2,PTISR3 |
|
||
* |
ICONT=0 |
|
|
С ПРОДОЛЖЕНИЕМ |
|
С |
ICONT - ПРИЗНАК РАБОТЫ |
||||
С |
* |
ICONT=0 |
НАЧАЛО РАБОТЫ |
|
|
С |
* |
IC0NT=1 |
ВХОД ДЛЯ ПРОДОЛЖЕНИЯ |
206
0010
0011
0012
001 3
0014
0 0 1 5
0016
0 0 1 7
0 018
0 019
0020
0021
0022
002 3
0024
0 0 2 5
0 026
0027
0 0 2 8
0 0 2 9
0 0 3 0
0031
0 0 3 2
0 0 3 3
0 0 3 4
0 0 3 5
0 0 3 6
0001
0002
0 0 0 3
0 004
0 0 0 5
0 0 0 6
0 0 0 7
0 0 0 8
000 9
0010
0011
100CONTINUE
С* ФОРМИРОВАНИЕ НАЧАЛА МАССИВОВ
NA=1
NH=N*M+1
NG=NH+N
NU=NG+N
NU1=NU+M
NS=NU1+M
IMMAX=NS+N
I F ( NMAX—1 • GT. NR)GOTO 64
I F ( ICONT•EQ.4 )GOTO 101
С |
* |
ФОРМИРОВАНИЕ МАТРИЦЫ ОПЕРАТОРА |
|
С |
* |
CALL |
PTICR0( AK, R(NA) , X I, X2,Y1, Y2,N,M) |
ПЕРЕХОДИМ В ПИ-ПЛЮС |
|||
|
|
CALL |
PTISR2 < R( NA) , Z, N , M, IC ,R (N S )) |
|
|
CALL |
PTICR1( Z, Z,R(NH), N , 0 . ) |
101CONTINUE
С* МИНИМИЗАЦИЯ НЕВЯЗКИ
CALL PTISR1(R(NA),R(NH), U0,N,M,ITER, * D L * ( M - 1 . ) / ( Y 2 - Y l ) , 0 . , IMAX, AN2, 0 . , 0 . ,
*Z,R (NU), R( NU1) , R( NH) , R(NG) , R( NS) , IERR) AN2=AN2*( Y2-Y1) / ( M - l . )
C * ВОЗВРАТ ИЗ пи-плюс
CALL |
PTICR1( Z, Z, R(NH) , N , 0 . ) |
CALL |
PT ISR 3(Z ,N ,IC , R( NS)) |
GOTO 999 ENTRY PTISRE
C * ВХОД ДЛЯ ПРОДОЛЖЕНИЯ МИНИМИЗАЦИИ ICONT=l
64CONTINUE
С# HE ХВАТАЕТ ДЛИНЫ РАБОЧЕГО МАССИВА IERR=64
GOTO 999
999CONTINUE RETURN END
SUBROUTINE PTISR1( A, Z0, U0, N , M, ITER, DL2, *ANGRD, IMAX, AN2, ALF, RO, *Z,U,U1,H,G,IPLUS,IERR)
С* МИНИМИЗАЦИЯ ФУНКЦИОНАЛА ТИХОНОВА
С* МЕТОДОМ ПРОЕКЦИИ СОПРЯЖЕННЫХ ГРАДИЕНТОВ
С* В ПЕРВОМ КВАДРАНТЕ
IMPLICIT REAL*8(A-H,0-Z)
INTEGER N,M,IMAX, IERR
INTEGER |
IPLUS,ITERBN,IDIM,IDIMO,IPRIM |
INTEGER |
IEND,ITER,JCH,ICH,IED |
REAL*8 |
DL2, ANGRD, AN2, ALF, RO |
REAL*8 |
U0,Z 0,Z ,U ,A ,H ,U 1,G ,A L ,B T |
REAL*8 |
AS2, AS20, ANGRI, ANGRIО, ALMAX |
DIMENSION U 0 ( M ) ,Z 0 ( N ) ,Z ( N ) ,U ( M ) ,
*A(M ,N ),H(N),U1(M),G (N),IPLUS(N) EXTERNAL PTICRi, PTICI2 , PTICR3 EXTERNAL PTICR4,PTICR5,PTICR6
207
0 0 1 2
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
EXTERNAL PTICR7, PTICR8,PTICR9
ITERBN=0
IEND=0
ITER=0
JCH=-1
CALL |
P T I C R 1 ( Z 0 ,Z 0 ,Z ,N ,0 . ) |
CALL |
PTICR3( A , Z , U , N , M) |
CALL |
PTICR5( U, U0, M, AN2) |
CALL |
PTICR9( AS20, AN2, Z , N ,ALF, RO) |
CALL |
PTICR4( G, U, U0, A , N, M) |
CALL |
PTICR8( G, Z , N , ALF, RO) |
CALL |
PTICR2( H, 0 . ,N) |
С Ж НАЧАЛО |
ИТЕРАЦИЙ |
14CONTINUE ITER=ITER+1
|
|
13 |
ICH=0 |
|
|
С |
* |
ICH - ПРИЗНАК ИЗМЕНЕНИЯ МНОЖЕСТВА |
|||
С |
Ж АКТИВН. ОГР. |
НА ПРЕДЫДУЩЕМ ШАГЕ |
|||
С * |
1СН=0 - НЕ ИЗМЕНИЛОСЬ |
||||
|
|
1 |
IF(JCH) 1 , 2 , 3 |
||
|
|
CALL PTIСI2 ( IPLUS,1 ,N ) |
|||
С |
Ж IPLUS( I )=0 |
- |
I-OE ОГРАНИЧЕНИЕ АКТИВНО |
||
С |
Ж IPLUS( I )=1 |
- |
I-OE ОГРАНИЧЕНИЕ HE АКТИВНО |
||
|
|
|
DO 4 1=1.N |
|
|
|
|
|
IF ( Z ( I ) .GT .0 . . OR. G( I ) • LT ... 0) GOTO 5 |
||
|
|
|
IPLUS( I )=0 |
|
|
|
|
5 |
Z ( I ) = 0 . |
|
|
|
|
CONTINUE |
|
|
4CONTINUE
С* МНОЖЕСТВО АКТ. ОГРАНИЧЕНИЙ СФОРМИРОВАНО IDIM=0
DO 15 1=1,N
15IDIM=IDIM+IPLUS( I )
С* IDIM - РАЗМЕРНОСТЬ ТЕКУЩЕЙ ГРАНИ ICH=1
GOTO 2
3CONTINUE
с* ДОБАВЛЯЕМ НОВОЕ АКТИВНОЕ ОГРАНИЧЕНИЕ
IPLUS( IPRIM)=0
Z(IPRIM)=0
6ICH=1
IDIM=IDIM—1
2CONTINUE
CALL PTICR7( G, G, IPLUS, N , ANGRI) ITERBN=ITERBN+1
с* ITERBN - СЧЕТЧИК ИТЕРАЦИЙ НА ГРАНИ IF(ICH.EQ.l)ITERBN=1
I F ( ANGRI. GT. ANGRD. AND. ITERBN.NE.IDIM+i.
|
.AND.IEND.NE.l)GOTO 7 |
с |
IF(IEND.EQ.i.AND.IDIM.EQ.IDIMO)GOTO 99 |
ж IEND=1 - ИДЕТ ПРОВЕРКА ДОСТИЖЕНИЯ |
|
с |
ж ТОЧНОГО МИНИМУМА |
|
IEND=1-IEND |
|
IDIMO=IDIM |
|
I F ( IEND. EQ. 0 ) GOTO 7 |
|
JCH=-1 |
208
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
60Т0 8
7CONTINUE
С* ФОРМИРОВАНИЕ НАПРАВЛЕНИЯ СПУСКА - Н
ВТ=0.
IF(ICH.EQ.0)BT=ANGRI/ANGRIO
С * ЗАПОМИНАЕМ НОРМУ ПРОЕКЦИИ ГРАДИЕНТА ANGRI0=ANGRI
DO 9 1=1,N
9Н( I) = (ВТ#Н(I)+G(I ))*IPLUS<I)
С* НАПРАВЛЕНИЕ СПУСКА СФОРМИРОВАНО
с * ****** ВНИМАНИЕ? МАШИННАЯ КОНСТАНТА |
|
|
ALMAX=1.Е18 |
|
IPRIM=0 |
|
DO 10 1=1,N |
|
IF(H(I).LE..0)GOTO 11 |
|
A L = Z (I )/ Н (I ) |
|
IF(ALMAX.L T .A L )GOTO 12 |
|
ALMAX=AL |
|
IPRIM=I |
12 |
CONTINUE |
11 |
CONTINUE |
10 |
CONTINUE |
с |
* НАШЛИ |
МАКСИМАЛЬНО ВОЗМОЖНЫЙ ШАГ |
ALMAX |
|
с |
* |
IPRIM |
- НОМЕР НОВОГО |
|
с * ВОЗМОЖНОГО АКТИВНОГО ОГРАНИЧЕНИЯ |
|
|||
|
|
CALL |
PTICRO(A,Z,G,U1,H, |
|
|
|
♦ALMAX,AL,N,M,ALF,RO,IED) |
|
|
|
|
CALL |
PTICR1(Z,H,Z,N,-AL) |
|
|
|
CALL |
PTICR3(A ,Z ,U ,N,M ) |
|
|
|
CALL |
PTICR4(G ,U ,U 0 ,A ,N,M ) |
|
|
|
CALL |
PTICR8(G ,Z ,N,A L F ,R O ) |
|
|
|
CALL |
PTICR7(G ,G ,IPLUS,N,ANGRI) |
|
|
|
CALL |
PTICR5(U ,U 0 ,M ,A N 2 ) |
|
|
|
CALL |
PTICR9(A S 2 ,A N 2 ,Z ,N,A L F ,R O ) |
|
|
|
JCH=0 |
|
|
с * |
IF(IED.E Q .1)JC H = 1 |
|
||
IED=1 - ВЫШЛИ НА НОВОЕ ОГРАНИЧЕНИЕ |
|
|||
|
|
IF(IED.E Q .2)GOTO 22 |
|
|
|
|
IFIAN2.LE.DL2.0R.ITER.GE.IMAX)GOTO 20 |
||
|
|
IF(A S 2 .G E .A S 2 0 )GOTO 21 |
|
|
|
|
AS20=AS2 |
|
|
|
|
GOTO |
14 |
|
20CONTINUE
С* ВЫХОД ПО НЕВЯЗКЕ ИЛИ ЧИСЛУ ИТЕРАЦИЙ
IERR=1
GOTO 999
99CONTINUE
С* НАШЛИ ТОЧНЫЙ МИНИМУМ.
с* НОРМАЛЬНОЕ ОКОНЧАНИЕ IERR=0
GOTO 999
8CONTINUE
с* ВОЗВРАЩАЕМСЯ НА НАЧАЛО
с* ДЛЯ ПРОВЕРКИ ТОЧНОГО МИНИМУМА GOTO 13
21 CONTINUE
209
009 7
009 0
00 99
0100
0101
0102
010 3
010 4
0001
0002
000 3
000 4
0005
0006
000 7
00 08
000 9
0010
0011
0012
001 3
001 4
00 15
001 6
0017
001 8
0 019
0020
0021
0022
002 3
002 4
00 25
002 6
0027
0028
002 9
С * НЕВЯЗКА НЕ УМЕНЬШИЛАСЬ. НЕФАТАЛЬНО ? IERR=2
GOTO 999
22CONTINUE
С* ШАГ ОТРИЦАТЕЛЕН
С* ОШИБКА ЗНАКООПРЕДЕЛЕННОСТИ IERR=65
GOTO 999
999CONTINUE RETURN END
SUBROUTINE P T IS R 2(A ,Z ,N ,M ,IC ,S)
С* ПРЕОБРАЗОВАНИЕ МАТРИЦЫ ОПЕРАТОРА A(M,N)
С# И НАЧАЛЬНОГО ПРИБЛИЖЕНИЯ Z
С* ПРИ ПЕРЕХОДЕ В ПЕРВЫЙ КВАДРАНТ
С * S (N) - РАБОЧИЙ
С * 1C - МНОЖЕСТВО КОРРЕКТНОСТИ IMPLICIT REAL# 8 ( А-Н, О—Z) REAL*8 А, Z , S , Т
INTEGER N, М, IC, IC1, N1, I , J , К
DIMENSION |
A (M ,N ),Z (N ),S (N ) |
EXTERNAL PTICR1, PTISR4 |
|
IC1=IABS(ICJ+1 |
|
N1=N—1 |
|
GOTO ( 8 0 0 |
, 8 0 1 , 8 0 2 , 8 0 3 , 8 0 4 , 8 0 5 ) , IC1 |
800CONTINUE
С* НЕОТРИЦАТЕЛЬНЫЕ ФУНКЦИИ.
С* НИЧЕГО ДЕЛАТЬ НЕ НАДО GOTO 999
С* ПРЕОБРАЗОВАНИЕ НАЧАЛЬНОГО ПРИБЛИЖЕНИЯ - Z
801CONTINUE
С* МОНОТОННЫЕ, 1С=1
DO 101 1 = 2 ,N
101S ( I - 1 ) = Z ( I - 1 ) - Z ( I ) S ( N)=Z(N)
GOTO 799
802CONTINUE
С* МОНОТОННО УБЫВАЮЩИЕ,ВЫПУКЛЫЕ ВВЕРХ IC=2 DO 102 1=2,N1
102S ( I ) = ( I - N ) * ( Z ( I - i ) - 2 . * Z ( I ) + Z ( I + 1 )) S(N)=Z(N)
S ( 1 ) = ( Z( 1 ) - Z ( 2 ) ) * ( N - i . ) GOTO 799
803CONTINUE
С* ВЫПУКЛЫЕ ВВЕРХ IC=3 DO 103 1=2,N1
103S ( I ) = < Z ( I - 1 ) - 2 . * Z ( I > +
+Z < 1 + 1 ) ) * ( N - I ) * ( 1 - 1 . ) / ( 1 . - N ) S (N )=Z(N)
|
S ( 1 ) = Z ( 1 ) |
|
804 |
GOTO 799 |
|
CONTINUE |
IC=4 |
|
C * |
МОНОТОННО УБЫВАЮЩИЕ,ВЫПУКЛЫЕ ВНИЗ |
210