关于如何根据已有的曲线来拟合得到已知拟合方程中系数,求各位指导指导

matlab新入门,怎么根据已有的曲线来拟合得到已知拟合方程中系数,需要求k4,k5的值(问题如下图),我自己写的程序,不知道哪里有问题,麻烦各位指导指导,谢谢! 计算出来的结果应该是k4=2E-11,k5=5E-15,结果应该接近这两个数,不懂程序应该怎么写了,麻烦各位!

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


for i=1:length(u_all)
    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);
    [n1,n2]=solve(eq1==0,eq2==0,n1,n2);
    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);
    [n3,n4]=solve(eq3==0,eq4==0,n3,n4);
    n1(i)=vpa(n1(1)); 
    n3(i)=vpa(n3(1));
    
end

n1=double(n1);
n3=double(n3);
nihe=13.804.*n1./n3;
    
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=[2E-11 5E-15];


y_est=func(p,u); 


plot(u,y_est,'o');

img