clear;clc
x0=[-2 -1.7 -1.4 -1.1 -0.8 -0.5 -0.2 0.1 0.4 0.7 1 1.3 1.6 1.9 2.2
2.5 2.8 3.1 3.4 3.7 4.0 4.3 4.6 4.9];
y0=[0.10289 0.11741 0.13158 0.14483 0.15656 0.16622 0.17332 0.1775
0.17853 0.17635 0.17109 0.16302 0.15255 0.1402 0.12655 0.11219
0.09768 0.08353 0.07015 0.05786 0.04687 0.03729 0.02914
0.02236];
f=@(a,x)1/(sqrt(2*pi)*a(1))*exp(-(x-a(2)).^2/(2*a(1)^2));
a=lsqcurvefit(f,[2,2],x0,y0)
x1=-2:0.1:5;
f1=1/(sqrt(2*pi)*a(1))*exp(-(x1-a(2)).^2/(2*a(1)^2));
plot(x0,y0,x1,f1,'*r')
非线性曲线拟合是已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数关系为ydata=F(x,
xdata),但不知道系数向量x。今进行曲线拟合,求x使得输出的如下最小二乘表达式成立:
min Σ(F(x,xdatai)-ydatai)^2
函数 lsqcurvefit
格式 x = lsqcurvefit(fun,x0,xdata,ydata)
x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)
x = lsqcur