ClearAll["Global`*"]

(Subscript[U, 1])=220;
(Subscript[U, 4])=215;
(Subscript[R, 1,2])=(Subscript[R, 2,1])=1.2;
(Subscript[R, 2,3])=(Subscript[R, 3,2])=0.8;
(Subscript[R, 3,4])=(Subscript[R, 4,3])=1.6;

Pz=(((((Subscript[U, 1])-(Subscript[U, 2])))^2)/(Subscript[R, 1,2]))+(((((Subscript[U, 2])-(Subscript[U, 3])))^2)/(Subscript[R, 2,3]))+(((((Subscript[U, 3])-(Subscript[U, 4])))^2)/(Subscript[R, 3,4]))/.Assign[#]&;
Pii[i_]:=(Subscript[U, i])*((((Subscript[U, i])-(Subscript[U, i-1]))/(Subscript[R, i,i-1]))+(((Subscript[U, i])-(Subscript[U, i+1]))/(Subscript[R, i,i+1])));

(*a)*)
Var={(Subscript[U, 2]),(Subscript[U, 3])};
Varold={200,200};
podminky=0;

(*b)*)
Var={(Subscript[U, 2]),(Subscript[U, 3]),λ};
Varold={200,200,1};
podminky=λ*(Pii[2]+Pii[3]+1000);

(*c)*)
(Pii[2]+Pii[3])≥-1000/.Assign[Varnew]

(*d1)*)
Var={(Subscript[U, 2]),(Subscript[U, 3])};
Varold={200,200};
podminky=(((Pii[2]+Pii[3]+1000))^2)/.Assign[#]&;

(*d2)*)

Var={(Subscript[U, 2]),(Subscript[U, 3])};
Varold={200,200};
podminky=((Max[0,+(Pii[2]+Pii[3]+1000)])^2)/.Assign[#]&;

Assign=Table[Var[[i]]->#[[i]],{i,1,Length[Var]}]&;
(* definice konstant k uloze *)
Lag=Pz[Var]+podminky[Var]/.Assign[#]&;
(* funkce gradient podle promennych *)
Nabla=Table[(∂_(Var[[i]]))#,{i,1,Length[Var]}]&; 
(* funkce gradient Lagrangeovy fce podle promennych *)G=Nabla@Lag[Var]/.Assign[#]&;
(* funkce Hessova matice Lagrangeovy fce podle promennych *)
H=Nabla@Nabla@Lag[Var]/.Assign[#]&;
(* definice chyby *)
Chyba=Norm[G[Var]]/.Assign[#]&;

(* reseni ∇Lag=(OverVector[0]) pomoci Newtonovy metody *)
Varnew=Varold;
(Subscript[Varpath, 1])=Varold;
n=1;
While[Chyba[Varold]>0.000001,Varnew=Varold-Inverse[H[Varold]].G[Varold];Varold=Varnew;(Subscript[Varpath, n+1])=Varnew;Print[{N[Chyba[Varnew]],N[Varnew]}];n++]

Varnew

Pz[Varnew]

Pii[2]/.Assign[Varnew]
Pii[3]/.Assign[Varnew]
(Pii[2]+Pii[3])/.Assign[Varnew]

Plot[(((Max[0,-x]))^2),{x,-5,5}]