Page 59 - 4729
P. 59
690 HH==QX
700 " ЗНАХОДИМО ЧЕРГОВУ ТОЧКУ
710 BB = HH
720 FOR 1=1 ТО N
730 Q(I)=P(I)+BB*D(I) :X(I)=Q(I) : NEXT I
750 GOSUB 2000:FQ = Z
760 GOSUB 3000:G2 = GO
770 GQ = 0
780 FOR I = 1 TO N
790 GQ = GQ+G(I)*D(I)
800 NEXT I
810 IF GQ>0 OR FQ>FP THEN 860
815 " ВИКОНАТИ ІТЕРАЦІЮ З ПОДВОЄНИМ КРОКОМ І ПЕРЕЙТИ
817 " ДО ТОЧКИ Q АБО ПОДВОЇТИ КРОК, ЩОБ ЛОКАЛІЗУВАТИ
МІНІМУМ
820 НН = 2*НН
830 FOR I = 1 ТО N:P(I)=Q(I) : NEXT I
840 FP = FQ:GP = GQ:G1 = G2
850 GOTO 710
860 ZZ=3*(FP—FQ)/HH:ZZ=ZZ+GP+GQ
870 WW = ZZ*ZZ—GP*GQ: IF WW<0 THEN WW = 0
880 W=SQR(WW)
890 DD = HH*(1—(GQ + W—ZZ)/(GQ—GP+2*W))
900 FOR I = 1 TO N:X(I)=P(I)+DD*D(I) : NEXT I
910 GOSUB 2000:FR = Z
920 GOSUB 3000:G3 = GO
925 " ЗНАХОДИМО ГРАДІЄНТ У НОВІЙ ТОЧЦІ
930 GR = 0
940 FOR I= 1 ТО N : GR = GR + G(I)*D(I) : NEXT I
950 IF Z<=FP AND Z<FQ THEN 1100
58