code 34439;
procedure JACOBNBNDF(N, LW, RW, X, F, JAC, I, DI, FUNCT);
value N, LW, RW; integer I, N, LW, RW; real DI;
array X, F, JAC; procedure FUNCT;
begin integer J, K, L, U, T, B; real AID, STEPI;
L:= 1; U:= LW + 1; T:= RW + 1; B:= LW + RW;
for I:= 1 step 1 until N do
begin array F1[L:U];
STEPI:= DI; AID:= X[I]; X[I]:= AID + STEPI;
FUNCT(N, L, U, X, F1); X[I]:= AID;
K:= I + (if I <= T then 0 else I - T) * B;
for J:= L step 1 until U do
begin JAC[K]:= (F1[J] - F[J]) / STEPI; K:=K + B end;
if I >= T then L:= L + 1;
if U < N then U:= U + 1
end
end JACOBNBNDF;
eop