ClearAll["Global`*"];
(* preus i cost matèria primera*)
preuReg=12;preuExtra=14;
costNac=8;costImp=15;
(* pressió de vapor i octanatge*)
PvNac=25;PvImp=15;
octNac=87;octImp=98;
PvmaxReg=23;PvmaxExtra=23;
octminReg=88;octminExtra=93;
(* nombre de barris disponibles*)
barrilsNac=40000; barrilsImp=60000;
(* demanda de barrils de gasolines regular i extra*)
demandaMaxReg=100000;demandaMaxExtra=20000;
entregaMinReg=50000;entregaMinExtra=5000;

(* anomenem nNacReg, nNacExtra,nImpReg, nImpExtra, al nombre de barrils
nacionals i importats que fiquem en les gasolines Regular i Extra*)

(*calcul del benefici *)
benefici=nNacReg (preuReg-costNac)+nImpReg (preuReg-costImp)+
                   nNacExtra (preuExtra-costNac)+nImpExtra (preuExtra-costImp);

(*calcul de pressions de vapor i octanatges de les gasolines regular i extra*)
PvReg=(nNacReg*PvNac+nImpReg*PvImp)/(nNacReg+nImpReg);
PvExtra=(nNacExtra*PvNac+nImpExtra*PvImp)/(nNacExtra+nImpExtra);
octReg=(nNacReg*octNac+nImpReg*octImp)/(nNacReg+nImpReg);
octExtra=(nNacExtra*octNac+nImpExtra*octImp)/(nNacExtra+nImpExtra);

(* optimització*)
NMaximize[{benefici,
PvReg<=PvmaxReg,
PvExtra<=PvmaxExtra,
octReg>=octminReg,
octExtra>=octminExtra,
nNacReg+nImpReg >=entregaMinReg,
nNacReg+nImpReg <=demandaMaxReg,
nNacExtra+nImpExtra >=entregaMinExtra,
nNacExtra+nImpExtra <=demandaMaxExtra,
nNacReg+nNacExtra<=barrilsNac,
nImpReg+nImpExtra<=barrilsImp},{{nNacReg,1,barrilsNac},{nImpReg,1,barrilsImp},{nNacExtra,1,barrilsNac},{nImpExtra,1,barrilsImp }}]

(* Usant Solver d'Excel és molt més ràpid*)