%Startwerte und obere und untere Grenzen
L1_zf = [15.00];
L1_zfl = [0];
L1_zfu = [25.00];

p1_zf = [0.5];
p1_zfl = [0];
p1_zfu = [1];

q1_zf = [90];
q1_zfl = [0];
q1_zfu = [360];

d1_zf = [4.00];
d1_zfl = [0];
d1_zfu = [8.00];

x0 = cat(1,L1_zf,p1_zf,q1_zf,d1_zf);
xl = cat(1,L1_zfl,p1_zfl,q1_zfl,d1_zfl);
xu = cat(1,L1_zfu,p1_zfu,q1_zfu,d1_zfu);

options = optimset('LargeScale','off','Display','iter',...
    'MaxFunEvals',100, 'MaxIter',100);
[x, resnorm] = lsqnonlin(@myfun,x0,xl,xu,options)