为什么拟合曲线时matlab显示一直在忙,求各位解答

对已知数据点进行拟合,前面是主程序,后面是函数程序,使用lsqcurvefit函数运行后一直显示在忙,求解答

clear all;clc;
u = [0.01 0.01624 0.02637 0.04281 0.06952 0.11288 0.1833 0.29764 0.48329 0.78476 1.27427 2.06914 3.35982 5.45559 8.85867 14.3845 23.35721 37.9269 61.58482 100];
y = [13.58386 13.4539 13.25364 12.95355 12.52104 11.92882 11.16686 10.25189 9.22731 8.15198 7.08481 6.07291 5.14694 4.32206 3.6017 2.9818 2.45422 2.00915 1.63647 1.32654];
figure;
plot(u,y,'*');
hold on;


b=[5E-13 5E-16];
lb=[5E-21 6E-21];
ub=[2E-3 5E-3];
options = optimoptions('lsqcurvefit','TolFun',1e-9,'TolX',1e-12,'MaxFunEvals',400);
[p]=lsqcurvefit(@func2,b,u,y,lb,ub,options);   

y_est=func2(p,u);  


plot(u,y_est,'r','linewidth',2);

function nihe=func2(b,x)
k4=b(1);
k5=b(2);
syms n1 n2 n3 n4;
u_all=x;


for i=1:length(u_all)
    syms n1 n2 n3 n4;
    eq1=(3.2E7+3.1E7)*n1==5.6E3*n2-k4*n1*n2+0.25*k5*n2^2+u_all(i)/(4*(1.5E-3*1.6E-19));
    eq2=3.1E7*n1==(5.6E3+8.2E2)*n2+1.25*k5*n2^2-3*u_all(i)/(4*1.5E-3*1.6E-19);
    eq3=(3.2E7+3.1E7)*n3==5.6E3*n4+u_all(i)/(4*1.5E-3*1.6E-19);
    eq4=3.1E7*n3==(5.6E3+8.2E2)*n4-3*u_all(i)/(4*1.5E-3*1.6E-19);
    eqs1=[eq1,eq2];
    eqs2=[eq3,eq4];
    [n1,n2]=solve(eqs1);
    [n3,n4]=solve(eqs2);
    n1=double(n1);
    n3=double(n3);
    E(i)=13.804.*n1(1)./n3;
    E1(i)=abs(E(i));
    clear n1 n2 n3 n4
    
end

nihe=E1;