>> a = randn(500,5);
>> x = 2*randn(5,1);
>> y = (rand(500,1) < 1./(1+exp(-a*x)));
>> xhat = logistic(a, y, [], [], struct('verbose', 1))
  1: [ -0.842889 -0.959492 0.843404 0.198022 0.199493 ]
  2: [ -1.55055 -1.75901 1.57622 0.360507 0.398254 ]
  3: [ -2.35678 -2.71685 2.4373 0.545032 0.62605 ]
  4: [ -3.20879 -3.74533 3.35828 0.740927 0.854976 ]
  5: [ -3.86696 -4.54162 4.0753 0.899695 1.02575 ]
  6: [ -4.12265 -4.85136 4.35625 0.964904 1.09126 ]
  7: [ -4.14969 -4.88416 4.38617 0.972078 1.09818 ]
  8: [ -4.14995 -4.88447 4.38646 0.972149 1.09825 ]
  9: [ -4.14995 -4.88447 4.38646 0.972149 1.09825 ]
 10: [ -4.14995 -4.88447 4.38646 0.972149 1.09825 ]
 11: [ -4.14995 -4.88447 4.38646 0.972149 1.09825 ]
Converged.

xhat =

   -4.1499
   -4.8845
    4.3865
    0.9721
    1.0982

>> x

x =

   -3.9412
   -4.0619
    3.6705
    1.1123
    0.9645