ClearAll["Global`*"]

pocetStroju=4;
PL=100;
presnost=(PL/(10^6))//N;

(*meze výkonů*)
PD={20,10,0,30};
PH={60,30,10,100};
(*koeficienty nákladových funkcí*)
A2={1.2,0.6,0.7,2.4};
A1={400,500,520,630};
A0={10000,8000,9000,9500};
(*b=(Subscript[b, i])=2*(Subscript[a2, i])*(Subscript[P, i])+(Subscript[a1, i])=(Subscript[b1, i])*(Subscript[P, i])+(Subscript[b0, i])*)
B0=A1;
B1=2*A2;

(*meze poměrných přírůstků b=(Subscript[b, i])=(Subscript[b1, i])*(Subscript[P, i])+(Subscript[b0, i])*)
BD=B1*PD+B0
BH=B1*PH+B0
kor[b_]:=Module[{P},
P=((b-B0)/B1);
Table[
If[b≤BD[[ii]],P[[ii]]=PD[[ii]],
If[b≥BH[[ii]],P[[ii]]=PH[[ii]]];
];
,{ii,1,pocetStroju}];
{P,(P/.List->Plus)-PL}
]

Bmax=Max[BH];
Bmin=Min[BD];

Pmin=PD;
Pmax=PH;

b=Bmin
{P,chyba}=kor[b]
Δb=((Bmax-Bmin)/10)

While[Abs[chyba]>presnost,
While[chyba<0,
b=b+Δb;
{P,chyba}=kor[b];
];
b=b-Δb;
Δb=((Δb)/10);
{P,chyba}=kor[b];
]

(*Optimální rozložení výkonů zdrojů*)
P

chyba

(*Náklady na provoz*)
A2*(P^2)+A1*P+A0
%/.List->Plus