ВУЗ:
Составители:
70
815 REM выполнить кубическую интерполяцию
817 REM или удвоить шаг, чтобы "накрыть" минимум
820 HH = 2 * HH: GOTO 700
830 ZZ = 3 * (FP - FQ) / HH: ZZ = ZZ + GP + GQ
840 WW = ZZ * ZZ - GP * GQ: IF WW < 0 THEN WW = 0
850 W = SQR(WW)
860 DD = HH * (1 - (GQ + W - ZZ) / (GQ - GP + 2 * W))
870 FOR I = 1 TO N: X(I) = P(I) + DD * D(I): NEXT I
880 GOSUB 5000: FR = Z
890 GOSUB 6000: G3 = G0
895 REM найти градиент в новой точке
900 GR = 0
910 FOR I = 1 TO N: GR = GR + GL(I) * D(I): NEXT I
920 IF Z <= FP AND Z <= FQ THEN GOTO 1100
930 IF GP > 0 THEN GOTO 990
960 HH = HH - DD
970 FOR I = 1 TO N: P(I) = X(I): NEXT I
980 FP = Z: GP = GR: G1 = G0: GOTO 830
990 HH = DD
1000 FOR I = 1 TO N: Q(I) = X(I): NEXT I
1050 REM ОБНОВИТЬ МАТРИЦУ H
1100 KK = 0: WK = 0: DK = 0
1110 FOR I = 1 TO N
1120 U(I) = GL(I) - U(I): V(I) = X(I) - Y(I)
1130 NEXT I
1140 FOR I = 1 TO N: M(I) = 0
1150 FOR J = 1 TO N
1160 M(I) = M(I) + H(I, J) * U(J)
1170 NEXT J
1180 KK = KK + M(I) * U(I): WK = WK + V(I) * U(I)
1190 DK = DK + V(I) * V(I)
1200 NEXT I
1205 IF KK = 0 OR WK = 0 THEN GOTO 1260
1210 FOR I = 1 TO N
1220 FOR J = 1 TO N
1230 H(I, J) = H(I, J) - M(I) * M(J) / KK + V(I) * V(J) / WK
1240 NEXT J
1250 NEXT I
1260 CC = CC + 1
1265 REM ПРОВЕРКА КРИТЕРИЯ ЗАВЕРШЕНИЯ
1270 IF SQR(DK) < .00005 OR G3 < .00001 THEN GOTO 1300
1275 REM Начать новую итерацию поиска
1280 GOTO 400
Nitro PDF Trial
www.nitropdf.com
Страницы
- « первая
- ‹ предыдущая
- …
- 68
- 69
- 70
- 71
- 72
- …
- следующая ›
- последняя »