The cmaes
optimizer seems to work pretty well in practice, but it takes quite long to run. You would need something along the lines of
%set CMAES options
H0=0.2*ones(size(x_start,1),1)
cmaesOptions = options_.cmaes;
cmaesOptions.LBounds = [-1000;-1000];
cmaesOptions.UBounds = [1000;1000];
[x_opt_hat, fhat, COUNTEVAL, STOPFLAG, OUT, BESTEVER] = cmaes('welfare_objective',x_start,H0,cmaesOptions,x_opt_name);
x_opt_hat=BESTEVER.x;